aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-05-19 13:06:10 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-05-19 13:06:10 +0000
commit7723a24297f78e3e191813410067db5f1dbca9d2 (patch)
tree46500185459b4b26b95331ad72115f4ccfb74638 /tests
parent95a4b8db680beeca879f39c161296d29e22138f1 (diff)
setenv support added to allow test cases to require a set of environment
variables
Diffstat (limited to 'tests')
-rw-r--r--tests/FILEFORMAT8
-rwxr-xr-xtests/runtests.pl28
2 files changed, 36 insertions, 0 deletions
diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT
index 356b0c0c0..2fd906487 100644
--- a/tests/FILEFORMAT
+++ b/tests/FILEFORMAT
@@ -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
diff --git a/tests/runtests.pl b/tests/runtests.pl
index ed1a619e5..c8bec0ba6 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -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];