Re: testing packages at build
On Wed, 8 Oct 2003 21:09:31 +0200, Bill Allombert <firstname.lastname@example.org> said:
> I see two possibility to implement this proposal:
> 1°) Let maintainers run tests in the build or binary target.
> Eventually we add a notest DEBBUILD_OPTION to disable it.
> 2°) We add a test target in debian/rules. Autobuilders will need to
> be modified to take advantage of this. We can then go farther and
> implement special testing facility.
Some time ago when I saw <http://bugs.debian.org/41902>, I though about
this. I've recovered and modified a draft proposal I made then:
* Standardizing targets
It would be nice to standarize on the targets, independently if they
may be optional. Also the execution of the test target could be
opted-out with some flag (notest) in DEB_BUILD_OPTIONS (as suggested
by Bill) if it was going to be invoked from current defined targets.
So we would have immediate support until apps support the test*
targets. And would have Bill's both points implemeted.
export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
# Build any tests requiered
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
# Test the program(s)
@echo "warning: Cross-compiled program, cannot test."
# Test the program(s)
test: test-arch test-indep
.PHONY: test test-arch test-indep build-testsuit
* Optional test depends fields
Introducing new dependencies may be overkill, but some programs may
require another ones to be tested properly, and it's cleaner to
distinguish Build-Dep* and Test-Dep* cases, also it will reduce download
and install time when the test facility is not wanted.
This fields must be made optional as not all programs with testsuits
will need special dependencies or will have testsuits. Also this will
have to be implemented but the code can be taken from the Build-Depends*
This can be recommended and later introduced in the policy. The various
package 'debianizator' programs could add this in their templates to
extend its use for newer packages.
So what do you think ? Comments please. ;>