Bug#749729: autopkgtest: cannot make tests executable in read only directory

Jakub Wilk jwilk at debian.org
Fri May 30 18:53:08 UTC 2014


Hi Nicolas!

<hat type="sadt maintainer">

* Nicolas Boulenguez <nicolas at debian.org>, 2014-05-29, 15:16:
>Hello.  doc/README.package-tests states:
>
>  The cwd of each test is guaranteed to be the root of the source
>  package. [...] Tests may not modify the source tree [...].
>
>  If the file to be executed has no execute bits set, chmod a+x is
>  applied to it. [...]
>
>Adt-run uses a temporary copy of the tests, while sadt uses the 
>original ones from the source directory.  Both call chown, and the 
>latter will fail if ever used in a read-only source directory.

Yeah, sadt won't let you run non-executable tests in a read-only 
directory. That's one of many limitations of sadt. It wasn't designed to 
be comprehensive, but to be lightweight.

If you have a realistic use case, we may of course discuss lifting this 
limitation.

>These statements should be clarified to avoid contradictory 
>interpretations before sadt is considered buggy.

I'm not sure what is unclear about the current wording.

>I would appreciate a solution keeping both benefits, by requiring the 
>tests to be copied in a temp dir for example.

You would have to copy the whole source package, which can be orders of 
magnitude bigger than just debian/tests/[0].

Anyway, README.package-tests should only define what the package 
maintainers can do (e.g., they can stop worrying about tests 
permissions), and what they can't do (e.g., the tests can't write to 
cwd). It shouldn't dictate how a test runner is implemented.


[0] This is one of my (not yet uploaded) packages:
$ echo . debian/tests | xargs -n1 du -sh
242M    .
20K     debian/tests

-- 
Jakub Wilk



More information about the autopkgtest-devel mailing list