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.


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/19782.45420.877853.707...@chiark.greenend.org.uk

Reply via email to