1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
#!/usr/bin/perl -w
sub runtest ($) {
my ($name) = @_;
print "Test $name\n";
if (defined($tests{$name})) {
print "Running $purepath$tests{$name}\n";
$status = system ("$purepath$tests{$name}");
if ($status) {
print STDERR "Purify test $name returned status $status\n";
}
else {
print STDERR "Purify test $name OK\n";
}
return $status;
}
else {
print STDERR "ERROR: Unknown test $name \n";
return -1;
}
}
%tests = ();
open (MEMTEST, "../memtest.dat");
while (<MEMTEST>) {
if (/(\S+) += +(\S.*)/) {
$tests{$1}=$2;
}
}
close MEMTEST;
if (defined($ENV{EPURE})) {
$purepath = "$ENV{EPURE}/";
}
else {
$purepath = "";
}
@dotest = @ARGV;
foreach $name (@dotest) {
if ($name =~ /^-(\S+)$/) {
$arg = $1;
if ($arg eq "all") {
foreach $x (sort (keys (%tests))) {
runtest($x);
}
exit;
}
elsif ($arg eq "list") {
foreach $x (sort (keys (%tests))) {
printf "%-15s %s\n", $x, $tests{$x};
}
exit;
}
elsif ($arg =~ /block=(\d+)/) {
$block=$1;
$i=0;
$blocksize=10;
$blockcount=0;
foreach $x (sort (keys (%tests))) {
if (!$i) {
$blockcount++;
}
$i++;
if ($i >= $blocksize) {$i=0}
if ($blockcount == $block) {
runtest($x);
}
}
exit;
}
else {
print STDERR "Invalid argument $name (ignored)\n";
next;
}
}
runtest ($name);
}
exit();
|