selftest: put the target on the environment
authorAndrew Bartlett <abartlet@samba.org>
Mon, 18 Apr 2011 03:44:36 +0000 (13:44 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 19 Apr 2011 00:03:49 +0000 (10:03 +1000)
This will allow us to have a 'switch' target type that creates
environments from Samba3 or Samba4 as required.

Andrew Bartlett

selftest/selftest.pl

index 69c95e9152c67f624716502ca366088dbccd84e0..c4afde75c0f4408fbb3117a45f2972edffa31451 100755 (executable)
@@ -865,12 +865,15 @@ sub setup_env($$)
                $testenv_vars = {};
        } elsif (defined(get_running_env($envname))) {
                $testenv_vars = get_running_env($envname);
-               if (not $target->check_env($testenv_vars)) {
-                       print $target->getlog_env($testenv_vars);
+               if (not $testenv_vars->{target}->check_env($testenv_vars)) {
+                       print $testenv_vars->{target}->getlog_env($testenv_vars);
                        $testenv_vars = undef;
                }
        } else {
                $testenv_vars = $target->setup_env($envname, $prefix);
+               if (defined($testenv_vars) && not defined($testenv_vars->{target})) {
+                      $testenv_vars->{target} = $target;
+               }
        }
 
        return undef unless defined($testenv_vars);
@@ -916,21 +919,24 @@ sub getlog_env($)
 {
        my ($envname) = @_;
        return "" if ($envname eq "none");
-       return $target->getlog_env(get_running_env($envname));
+       my $env = get_running_env($envname);
+       return $env->{target}->getlog_env($env);
 }
 
 sub check_env($)
 {
        my ($envname) = @_;
        return 1 if ($envname eq "none");
-       return $target->check_env(get_running_env($envname));
+       my $env = get_running_env($envname);
+       return $env->{target}->check_env($env);
 }
 
 sub teardown_env($)
 {
        my ($envname) = @_;
        return if ($envname eq "none");
-       $target->teardown_env(get_running_env($envname));
+       my $env = get_running_env($envname);
+       $env->{target}->teardown_env($env);
        delete $running_envs{$envname};
 }