forked from Test-More/test-more
/
runtests
56 lines (41 loc) · 1.11 KB
/
runtests
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
#!/usr/bin/perl -w
# Test harness for Aegis' batch_test_command. Not for general consumption.
use File::Spec;
use Test::Harness;
use Getopt::Long;
my %Opts;
GetOptions(\%Opts, "aegis_output=s");
die "Usage: runtests --aegis_output=\${Output} \${File_Name}\n"
unless $Opts{aegis_output};
my $strap = Test::Harness::Straps::Aegis->new;
$strap->{callback} = $Test::Harness::Strap->{callback};
$Test::Harness::Strap = $strap;
open AEGIS_OUT, ">$Opts{aegis_output}" or
die "Can't open $Opts{aegis_output}: $!";
print AEGIS_OUT <<"END";
test_result = [
END
{
local $ENV{AEGIS_TMPDIR} = File::Spec->tmpdir;
eval { runtests @ARGV; };
warn $@ if $@;
}
print AEGIS_OUT <<"END";
];
END
package Test::Harness::Straps::Aegis;
use base 'Test::Harness::Straps';
sub analyze_file {
my $self = shift;
my $file = $_[0];
my %results = $self->SUPER::analyze_file(@_);
# 0 is pass, 1 is fail, anything else is not understood.
my $exit = $results{passing} ? 0 : 1;
print ::AEGIS_OUT <<"END";
{
file_name = "$file";
exit_status = $exit;
},
END
return %results;
}