From ccf9d404cfe99346af2f08dbbda44a3a53912b90 Mon Sep 17 00:00:00 2001 From: "zach%zachlipton.com" <> Date: Thu, 9 May 2002 06:49:31 +0000 Subject: Fix for bug 143124, Fix warning messages about *::TESTOUT and clean up test code. Patch makes the tests much better now. r=zach x2 --- t/001compile.t | 86 ++++++++++++++++++++++++++++++--------------------------- t/002goodperl.t | 11 ++++---- t/003safesys.t | 49 ++++++++++++++++++++------------ t/004template.t | 22 +++++++++++---- t/005no_tabs.t | 2 +- 5 files changed, 100 insertions(+), 70 deletions(-) (limited to 't') diff --git a/t/001compile.t b/t/001compile.t index 561aacf45..f662f0751 100644 --- a/t/001compile.t +++ b/t/001compile.t @@ -32,57 +32,61 @@ # GPL. # - ################# #Bugzilla Test 1# ###Compilation### -BEGIN { use lib 't/'; } -BEGIN { use Support::Files; } -BEGIN { $tests = @Support::Files::testitems; } -BEGIN { use Test::More tests => $tests; } use strict; -# First now we test the scripts -my @testitems = @Support::Files::testitems; -# Capture the TESTERR from Test::More for printing errors. -# This will handle verbosity for us automatically -*TESTOUT = \*Test::More::TESTOUT; -my $perlapp = $^X; - -foreach my $file (@testitems) { - $file =~ s/\s.*$//; # nuke everything after the first space (#comment) - next if (!$file); # skip null entries - open (FILE,$file); - my $bang = ; - close (FILE); - my $T = ""; - if ($bang =~ m/#!\S*perl\s+-.*T/) { - $T = "T"; - } - my $command = "$perlapp"." -c$T $file 2>&1"; - my $loginfo=`$command`; - #print '@@'.$loginfo.'##'; - if ($loginfo =~ /syntax ok$/im) { - if ($loginfo ne "$file syntax OK\n") { - print TESTOUT $loginfo; - ok(0,$file."--WARNING"); - } else { - ok(1,$file); - } - } else { - print TESTOUT $loginfo; - ok(0,$file."--ERROR"); - } -} - -# Remove the lib testing from here since it is now done -# in Files.pm - +use lib 't'; +use Support::Files; +use Test::More tests => scalar(@Support::Files::testitems); +# Capture the TESTOUT from Test::More or Test::Builder for printing errors. +# This will handle verbosity for us automatically. +my $fh; +{ + local $^W = 0; # Don't complain about non-existent filehandles + if (-e \*Test::More::TESTOUT) { + $fh = \*Test::More::TESTOUT; + } elsif (-e \*Test::Builder::TESTOUT) { + $fh = \*Test::Builder::TESTOUT; + } else { + $fh = \*STDOUT; + } +} +my @testitems = @Support::Files::testitems; +my $perlapp = $^X; +# Test the scripts by compiling them +foreach my $file (@testitems) { + $file =~ s/\s.*$//; # nuke everything after the first space (#comment) + next if (!$file); # skip null entries + open (FILE,$file); + my $bang = ; + close (FILE); + my $T = ""; + if ($bang =~ m/#!\S*perl\s+-.*T/) { + $T = "T"; + } + my $command = "$perlapp -c$T $file 2>&1"; + my $loginfo=`$command`; + #print '@@'.$loginfo.'##'; + if ($loginfo =~ /syntax ok$/im) { + if ($loginfo ne "$file syntax OK\n") { + ok(0,$file." --WARNING"); + print $fh $loginfo; + } else { + ok(1,$file); + } + } else { + ok(0,$file." --ERROR"); + print $fh $loginfo; + } +} +exit 0; diff --git a/t/002goodperl.t b/t/002goodperl.t index 09a5f0324..d3beec5ef 100644 --- a/t/002goodperl.t +++ b/t/002goodperl.t @@ -38,13 +38,14 @@ #Bugzilla Test 2# ####GoodPerl##### -BEGIN { use lib 't/'; } -BEGIN { use Support::Files; } -BEGIN { $tests = @Support::Files::testitems * 2; } -BEGIN { use Test::More tests => $tests; } - use strict; +use lib 't'; + +use Support::Files; + +use Test::More tests => (scalar(@Support::Files::testitems) * 2); + my @testitems = @Support::Files::testitems; # get the files to test. foreach my $file (@testitems) { diff --git a/t/003safesys.t b/t/003safesys.t index 98e9d2d64..14de7c030 100644 --- a/t/003safesys.t +++ b/t/003safesys.t @@ -36,29 +36,42 @@ #Bugzilla Test 3# ###Safesystem#### -BEGIN { use lib 't/'; } -BEGIN { use Support::Files; } -BEGIN { $tests = @Support::Files::testitems; } -BEGIN { use Test::More tests => $tests; } - use strict; +use lib 't'; + +use Support::Files; + +use Test::More tests => scalar(@Support::Files::testitems); + +# Capture the TESTOUT from Test::More or Test::Builder for printing errors. +# This will handle verbosity for us automatically. +my $fh; +{ + local $^W = 0; # Don't complain about non-existent filehandles + if (-e \*Test::More::TESTOUT) { + $fh = \*Test::More::TESTOUT; + } elsif (-e \*Test::Builder::TESTOUT) { + $fh = \*Test::Builder::TESTOUT; + } else { + $fh = \*STDOUT; + } +} + my @testitems = @Support::Files::testitems; -# Capture the TESTERR from Test::More for printing errors. -# This will handle verbosity for us automatically -*TESTOUT = \*Test::More::TESTOUT; my $perlapp = $^X; foreach my $file (@testitems) { - $file =~ s/\s.*$//; # nuke everything after the first space (#comment) - next if (!$file); # skip null entries - my $command = "$perlapp -c -It -MSupport::Systemexec $file 2>&1"; - my $loginfo=`$command`; - if ($loginfo =~ /arguments for Support::Systemexec::(system|exec)/im) { - ok(0,"$file DOES NOT use proper system or exec calls"); - print TESTOUT $loginfo; - } else { - ok(1,"$file uses proper system and exec calls"); - } + $file =~ s/\s.*$//; # nuke everything after the first space (#comment) + next if (!$file); # skip null entries + my $command = "$perlapp -c -It -MSupport::Systemexec $file 2>&1"; + my $loginfo=`$command`; + if ($loginfo =~ /arguments for Support::Systemexec::(system|exec)/im) { + ok(0,"$file DOES NOT use proper system or exec calls"); + print $fh $loginfo; + } else { + ok(1,"$file uses proper system and exec calls"); + } } +exit 0; diff --git a/t/004template.t b/t/004template.t index f9cd0fad9..f56a30140 100644 --- a/t/004template.t +++ b/t/004template.t @@ -26,7 +26,6 @@ #Bugzilla Test 4# ####Templates#### -use diagnostics; use strict; use lib 't'; @@ -41,10 +40,21 @@ use Template; use Test::More tests => ( scalar(@Support::Templates::referenced_files) + scalar(@Support::Templates::actual_files) * 2); +# Capture the TESTOUT from Test::More or Test::Builder for printing errors. +# This will handle verbosity for us automatically. +my $fh; +{ + local $^W = 0; # Don't complain about non-existent filehandles + if (-e \*Test::More::TESTOUT) { + $fh = \*Test::More::TESTOUT; + } elsif (-e \*Test::Builder::TESTOUT) { + $fh = \*Test::Builder::TESTOUT; + } else { + $fh = \*STDOUT; + } +} + my $include_path = $Support::Templates::include_path; -# Capture the TESTERR from Test::More for printing errors. -# This will handle verbosity for us automatically -*TESTOUT = \*Test::More::TESTOUT; # Check to make sure all templates that are referenced in # Bugzilla exist in the proper place. @@ -86,8 +96,8 @@ foreach my $file(@Support::Templates::actual_files) { ok(1, "$file syntax ok"); } else { - print TESTOUT $template->error() . "\n"; ok(0, "$file has bad syntax --ERROR"); + print $fh $template->error() . "\n"; } } else { @@ -112,3 +122,5 @@ foreach my $file(@Support::Templates::actual_files) { } close(TMPL); } + +exit 0; diff --git a/t/005no_tabs.t b/t/005no_tabs.t index eaf1ef241..31d584ae0 100644 --- a/t/005no_tabs.t +++ b/t/005no_tabs.t @@ -25,7 +25,6 @@ #Bugzilla Test 5# #####no_tabs##### -use diagnostics; use strict; use lib 't'; @@ -52,3 +51,4 @@ foreach my $file (@testitems) { close (FILE); } +exit 0; -- cgit v1.2.3-24-g4f1b