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.
#
#################
#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;
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 = <FILE>;
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);
}
$file =~ s/\s.*$//; # nuke everything after the first space (#comment)
next if (!$file); # skip null entries
open (FILE,$file);
my $bang = <FILE>;
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 {
print TESTOUT $loginfo;
ok(0,$file."--ERROR");
ok(1,$file);
}
} else {
ok(0,$file." --ERROR");
print $fh $loginfo;
}
}
# Remove the lib testing from here since it is now done
# in Files.pm
exit 0;

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

@ -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) {

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

@ -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;

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

@ -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;

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

@ -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;