summaryrefslogtreecommitdiff
path: root/source4/script/tests/selftest.pl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/script/tests/selftest.pl')
-rwxr-xr-xsource4/script/tests/selftest.pl22
1 files changed, 21 insertions, 1 deletions
diff --git a/source4/script/tests/selftest.pl b/source4/script/tests/selftest.pl
index ddbd538ec9..2fa8075602 100755
--- a/source4/script/tests/selftest.pl
+++ b/source4/script/tests/selftest.pl
@@ -679,11 +679,17 @@ sub setup_env($)
my $testenv_vars;
if (defined($running_envs{$envname})) {
$testenv_vars = $running_envs{$envname};
+ if (not $target->check_env($testenv_vars)) {
+ $testenv_vars = undef;
+ }
} elsif ($envname eq "none") {
$testenv_vars = {};
} else {
$testenv_vars = $target->setup_env($envname, $prefix);
}
+
+ return undef unless defined($testenv_vars);
+
write_clientconf($conffile, $testenv_vars);
foreach ("PASSWORD", "DOMAIN", "SERVER", "USERNAME", "NETBIOSNAME",
"KRB5_CONFIG", "REALM") {
@@ -707,6 +713,13 @@ sub getlog_env($)
return $target->getlog_env($running_envs{$envname});
}
+sub check_env($)
+{
+ my ($envname) = @_;
+ return 1 if ($envname eq "none");
+ return $target->check_env($running_envs{$envname});
+}
+
sub teardown_env($)
{
my ($envname) = @_;
@@ -750,7 +763,14 @@ NETBIOSNAME=\$NETBIOSNAME\" && bash'");
next;
}
- setup_env($envname);
+ my $envvars = setup_env($envname);
+ if (not defined($envvars)) {
+ push(@$suitesfailed, $name);
+ $statistics->{SUITES_FAIL}++;
+ $statistics->{TESTS_ERROR}++;
+ print "FAIL: $name (ENV[$envname] not available!)\n";
+ next;
+ }
run_test($envname, $name, $cmd, $i, $suitestotal, $msg_ops);