diff options
Diffstat (limited to 'lib/Test/Harness/t/test-harness.t')
-rw-r--r-- | lib/Test/Harness/t/test-harness.t | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/lib/Test/Harness/t/test-harness.t b/lib/Test/Harness/t/test-harness.t index 1e9f58ddb5..c04e2e2cfa 100644 --- a/lib/Test/Harness/t/test-harness.t +++ b/lib/Test/Harness/t/test-harness.t @@ -10,13 +10,14 @@ BEGIN { } } -use File::Spec::Functions; +use strict; +use File::Spec; +my $Curdir = File::Spec->curdir; my $SAMPLE_TESTS = $ENV{PERL_CORE} - ? catdir(curdir(), 'lib', 'sample-tests') - : catdir(curdir(), 't', 'sample-tests'); + ? File::Spec->catdir($Curdir, 'lib', 'sample-tests') + : File::Spec->catdir($Curdir, 't', 'sample-tests'); -use strict; # For shutting up Test::Harness. # Has to work on 5.004 which doesn't have Tie::StdHandle. @@ -39,11 +40,11 @@ package main; use Test::More; -my $IsVMS = $^O eq 'VMS'; -my $IsMacOS = $^O eq 'MacOS'; +my $IsMacPerl = $^O eq 'MacOS'; +my $IsVMS = $^O eq 'VMS'; # VMS uses native, not POSIX, exit codes. -my $die_estat = $IsVMS ? 44 : $IsMacOS ? 0 : 1; +my $die_estat = $IsVMS ? 44 : 1; my %samples = ( simple => { @@ -415,7 +416,7 @@ my %samples = ( }, ); -plan tests => (keys(%samples) * 7) + 1; +plan tests => (keys(%samples) * 8) + 1; use Test::Harness; use_ok('Test::Harness'); @@ -423,22 +424,23 @@ use_ok('Test::Harness'); tie *NULL, 'My::Dev::Null' or die $!; -$SAMPLE_TESTS = VMS::Filespec::unixify($SAMPLE_TESTS) if $^O eq 'VMS'; - while (my($test, $expect) = each %samples) { # _run_all_tests() runs the tests but skips the formatting. my($totals, $failed); - my $warning; + my $warning = ''; + my $test_path = File::Spec->catfile($SAMPLE_TESTS, $test); + eval { select NULL; # _run_all_tests() isn't as quiet as it should be. local $SIG{__WARN__} = sub { $warning .= join '', @_; }; ($totals, $failed) = - Test::Harness::_run_all_tests($^O eq 'MacOS' ? - catfile($SAMPLE_TESTS, $test) : - "$SAMPLE_TESTS/$test"); + Test::Harness::_run_all_tests($test_path); }; select STDOUT; + # $? is unreliable in MacPerl, so we'll simply fudge it. + $failed->{estat} = $die_estat if $IsMacPerl and $failed; + SKIP: { skip "special tests for bailout", 1 unless $test eq 'bailout'; like( $@, '/Further testing stopped: GERONI/i' ); @@ -453,9 +455,7 @@ while (my($test, $expect) = each %samples) { is_deeply( {map { $_=>$totals->{$_} } keys %{$expect->{total}}}, $expect->{total}, "$test - totals" ); - is_deeply( {map { $_=>$failed->{$^O eq 'MacOS' ? - catfile($SAMPLE_TESTS, $test) : - "$SAMPLE_TESTS/$test"}{$_} } + is_deeply( {map { $_=>$failed->{$test_path}{$_} } keys %{$expect->{failed}}}, $expect->{failed}, "$test - failed" ); @@ -464,12 +464,16 @@ while (my($test, $expect) = each %samples) { SKIP: { skip "special tests for bignum", 1 unless $test eq 'bignum'; is( $warning, <<WARN ); -Enourmous test number seen [test 100001] +Enormous test number seen [test 100001] Can't detailize, too big. -Enourmous test number seen [test 136211425] +Enormous test number seen [test 136211425] Can't detailize, too big. WARN } + SKIP: { + skip "bignum has known warnings", 1 if $test eq 'bignum'; + is( $warning, '' ); + } } |