blob: bf86053bbf7230d5c89f34f377576220cdf35d4d (
plain)
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
& eval 'exec perl -S $0 $argv:q'
if 0;
# $Id$
# -*- perl -*-
# This file is for running the run_test.pl scripts listed in
# auto_run_tests.lst.
use English;
use Getopt::Std;
if (!getopts ('ac:s:t') || $opt_h) {
print "run_test.pl [-a] [-c config] [-h] [-s sandbox] [-t]\n";
print "\n";
print "Runs the tests listed in auto_run_tests.lst\n";
print "\n";
print "Options:\n";
print " -a ACE tests only\n";
print " -c config Run the tests for the <config> configuration\n";
print " -h display this help\n";
print " -s sandbox Runs each program using a sandbox program\n";
print " -t TAO tests only\n";
print "\n";
print "Configs: MSVC\n";
exit (1);
}
use Cwd;
if (!($ACE_ROOT = $ENV{ACE_ROOT})) {
my $cd = getcwd ();
chdir ('..');
$ACE_ROOT = getcwd ().$DIR_SEPARATOR;
chdir ($cd);
warn "ACE_ROOT not defined, defaulting to ACE_ROOT=$ACE_ROOT";
}
unshift @INC, "$ACE_ROOT/bin";
require ACEutils;
$config = 'DEFAULT';
if ($opt_c) {
$config = $opt_c;
}
else {
print "Defaulting to configuration: $config\n";
}
################################################################################
@tests = ();
# Loads the list and runs it
sub read_run_test_list ()
{
my $line;
open (LIST, "<$ACE_ROOT/bin/auto_run_tests.lst")
|| die "Cannot open $ACE_ROOT/bin/auto_run_tests.lst";
while (<LIST>) {
next if (/^#/ || /^\s*$/); # ignore comments and blank lines
chomp;
my @stuff = split ":";
if (!/$config/) {
my $program = shift @stuff;
$program =~ s/\s*//g; #remove any extra whitepace
push @tests, $program;
}
}
close (LIST);
}
################################################################################
read_run_test_list ();
foreach $test (@tests) {
my $directory = ".";
my $program = ".";
if ($opt_a && $test =~ /^TAO/) {
next;
}
elsif ($opt_t && $test !~ /^TAO/) {
next;
}
if ($test =~ /(.*)\/([^\/]*)$/) {
$directory = $1;
$program = $2;
}
else {
$program = $test;
}
print "auto_run_tests: $test\n";
chdir ($ACE_ROOT."/$directory")
|| die "Error: Cannot chdir to $ACE_ROOT/$directory";
$run_error = 0;
if (! -e $program) {
print STDERR "Error: $test does not exist\n";
next;
}
my $result = 0;
if ($opt_s) {
$result = system ("$opt_s \"perl $program\"");
}
else {
$result = system ($program);
}
if ($result > 0) {
print "Error: $test returned with status $result\n";
}
}
|