t9700: Use Test::More->builder, not $Test::Builder::Test
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sat, 26 Jun 2010 12:42:41 +0000 (12:42 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 27 Jun 2010 17:24:55 +0000 (10:24 -0700)
$Test::Builder::Test was only made into an `our' variable in 0.94
released in September 2009, older distros are more likely to have 0.92
or earlier. Use the singleton Test::More->builder constructor instead.

The exit() call was also unportable to <0.94. Just output a meaningful
exit code if the ->is_passing method exists. The t9700-perl-git.sh
test only cares about stderr output, so this doesn't affect test
results when using older Test::More modules.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t9700/test.pl

index e5d4b03..f2820d2 100755 (executable)
@@ -10,8 +10,8 @@ use Test::More qw(no_plan);
 BEGIN {
        # t9700-perl-git.sh kicks off our testing, so we have to go from
        # there.
-       $Test::Builder::Test->{Curr_Test} = 1;
-       $Test::Builder::Test->{No_Ending} = 1;
+       Test::More->builder->{Curr_Test} = 1;
+       Test::More->builder->{No_Ending} = 1;
 }
 
 use Cwd;
@@ -113,6 +113,7 @@ like($last_commit, qr/^[0-9a-fA-F]{40}$/, 'rev-parse returned hash');
 my $dir_commit = $r2->command_oneline('log', '-n1', '--pretty=format:%H', '.');
 isnt($last_commit, $dir_commit, 'log . does not show last commit');
 
-printf "1..%d\n", $Test::Builder::Test->{Curr_Test};
+printf "1..%d\n", Test::More->builder->{Curr_Test};
 
-exit($Test::Builder::Test->{Is_Passing} ? 0 : 1);
+my $is_passing = eval { Test::More->is_passing };
+exit($is_passing ? 0 : 1) unless $@ =~ /Can't locate object method/;