Package: autopkgtest
Version: 5.22
Severity: important

Dear Maintainer,

While running two tests with autopkgtest-build-qemu I was surprised to
see the database created from the first one not being wiped before
running the other test.

    $ cat debian/tests/control
    Test-Command: date -R | tee /dev/shm/stamp 
    Depends: coreutils

    Test-Command: date -R && cat /dev/shm/stamp 
    Depends: coreutils

    $ autopkgtest /tmp/coreutils_8.32-4.1_amd64.deb ./ -- schroot 
sid-amd64-sbuild
    […]
    autopkgtest [16:47:12]: test command1: date -R | tee /dev/shm/stamp
    autopkgtest [16:47:12]: test command1: [-----------------------
    Fri, 01 Jul 2022 14:47:12 +0000
    autopkgtest [16:47:12]: test command1: -----------------------]
    autopkgtest [16:47:12]: test command1:  - - - - - - - - - - results - - - - 
- - - - - -
    command1             PASS
    autopkgtest [16:47:12]: test command2: preparing testbed
    […]
    autopkgtest [16:47:16]: test command2: date -R && cat /dev/shm/stamp
    autopkgtest [16:47:16]: test command2: [-----------------------
    Fri, 01 Jul 2022 14:47:16 +0000
    Fri, 01 Jul 2022 14:47:12 +0000
    autopkgtest [16:47:16]: test command2: -----------------------]
    autopkgtest [16:47:16]: test command2:  - - - - - - - - - - results - - - - 
- - - - - -
    command2             PASS
    autopkgtest [16:47:16]: @@@@@@@@@@@@@@@@@@@@ summary
    command1             PASS
    command2             PASS

With autopkgtest-build-qemu, the VM isn't rebooted and files created by
some autopkgtest are also accessible by subsequent tests in the same
autopkgtest(1) invocation.

    $ cat debian/tests/control
    Test-Command: uptime -s && date -R | tee /dev/shm/stamp /stamp
    Depends: coreutils, procps
    Restrictions: needs-root

    Test-Command: uptime -s && date -R && cat /dev/shm/stamp /stamp 
    Depends: coreutils, procps
    Restrictions: needs-root

    $ autopkgtest /tmp/coreutils_8.32-4.1_amd64.deb ./ -- qemu 
--overlay-dir=/dev/shm /tmp/debian-unstable.img
    […]
    autopkgtest [16:49:47]: test command1: uptime -s && date -R | tee 
/dev/shm/stamp /stamp
    autopkgtest [16:49:47]: test command1: [-----------------------
    2022-07-01 14:49:18
    Fri, 01 Jul 2022 14:49:47 +0000
    autopkgtest [16:49:48]: test command1: -----------------------]
    autopkgtest [16:49:48]: test command1:  - - - - - - - - - - results - - - - 
- - - - - -
    command1             PASS
    autopkgtest [16:49:49]: test command2: preparing testbed
    […]
    autopkgtest [16:49:59]: test command2: uptime -s && date -R && cat 
/dev/shm/stamp /stamp
    autopkgtest [16:49:59]: test command2: [-----------------------
    2022-07-01 14:49:18
    Fri, 01 Jul 2022 14:49:58 +0000
    Fri, 01 Jul 2022 14:49:47 +0000
    Fri, 01 Jul 2022 14:49:47 +0000
    autopkgtest [16:49:59]: test command2: -----------------------]
    autopkgtest [16:50:00]: test command2:  - - - - - - - - - - results - - - - 
- - - - - -
    command2             PASS
    autopkgtest [16:50:00]: @@@@@@@@@@@@@@@@@@@@ summary
    command1             PASS
    command2             PASS

Granted the documentation says nothing about state reset/preservation,
but shouldn't each test run a clean environment?  Otherwise the tests
might succeed when run separately but fail in a single autopkgtest
invocation.  (This was indeed the case for me: a test broke due to a
leftover database created during an earlier test, but each test passed
just fine in isolation.)

Thanks for maintaining autopkgtest!
-- 
Guilhem.

Attachment: signature.asc
Description: PGP signature

Reply via email to