On 2020-04-20 05:43, Mark Olesen wrote:
Hi Drew,
That is actually fairly easy!
When running the tests, is there a standard way to obtain information
about what is being tested, or to pass in such information?
To explain, suppose that I define a simple runner script called
'AutoTest' that would be part of the "-tutorials" subpackage, since
those are the best ones for testing if the installation is successful.
This means that in my source tree I would have something like this,
/some/build/path/debian/tests/control
/some/build/path/tutorials/AutoTest
but also
/installed/path/tutorials/AutoTest
Do I hard-code the /installed/path/tutorials into the tests/control ?
or should these be the ones local to the build directory (ie,
/some/build/path/tutorials/AutoTest) ?
I checked the env, but the only seeming relevant entry was
AUTOPKGTEST_ARTIFACTS, which seems to be an empty directory.
Superficially it runs from the top level source dir. Not the build dir,
never the build dir. But "build" in your path here is a parent dir I
think, so your toplevel is /some/build/path/. Then you can use relative
paths from there to reference the files in the source tree.
But under the hood, the source dir actually gets copied to a tmp dir (so
any files generated by tests will not end up in your original source dir).
You get a clean tmp dir $AUTOPKGTEST_TMP that you can manipulate in your
debian/tests scripts.
Since the point of the exercise is to check that the installed package
works, not the source that it was made from as such, it's not a bad idea
to use installed files rather than files in the source tree. So your
debian/tests script can run your installed
/installed/path/tutorials/AutoTest, or copy it to $AUTOPKGTEST_TMP and
then run it.
When specifying the tests/control, I need them to depend both on the
first binary package being built as well as the tutorials. So a syntax
like this is what I want:
Depends: @, @-tutorials
Since debci uses a minimal clean chroot, so all needed packages will
need to be specified. The @ is just short hand for lazy people (useful
if a large collection of packages needs to be specified).
Drew
On 2020-04-18 04:43, Drew Parsons wrote:
debci tests are run in a chroot.
But for testing locally (i.e. simply running the tests), you can invoke
autopkgtest -B -- null