Fix for bug 143124, Fix warning messages about *::TESTOUT and clean up

test code. Patch makes the tests much better now.

r=zach x2
This commit is contained in:
zach%zachlipton.com 2002-05-08 23:49:32 +00:00
Родитель 38dc7af64f
Коммит 21098a48cd
5 изменённых файлов: 100 добавлений и 70 удалений

Просмотреть файл

@ -32,57 +32,61 @@
# GPL. # GPL.
# #
################# #################
#Bugzilla Test 1# #Bugzilla Test 1#
###Compilation### ###Compilation###
BEGIN { use lib 't/'; }
BEGIN { use Support::Files; }
BEGIN { $tests = @Support::Files::testitems; }
BEGIN { use Test::More tests => $tests; }
use strict; use strict;
# First now we test the scripts use lib 't';
my @testitems = @Support::Files::testitems;
# Capture the TESTERR from Test::More for printing errors. use Support::Files;
# This will handle verbosity for us automatically
*TESTOUT = \*Test::More::TESTOUT; 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; my $perlapp = $^X;
# Test the scripts by compiling them
foreach my $file (@testitems) { foreach my $file (@testitems) {
$file =~ s/\s.*$//; # nuke everything after the first space (#comment) $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
next if (!$file); # skip null entries next if (!$file); # skip null entries
open (FILE,$file); open (FILE,$file);
my $bang = <FILE>; my $bang = <FILE>;
close (FILE); close (FILE);
my $T = ""; my $T = "";
if ($bang =~ m/#!\S*perl\s+-.*T/) { if ($bang =~ m/#!\S*perl\s+-.*T/) {
$T = "T"; $T = "T";
} }
my $command = "$perlapp"." -c$T $file 2>&1"; my $command = "$perlapp -c$T $file 2>&1";
my $loginfo=`$command`; my $loginfo=`$command`;
#print '@@'.$loginfo.'##'; #print '@@'.$loginfo.'##';
if ($loginfo =~ /syntax ok$/im) { if ($loginfo =~ /syntax ok$/im) {
if ($loginfo ne "$file syntax OK\n") { if ($loginfo ne "$file syntax OK\n") {
print TESTOUT $loginfo; ok(0,$file." --WARNING");
ok(0,$file."--WARNING"); print $fh $loginfo;
} else {
ok(1,$file);
}
} else { } else {
print TESTOUT $loginfo; ok(1,$file);
ok(0,$file."--ERROR");
} }
} else {
ok(0,$file." --ERROR");
print $fh $loginfo;
}
} }
# Remove the lib testing from here since it is now done exit 0;
# in Files.pm

Просмотреть файл

@ -38,13 +38,14 @@
#Bugzilla Test 2# #Bugzilla Test 2#
####GoodPerl##### ####GoodPerl#####
BEGIN { use lib 't/'; }
BEGIN { use Support::Files; }
BEGIN { $tests = @Support::Files::testitems * 2; }
BEGIN { use Test::More tests => $tests; }
use strict; 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. my @testitems = @Support::Files::testitems; # get the files to test.
foreach my $file (@testitems) { foreach my $file (@testitems) {

Просмотреть файл

@ -36,29 +36,42 @@
#Bugzilla Test 3# #Bugzilla Test 3#
###Safesystem#### ###Safesystem####
BEGIN { use lib 't/'; }
BEGIN { use Support::Files; }
BEGIN { $tests = @Support::Files::testitems; }
BEGIN { use Test::More tests => $tests; }
use strict; 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; 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; my $perlapp = $^X;
foreach my $file (@testitems) { foreach my $file (@testitems) {
$file =~ s/\s.*$//; # nuke everything after the first space (#comment) $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
next if (!$file); # skip null entries next if (!$file); # skip null entries
my $command = "$perlapp -c -It -MSupport::Systemexec $file 2>&1"; my $command = "$perlapp -c -It -MSupport::Systemexec $file 2>&1";
my $loginfo=`$command`; my $loginfo=`$command`;
if ($loginfo =~ /arguments for Support::Systemexec::(system|exec)/im) { if ($loginfo =~ /arguments for Support::Systemexec::(system|exec)/im) {
ok(0,"$file DOES NOT use proper system or exec calls"); ok(0,"$file DOES NOT use proper system or exec calls");
print TESTOUT $loginfo; print $fh $loginfo;
} else { } else {
ok(1,"$file uses proper system and exec calls"); ok(1,"$file uses proper system and exec calls");
} }
} }
exit 0;

Просмотреть файл

@ -26,7 +26,6 @@
#Bugzilla Test 4# #Bugzilla Test 4#
####Templates#### ####Templates####
use diagnostics;
use strict; use strict;
use lib 't'; use lib 't';
@ -41,10 +40,21 @@ use Template;
use Test::More tests => ( scalar(@Support::Templates::referenced_files) use Test::More tests => ( scalar(@Support::Templates::referenced_files)
+ scalar(@Support::Templates::actual_files) * 2); + 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; 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 # Check to make sure all templates that are referenced in
# Bugzilla exist in the proper place. # Bugzilla exist in the proper place.
@ -86,8 +96,8 @@ foreach my $file(@Support::Templates::actual_files) {
ok(1, "$file syntax ok"); ok(1, "$file syntax ok");
} }
else { else {
print TESTOUT $template->error() . "\n";
ok(0, "$file has bad syntax --ERROR"); ok(0, "$file has bad syntax --ERROR");
print $fh $template->error() . "\n";
} }
} }
else { else {
@ -112,3 +122,5 @@ foreach my $file(@Support::Templates::actual_files) {
} }
close(TMPL); close(TMPL);
} }
exit 0;

Просмотреть файл

@ -25,7 +25,6 @@
#Bugzilla Test 5# #Bugzilla Test 5#
#####no_tabs##### #####no_tabs#####
use diagnostics;
use strict; use strict;
use lib 't'; use lib 't';
@ -52,3 +51,4 @@ foreach my $file (@testitems) {
close (FILE); close (FILE);
} }
exit 0;