X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_auto_test;h=9d3fd93c56e738a0ba4ecc98e67322f8aae63d80;hb=fb8f18f4a98669c3b85e1bd7920fbabfc00b886e;hp=baccd10af59b7233903a9baa84e0e15539f352c4;hpb=e7dad1ee9b1cbee709ca9427b642573d78afc99d;p=debhelper.git diff --git a/dh_auto_test b/dh_auto_test index baccd10..9d3fd93 100755 --- a/dh_auto_test +++ b/dh_auto_test @@ -8,57 +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 encouraged 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 supplement -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}) { - # Use make -n to check to see if the target would do - # anything. There's no good way to test if a target exists. - my $ret=`$ENV{MAKE} -s -n $target 2>/dev/null`; - chomp $ret; - if (length $ret) { - doit($ENV{MAKE}, $target, @{$dh{U_PARAMS}}); - last; - } - } -} -elsif (-e "Build.PL" && -e "Build") { - $ENV{MODULEBUILDRC} = "/dev/null"; - doit(qw/perl Build test/, @{$dh{U_PARAMS}}); +if (get_buildoption("nocheck")) { + exit 0; } +buildsystems_init(); +buildsystems_do(); + =head1 SEE ALSO L