hi all a while ago Ken Coar brought up that Apache-Test doesn't print the final test count when there are errors. that is, we currently do this:
# Failed test 20 in t/apache/contentlength.t at line 54 fail #10 FAILED tests 2, 6, 10, 14, 16, 18, 20 Failed 7/20 tests, 65.00% okay Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- Failed 1/1 test scripts, 0.00% okay. 7/20 subtests failed, 65.00% okay. [warning] server localhost.localdomain:8529 shutdown instead of this # Failed test 20 in t/apache/contentlength.t at line 54 fail #10 FAILED tests 2, 6, 10, 14, 16, 18, 20 Failed 7/20 tests, 65.00% okay Failed Test Stat Wstat Total Fail Failed List of Failed ------------------------------------------------------------------------------- t/apache/contentlength.t 20 7 35.00% 2 6 10 14 16 18 20 Failed 1/1 test scripts, 0.00% okay. 7/20 subtests failed, 65.00% okay. [warning] server localhost.localdomain:8529 shutdown note the absence of the "Failed 1/1..." stuff in what we have currently. well, I finally figured out why. attached is a patch that "fixes" the problem. however, as you can see the installed SIG{__DIE__} handler (from TestRun.pm) is keeping us from simply putting Test::Harness::runtests in an eval block. so the "fix" isn't really a fix until we figure out some other stuff, and it may not be "fix"able at all. anyone with insight into the current SIG{__DIE__} foo? it's in the ToDo as something to consider removing, but I'm not sure how easy that would be. --Geoff
Index: lib/Apache/TestHarness.pm =================================================================== RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestHarness.pm,v retrieving revision 1.18 diff -u -r1.18 TestHarness.pm --- lib/Apache/TestHarness.pm 4 Mar 2004 05:51:31 -0000 1.18 +++ lib/Apache/TestHarness.pm 5 May 2004 19:14:56 -0000 @@ -167,7 +167,12 @@ $ENV{HTTPD_TEST_SUBTESTS} = "@subtests"; } - Test::Harness::runtests($self->get_tests($args, @_)); + eval { + local $SIG{__DIE__}; + Test::Harness::runtests($self->get_tests($args, @_)); + }; + + print $@ if $@; } 1;