From e7706c28cecffccb52f2f1e6a30a141f23fbfcf5 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 23 Apr 2008 14:22:11 -0400 Subject: dh_auto_test: New program, automates running make test or make check if the Makefile has such a target. --- debian/changelog | 2 ++ dh_auto_build | 7 +++--- dh_auto_test | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 3 deletions(-) create mode 100755 dh_auto_test 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 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 [S>] [S I>] =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 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 [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. + +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 + +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 + +This program is a part of debhelper. + +=head1 AUTHOR + +Joey Hess + +=cut -- cgit v1.2.3