From 7723a24297f78e3e191813410067db5f1dbca9d2 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 19 May 2003 13:06:10 +0000 Subject: [PATCH] setenv support added to allow test cases to require a set of environment variables --- tests/FILEFORMAT | 8 ++++++++ tests/runtests.pl | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) 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 + +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. + + 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];