setenv support added to allow test cases to require a set of environment
authorDaniel Stenberg <daniel@haxx.se>
Mon, 19 May 2003 13:06:10 +0000 (13:06 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 19 May 2003 13:06:10 +0000 (13:06 +0000)
variables

tests/FILEFORMAT
tests/runtests.pl

index 356b0c0..2fd9064 100644 (file)
@@ -66,6 +66,14 @@ in the libtest/ directory.
 test case description
 </name>
 
+<setenv>
+variable1=contents1
+variable2=contents2
+
+Set the given environment variables to the specified value before the actual
+command is run, they are clear again after the command has been run.
+</setenv>
+
 <command [option=no-output]>
 command line to run, there's a bunch of %variables that get replaced
 accordingly. more about them elsewhere
index ed1a619..c8bec0b 100755 (executable)
@@ -611,6 +611,29 @@ sub singletest {
         writearray($FTPDCMD, \@ftpservercmd);
     }
 
+    my (@setenv)= getpart("client", "setenv");
+    my @envs;
+
+    my $s;
+    for $s (@setenv) {
+        chomp $s; # cut off the newline
+
+        subVariables \$s;
+
+        print "MOO: $s\n";
+        
+        if($s =~ /([^=]*)=(.*)/) {
+            my ($var, $content)=($1, $2);
+            
+            $ENV{$var}=$content;
+
+            print "setenv $var to $content\n";
+
+            # remember which, so that we can clear them afterwards!
+            push @envs, $var;
+        }
+    }
+
     # get the command line options to use
     my ($cmd, @blaha)= getpart("client", "command");
 
@@ -720,6 +743,11 @@ sub singletest {
     # remove the special FTP command file after each test!
     unlink($FTPDCMD);
 
+    my $e;
+    for $e (@envs) {
+        $ENV{$e}=""; # clean up
+    }
+
     my @err = getpart("verify", "errorcode");
     my $errorcode = $err[0];