r22375: implement check_env() logic in the frontend
authorStefan Metzmacher <metze@samba.org>
Thu, 19 Apr 2007 14:54:09 +0000 (14:54 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:51:10 +0000 (14:51 -0500)
metze
(This used to be commit 0b48ca5d3ebe8fe29774d85ee15e473af8c0714d)

source4/script/tests/Samba3.pm
source4/script/tests/Samba4.pm
source4/script/tests/selftest.pl

index 478a79e2af71c2a047643ce845ddffe0953c6ffd..f040432ce6f176a4fc57b646e95c01712e374a70 100644 (file)
@@ -47,6 +47,14 @@ sub getlog_env($$)
        return "";
 }
 
+sub check_env($$)
+{
+       my ($self, $envvars) = @_;
+
+       # TODO ...
+       return 1;
+}
+
 sub setup_env($$$)
 {
        my ($self, $envname, $path) = @_;
index d0f66f1a8d7aabb225f641f2d88b2164cb492aab..4ab720c7bfccf1be18a9a349cb4e63c8aebbefb6 100644 (file)
@@ -675,6 +675,14 @@ sub getlog_env($$)
        return $out;
 }
 
+sub check_env($$)
+{
+       my ($self, $envvars) = @_;
+
+       # TODO ...
+       return 1;
+}
+
 sub setup_env($$$)
 {
        my ($self, $envname, $path) = @_;
index ddbd538ec9a1c24788f46a1bee6e67b1d8ef45c6..2fa8075602077aa99ffde2bb13093a31ae495e37 100755 (executable)
@@ -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);