test code. Patch makes the tests much better now.
r=zach x2
# 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 = <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);
- }
- } 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 = <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 {
+ ok(1,$file);
+ }
+ } else {
+ ok(0,$file." --ERROR");
+ print $fh $loginfo;
+ }
+}
+exit 0;
#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) {
#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;
#Bugzilla Test 4#
####Templates####
-use diagnostics;
use strict;
use lib 't';
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.
ok(1, "$file syntax ok");
}
else {
- print TESTOUT $template->error() . "\n";
ok(0, "$file has bad syntax --ERROR");
+ print $fh $template->error() . "\n";
}
}
else {
}
close(TMPL);
}
+
+exit 0;
#Bugzilla Test 5#
#####no_tabs#####
-use diagnostics;
use strict;
use lib 't';
close (FILE);
}
+exit 0;