Subject: | 'make test' exit status is lost |
Hi,
the exit status of 'make test' is always zero, no matter how many
tests failed. This is a problem because 'make' thinks everything went
OK and goes ahead leaving it to the user to notice any errors.
The status is lost in Test::Builder->_ending(), because Tools.pm uses Test::More
without a plan. The attached patch is the best I could come up with; it explicitly
disables the _ending() call. This seems to help.
Version details:
- Mail-Box 2.060
- Perl 5.8.7
- Debian GNU/Linux (unstable)
Transcript of the problem follows. The exit status should be 2,
but it is 0. (The test errors come mainly from the '-T' problem described
in bug #12232).
[...]
--- Test report
Success: 01platform, 10reporter, 11field, 12head, 13body, 14fieldu,
20pparser, 30encode, 31fgroups, 43pop3, 50message, 53threads,
54search, 80msgconv, 81bodyconv
Failure: 40mbox(*), 41mh, 42maildir, 51folder, 52manager(*), 55locking,
60imap
Marked (*) are critical errors.
Skipped: 44imap, 45dbx
niko@rebekka:~/src/Mail-Box-2.060$ echo $?
0
diff -ur libmail-box-perl-2.060/tests/Tools.pm libmail-box-perl-2.060-mod/tests/Tools.pm
--- libmail-box-perl-2.060/tests/Tools.pm 2005-03-15 20:59:48.000000000 +0000
+++ libmail-box-perl-2.060-mod/tests/Tools.pm 2005-06-12 10:59:31.458279485 +0000
@@ -30,6 +30,9 @@
use File::Spec;
use Sys::Hostname;
use Cwd;
+# we use Test::More without a plan here, but we don't want
+# Test::Builder to mess with the exit code
+Test::Builder->no_ending(1);
our ($logfile, $folderdir);
our ($src, $unixsrc, $winsrc);