use POSIX;
use Cwd qw(abs_path);
use lib "$RealBin";
-use Subunit qw(parse_results);
-use Subunit::Filter;
+use Subunit;
use SocketWrapper;
eval {
my $opt_analyse_cmd = undef;
my $opt_resetup_env = undef;
my $opt_bindir = undef;
-my $opt_no_lazy_setup = undef;
my $opt_load_list = undef;
my @testlists = ();
open(RESULTS, "$cmd 2>&1|");
- my $msg_ops = new Subunit::Filter("$name\.");
-
- parse_results($msg_ops, *RESULTS);
+ Subunit::filter_add_prefix("$name\.", *RESULTS);
my $ret = 0;
'testenv' => \$opt_testenv,
'ldap:s' => \$ldap,
'analyse-cmd=s' => \$opt_analyse_cmd,
- 'no-lazy-setup' => \$opt_no_lazy_setup,
'resetup-environment' => \$opt_resetup_env,
'bindir:s' => \$opt_bindir,
'image=s' => \$opt_image,
my $testsdir = "$srcdir/selftest";
-my %required_envs = ();
-
sub should_run_test($)
{
my $name = shift;
my $cmdline = <IN>;
$cmdline =~ s/\n//g;
if (should_run_test($name) == 1) {
- $required_envs{$env} = 1;
push (@ret, [$name, $env, $cmdline, $supports_loadlist]);
}
} else {
$individual_tests->{$name} = [];
$match = $r;
$restricted_used->{$r} = 1;
- } elsif (substr($r, $name, length($name)+1) eq "$name.") {
- push(@{$individual_tests->{$name}}, $1);
+ } elsif (substr($r, 0, length($name)+1) eq "$name.") {
+ push(@{$individual_tests->{$name}}, substr($r, length($name)+1));
$match = $r;
$restricted_used->{$r} = 1;
}
# This 'global' file needs to be empty when we start
unlink("$prefix_abs/dns_host_file");
-if ($opt_no_lazy_setup) {
- setup_env($_) foreach (keys %required_envs);
-}
-
if ($opt_testenv) {
my $testenv_name = $ENV{SELFTEST_TESTENV};
$testenv_name = $testenv_default unless defined($testenv_name);
my $testenv_vars = setup_env($testenv_name);
+ die("Unable to setup environment $testenv_name") unless ($testenv_vars);
+
$ENV{PIDDIR} = $testenv_vars->{PIDDIR};
my $envvarstr = exported_envvars_str($testenv_vars);
my $envvars = setup_env($envname);
if (not defined($envvars)) {
- Subunit::skip_testsuite($name,
+ Subunit::start_testsuite($name);
+ Subunit::end_testsuite($name, "error",
"unable to set up environment $envname");
next;
}
# test runner for this test suite supports it.
if ($$_[3] and $individual_tests and $individual_tests->{$name}) {
my ($fh, $listid_file) = tempfile(UNLINK => 0);
- foreach (@{$individual_tests->{$name}}) {
- print $fh "$_\n";
+ foreach my $test (@{$individual_tests->{$name}}) {
+ print $fh "$test\n";
}
$cmd .= " --load-list=$listid_file";
}
- run_testsuite($envname, $name, $cmd, $i, $suitestotal,
- );
+ run_testsuite($envname, $name, $cmd, $i, $suitestotal);
if (defined($opt_analyse_cmd)) {
system("$opt_analyse_cmd \"$name\"");