X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dh_auto_test;h=9d3fd93c56e738a0ba4ecc98e67322f8aae63d80;hb=e2a6d4cec4a7ee952cf6a7f250d80f1d75a38f95;hp=ea2d7fdc2c70b18c92a822d0cb5112beacf2fc9e;hpb=121a54e21f8bfa6784b2e8c40171e4800ffd1718;p=debhelper.git diff --git a/dh_auto_test b/dh_auto_test index ea2d7fd..9d3fd93 100755 --- a/dh_auto_test +++ b/dh_auto_test @@ -8,65 +8,53 @@ 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 DEB_BUILD_OPTIONS environment variable contains "nocheck", no +If the B environment variable contains B, no tests will be performed. =cut -init(); - -if (defined $ENV{DEB_BUILD_OPTIONS} && $ENV{DEB_BUILD_OPTIONS} =~ /nocheck/) { +if (get_buildoption("nocheck")) { exit 0; } -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}}); -} +buildsystems_init(); +buildsystems_do(); =head1 SEE ALSO