Testsuite: env var for command
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 26 Feb 2023 13:12:50 +0000 (13:12 +0000)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 26 Feb 2023 13:12:50 +0000 (13:12 +0000)
test/README
test/runtest

index f934c0d2dd7af13d9eecdd224340c0033879f9bf..6c9a2d8da52189ef53723f03365c48c50442a29b 100644 (file)
@@ -696,6 +696,17 @@ be replaced by the local host's name. Long commands can be continued over
 several lines by using \ as a continuation character. This does *not* apply to
 data lines.
 
+A line with a leading number followed by a space and then an uppercase
+word, equals character, value sets an expected return code as above
+plus an environment variable.  Example:
+
+  255 TZ=GB
+  exim_msgdate -l -u -z -localhost_number=20 000000 1PANS3 ZZZZZZ
+  ****
+
+
+
+
 Here follows a list of supported commands. They can be divided into two groups:
 
 
index 3931b06d4018bfdcc9db9ae75320a593eb275983..137f8dac600c095a2c83299a4ae001827540a304 100755 (executable)
@@ -2304,10 +2304,11 @@ my($yield) = 1;
 
 our %ENV = map { $_ => $ENV{$_} } grep { /^(?:USER|SHELL|PATH|TERM|EXIM_TEST_.*)$/ } keys %ENV;
 
-if (/^(\d+)\s*$/)                # Handle unusual return code
+if (/^(\d+)\s*(?:([A-Z]+)=(\S+))?$/)                # Handle unusual return code
   {
   my($r) = $_[2];
   $$r = $1 << 8;
+  $ENV{$2} = $3 if (defined $2);
   $_ = <SCRIPT>;
   return 4 if !defined $_;       # Missing command
   $lineno++;