10 # For shutting up Test::Harness.
11 # Has to work on 5.004, which doesn't have Tie::StdHandle.
12 package My::Dev::Null;
19 my $fh = do { local *HANDLE; \*HANDLE };
20 return bless $fh, $class;
29 # Utility testing functions.
32 my($test, $name) = @_;
34 $okstring = "not " unless $test;
35 $okstring .= "ok $test_num";
36 $okstring .= " - $name" if defined $name;
43 return 0 unless keys %$a1 == keys %$a2;
46 foreach my $k (keys %$a1) {
47 $ok = $a1->{$k} eq $a2->{$k};
54 use vars qw($Total_tests %samples);
57 BEGIN { $| = 1; $^W = 1; }
58 END {print "not ok $test_num\n" unless $loaded;}
59 print "1..$Total_tests\n";
63 ######################### End of black magic.
288 $Total_tests = (keys(%samples) * 4);
291 tie *NULL, 'My::Dev::Null' or die $!;
293 while (my($test, $expect) = each %samples) {
294 # _run_all_tests() runs the tests but skips the formatting.
295 my($totals, $failed);
297 select NULL; # _run_all_tests() isn't as quiet as it should be.
299 Test::Harness::_run_all_tests("lib/sample-tests/$test");
304 ok( Test::Harness::_all_ok($totals) == $expect->{all_ok},
306 ok( defined $expect->{total}, "$test - has total" );
307 ok( eqhash( $expect->{total},
308 {map { $_=>$totals->{$_} } keys %{$expect->{total}}} ),
310 ok( eqhash( $expect->{failed},
311 {map { $_=>$failed->{"lib/sample-tests/$test"}{$_} }
312 keys %{$expect->{failed}}} ),
315 else { # special case for bailout
316 ok( ($test eq 'bailout' and $@ =~ /Further testing stopped: GERONI/i),
318 ok( 1, 'skipping for bailout' );
319 ok( 1, 'skipping for bailout' );