Re: package testing, autopkgtest, and all that
Stefano Zacchiroli writes ("Re: package testing, autopkgtest, and all that"):
> I find "INSTALLED version of the program" to be ambiguous. It might
> refer to installed in the sense of 'debian/rules install' (or, to be
> more precise, 'debian/rules binary', given that 'install' is not
> dictated by policy). In that case the tests will use executables
> available under debian/tmp/* or the like.
>
> Alternatively, it might refer to the currently installed *package*. In
> that case the tests will use executables installed along their $PATH.
The latter.
> The latter case needs some setup magic to install the just built
> package, but is more convenient for many software rely on hard-coded
> paths and do not permit to override them at runtime. The former case as
> converse pro/cons.
No, autopkgtest will install (dpkg -i, ultimately) the relevant stuff.
The tests just need to execute it.
I'd be happy to take suggestions for how to improve the wording to
make this clearer.
> > Depends: <dpkg dependcy field syntax>
> >
> > Declares that the specified packages must be installed for the
> > test to go ahead. `@' stands for the package(s) generated by the
> > source package containing the tests; each dependency (strictly,
> > or-clause, which may contain `|'s but not commas) containing `@'
> > is replicated once for each such binary package, with the binary
> > package name substituted for each `@' (but normally `@' should
> > occur only once and without a version restriction).
>
> From this text alone, it's not clear to me how this work with source
> packages which generate multiple binary packages. Are all binary
> packages AND-ed together as a single dependency for the test?
Each dependency or-clause is replicated for each binary package.
Since the or-clauses are anded by dpkg, that's very like anding
together all the packages.
> Given that large source packages can easily generate non-co-installable
> binary packages, in those cases the maintainer should cherry pick the
> specific dependencies test-by-test, am I reading it right?
Yes; otherwise the test dependencies would be unsatisfiable.
> > If no Depends field is present, `Depends: @' is assumed. Note
> > that the source tree's Build-Dependencies are _not_ necessarily
> > installed, and if you specify any Depends, no binary packages from
> > the source are installed unless explicitly requested.
>
> So, to specify no test dependencies at all, "Depends: " is the way to
> go, right? (In one of the two scenarios I've described in the beginning
> this is a completely useless corner-case scenario, while in the other it
> is not).
Specifying no test dependencies at all is definitely wrong, because
there would be no software installed to be tested.
Ian.
Reply to: