24
print STDERR "$__VERSION__\n";
25
24
print STDERR "Usage $0 profile_directory\n";
26
25
print STDERR "\tTests the subdomain parser on the given profile directory\n";
27
26
print STDOUT "Bail out! Got the usage statement\n";
68
67
my $isdisabled = 0;
70
open(PARSER, "| $config{'parser'} -S -I $config{'includedir'} > /dev/null 2>&1") or die "Bail out! couldn't open parser";
72
open(PROFILE, $profile) or die "Bail out! couldn't open profile $profile";
74
if (/^#=DESCRIPTION\s*(.*)/) {
76
} elsif (/^#=EXRESULT\s*(\w+)/) {
79
} elsif ($1 eq "FAIL") {
72
local $SIG{ALRM} = sub {
75
$description = "$description - TESTCASE TIMED OUT";
78
alarm $config{'timeout'};
80
$child = open(PARSER, "|-");
83
open(STDOUT, ">/dev/null") or die "Failed to redirect STDOUT";
84
open(STDERR, ">/dev/null") or die "Failed to redirect STDERR";
85
exec("$config{'parser'}", "-S", "-I", "$config{'includedir'}") or die "Bail out! couldn't open parser";
90
open(PROFILE, $profile) or die "Bail out! couldn't open profile $profile";
92
if (/^#=DESCRIPTION\s*(.*)/) {
94
} elsif (/^#=EXRESULT\s*(\w+)/) {
97
} elsif ($1 eq "FAIL") {
100
die "Bail out! unknown expected result '$1' in $profile";
102
} elsif (/^#=TODO\s*/) {
104
} elsif (/^#=DISABLED\s*/) {
82
die "Bail out! unknown expected result '$1' in $profile";
107
print PARSER if not $isdisabled;
84
} elsif (/^#=TODO\s*/) {
86
} elsif (/^#=DISABLED\s*/) {
89
print PARSER if not $isdisabled;
93
my $result = close(PARSER);
111
$result = close(PARSER);
94
116
if ($isdisabled) {
96
118
local $TODO = "Disabled testcase.";
110
opendir(DIR, $config{'profiledir'}) or die "Bail out! can't opendir $config{'profiledir'}: $!";
111
my @profiles = sort grep { /\.sd$/ && -f "$config{'profiledir'}/$_" } readdir(DIR);
135
opendir(DIR, $testdir) or die "Bail out! can't opendir $testdir: $!";
136
my @files = sort grep { /\.sd$/ && -f "$testdir/$_" } readdir(DIR);
140
foreach my $profile (@files) {
141
push (@profiles, "$testdir/$profile");
144
opendir(DIR, $testdir) or die "Bail out! can't opendir $testdir: $!";
145
my @dirs = sort grep { /^[^\.]/ && -d "$testdir/$_" } readdir(DIR);
148
foreach my $dir (@dirs) {
149
push(@profiles, find_all_tests("$testdir/$dir"));
154
my @profiles = find_all_tests($config{'profiledir'});
114
156
plan tests => scalar(@profiles);
116
158
foreach my $profile (@profiles) {
117
test_profile ("$config{'profiledir'}/$profile");
159
test_profile ("$profile");