# - stdout_filter: <filter to run stdout through> (default: none)
# - stderr_filter: <filter to run stderr through> (default: ./filter_stderr)
# - cpu_test: <cpu feature required for test> (default: none)
-# - delete: <created file(s) to delete> (default: none)
+# - cleanup: <post-test cleanup cmd to run> (default: none)
#
# Note that filters are necessary for stderr results to filter out things that
# always change, eg. process id numbers.
my $stdout_filter; # filter program to run stdout results file through
my $stderr_filter; # filter program to run stderr results file through
my $cpu_test; # cpu feature to check for before running test
-my $delete; # file(s) to delete
+my $cleanup; # cleanup command to run
my @failures; # List of failed tests
my ($f) = @_;
# Defaults.
- ($vgopts, $prog, $args, $stdout_filter, $stderr_filter, $cpu_test, $delete)
+ ($vgopts, $prog, $args, $stdout_filter, $stderr_filter, $cpu_test, $cleanup)
= ("", undef, "", undef, undef, undef, undef);
# Every test directory must have a "filter_stderr"
$stderr_filter = validate_program(".", $1, 1, 1);
} elsif ($line =~ /^\s*cpu_test:\s*(.*)$/) {
$cpu_test = $1;
- } elsif ($line =~ /^\s*delete:\s*(.*)$/) {
- $delete = $1;
+ } elsif ($line =~ /^\s*cleanup:\s*(.*)$/) {
+ $cleanup = $1;
} else {
die "Bad line in $f: $line\n";
}
do_diffs($fullname, $name, "stdout", \@stdout_exps);
do_diffs($fullname, $name, "stderr", \@stderr_exps);
- if (defined $delete) {
- unlink(glob($delete));
+ if (defined $cleanup) {
+ (system("$cleanup") == 0) or
+ print("(cleanup operation failed: $cleanup)\n");
}
$num_tests_done++;