X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_auto_test;h=9d3fd93c56e738a0ba4ecc98e67322f8aae63d80;hb=7e3526ff2a24a95405e24be9e2c4b1ae46b934da;hp=cf6e58a2ee773085d883baf8184caf089d275fe6;hpb=b3a6127c13c1226aa5b6c36b6c71dd3d74193c6d;p=debhelper.git diff --git a/dh_auto_test b/dh_auto_test index cf6e58a..9d3fd93 100755 --- a/dh_auto_test +++ b/dh_auto_test @@ -8,55 +8,54 @@ dh_auto_test - automatically runs a package's test suites use strict; use Debian::Debhelper::Dh_Lib; +use Debian::Debhelper::Dh_Buildsystems; =head1 SYNOPSIS -B [S>] [S I>] +B [S>] [S>] [S I>] =head1 DESCRIPTION -dh_auto_test is a debhelper program that tries to automatically run a -package's test suite. If there's a Makefile and it contains a "test" -or "check" target, then this is done by running make (or MAKE, if the -environment variable is set). If the test suite fails, the command will -exit nonzero. If there's no test suite, it will exit zero without doing -anything. +B is a debhelper program that tries to automatically run a +package's test suite. It does so by running the appropriate command for the +build system it detects the package uses. For example, if there's a +Makefile and it contains a B or B target, then this is done by +running B (or B, if the environment variable is set). If the test +suite fails, the command will exit nonzero. If there's no test suite, it +will exit zero without doing anything. This is intended to work for about 90% of packages with a test suite. If it -doesn't work, you're encoruaged to skip using dh_auto_test at all, and +doesn't work, you're encouraged to skip using B at all, and just run the test suite manually. =head1 OPTIONS +See L> for a list of common build +system selection and control options. + =over 4 =item B<--> I -Pass "params" to the program that is run. These can be used to suppliment -or override the any standard parameters that dh_auto_test passes. +Pass I to the program that is run, after the parameters that +B usually passes. =back +=head1 NOTES + +If the B environment variable contains B, no +tests will be performed. + =cut -init(); - -if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") { - $ENV{MAKE}="make" unless exists $ENV{MAKE}; - foreach my $target (qw{test check}) { - # Make --question returns false if the target is - # up-to-date. But we still want to run the target in this - # case. So ceck if a target exists by seeing if make outputs - # "Making target". - my $ret=`LANG=C $ENV{MAKE} --question $target 2>/dev/null`; - chomp $ret; - if ($ret =~ /^Making \Q$target\E/m) { - doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}}); - last; - } - } +if (get_buildoption("nocheck")) { + exit 0; } +buildsystems_init(); +buildsystems_do(); + =head1 SEE ALSO L