Revision bd0bd7a0
Von Moritz Bunkus vor mehr als 8 Jahren hinzugefügt
t/001compile.t | ||
---|---|---|
###Compilation###
|
||
|
||
use strict;
|
||
use threads;
|
||
|
||
use lib 't';
|
||
|
||
use Support::Files;
|
||
use Sys::CPU;
|
||
use Thread::Pool::Simple;
|
||
|
||
use Test::More tests => scalar(@Support::Files::testitems);
|
||
|
||
... | ... | |
|
||
# 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
|
||
my @to_compile;
|
||
|
||
sub test_compile_file {
|
||
my ($file, $T) = @{ $_[0] };
|
||
|
||
|
||
open (FILE,$file);
|
||
my $bang = <FILE>;
|
||
close (FILE);
|
||
my $T = "";
|
||
$T = "T" if $bang =~ m/#!\S*perl\s+-.*T/;
|
||
my $command = "$perlapp -w -c$T -Imodules/fallback -Imodules/override -It -MSupport::CanonialGlobals $file 2>&1";
|
||
my $loginfo=`$command`;
|
||
|
||
if (-l $file) {
|
||
ok(1, "$file is a symlink");
|
||
if ($loginfo =~ /syntax ok$/im) {
|
||
if ($loginfo ne "$file syntax OK\n") {
|
||
ok(0,$file." --WARNING");
|
||
print $fh $loginfo;
|
||
} else {
|
||
my $command = "$perlapp -w -c$T -Imodules/fallback -Imodules/override -It -MSupport::CanonialGlobals $file 2>&1";
|
||
my $loginfo=`$command`;
|
||
|
||
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;
|
||
}
|
||
ok(1,$file);
|
||
}
|
||
} else {
|
||
ok(0,$file." --ERROR");
|
||
print $fh $loginfo;
|
||
}
|
||
}
|
||
|
||
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 = "";
|
||
$T = "T" if $bang =~ m/#!\S*perl\s+-.*T/;
|
||
|
||
if (-l $file) {
|
||
ok(1, "$file is a symlink");
|
||
} else {
|
||
push @to_compile, [ $file, $T ];
|
||
}
|
||
}
|
||
|
||
my $pool = Thread::Pool::Simple->new(
|
||
min => 2,
|
||
max => Sys::CPU::cpu_count() + 1,
|
||
do => [ \&test_compile_file ],
|
||
passid => 0,
|
||
);
|
||
|
||
$pool->add($_) for @to_compile;
|
||
|
||
$pool->join;
|
||
|
||
exit 0;
|
Auch abrufbar als: Unified diff
Tests: 001compile.t parallelisiert