]> git.donarmstrong.com Git - debhelper.git/commitdiff
dh_auto_test: New program, automates running make test or make check if the Makefile...
authorJoey Hess <joey@kodama.kitenet.net>
Wed, 23 Apr 2008 18:22:11 +0000 (14:22 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Wed, 23 Apr 2008 18:22:11 +0000 (14:22 -0400)
debian/changelog
dh_auto_build
dh_auto_test [new file with mode: 0755]

index 8cd393470be498cbed756d414445c44903cb31ea..8f832d9e6ea7c23cea93bdd19b100a568858cb8e 100644 (file)
@@ -10,6 +10,8 @@ debhelper (6.0.13) UNRELEASED; urgency=low
   * dh_auto_build: New program, automates building the package by either
     running make or using setup.py. (Support for cmake and other build systems
     planned but not yet implemented.)
+  * dh_auto_test: New program, automates running make test or make check
+    if the Makefile has such a target.
 
  -- Joey Hess <joeyh@debian.org>  Tue, 22 Apr 2008 17:54:20 -0400
 
index 21798cc2e58997d42e38041cb82cbc03fea03d06..2d636ea3df179c8ed19ed08a72e72322bd78f6cb 100755 (executable)
@@ -16,7 +16,8 @@ B<dh_auto_build> [S<I<debhelper options>>] [S<B<--> I<params>>]
 =head1 DESCRIPTION
 
 dh_auto_build is a debhelper program that tries to automatically
-build a package. If a Makefile is found, this is done by running make.
+build a package. If a Makefile is found, this is done by running make (or
+MAKE, if the environment variable is set).
 If there's a setup.py, it is run to build the package.
 
 This is intended to work for about 90% of packages. If it doesn't work,
@@ -30,7 +31,7 @@ build process manually.
 =item B<--> I<params>
 
 Pass "params" to the program that is run. These can be used to suppliment
-or override the standard parameters that dh_auto_build passes.
+or override any standard parameters that dh_auto_build passes.
 
 =back
 
@@ -39,7 +40,7 @@ or override the standard parameters that dh_auto_build passes.
 init();
 
 if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
-       doit($ENV{MAKE}, @{$dh{U_PARAMS}});
+       doit(exists $ENV{MAKE} ? $ENV{MAKE} : "make", @{$dh{U_PARAMS}});
 }
 elsif (-e "setup.py") {
        doit("python setup.py", "build", @{$dh{U_PARAMS}});
diff --git a/dh_auto_test b/dh_auto_test
new file mode 100755 (executable)
index 0000000..74a80e8
--- /dev/null
@@ -0,0 +1,65 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_auto_test - automatically runs a package's test suites
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_auto_test> [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.
+
+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
+just run the test suite manually.
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<--> I<params>
+
+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.
+
+=back
+
+=cut
+
+init();
+
+if (-e "Makefile" || -e "makefile" || -e "GNUmakefile") {
+       foreach my $target (qw{test check}) {
+               my $ret=system("make --question $target >/dev/null 2>&1");
+               if ($ret == 0) {
+                       doit(exists $ENV{MAKE} ? $ENV{MAKE} : "make",
+                               $target, @{$dh{U_PARAMS}});
+                       last;
+               }
+       }
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Joey Hess <joeyh@debian.org>
+
+=cut