=cut
use strict;
-use Debian::Debhelper::Dh_Lib;
+use Debian::Debhelper::Dh_Buildsystems;
=head1 SYNOPSIS
-B<dh_auto_test> [S<I<debhelper options>>] [S<B<--> I<params>>]
+B<dh_auto_test> [S<I<build system options>>] [S<I<debhelper options>>] [S<B<--> I<params>>]
=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.
+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 "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.
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 dh_auto_test at all, and
just run the test suite manually.
=head1 OPTIONS
+See L<debhelper(7)/BUILD SYSTEM OPTIONS> for a list of common build
+system selection and control options.
+
=over 4
=item B<--> I<params>
-Pass "params" to the program that is run. These can be used to suppliment
+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.
=back
+=head1 NOTES
+
+If the DEB_BUILD_OPTIONS environment variable contains "nocheck", 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 (defined $ENV{DEB_BUILD_OPTIONS} && $ENV{DEB_BUILD_OPTIONS} =~ /nocheck/) {
+ exit 0;
}
+buildsystems_init();
+buildsystems_do();
+
=head1 SEE ALSO
L<debhelper(7)>