summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-04-23 14:22:11 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-04-23 14:22:11 -0400
commite7706c28cecffccb52f2f1e6a30a141f23fbfcf5 (patch)
treeddaff54e8ed852846e074d859104e16d43eddd31
parentc251bfd3e5033243aaa9e50c753299bc19602733 (diff)
dh_auto_test: New program, automates running make test or make check if the Makefile has such a target.
-rw-r--r--debian/changelog2
-rwxr-xr-xdh_auto_build7
-rwxr-xr-xdh_auto_test65
3 files changed, 71 insertions, 3 deletions
diff --git a/debian/changelog b/debian/changelog
index 8cd39347..8f832d9e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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
diff --git a/dh_auto_build b/dh_auto_build
index 21798cc2..2d636ea3 100755
--- a/dh_auto_build
+++ b/dh_auto_build
@@ -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
index 00000000..74a80e8c
--- /dev/null
+++ b/dh_auto_test
@@ -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