diff options
-rw-r--r-- | tests/data/test1457 | 2 | ||||
-rw-r--r-- | tests/data/test506 | 3 | ||||
-rwxr-xr-x | tests/runtests.pl | 54 |
3 files changed, 54 insertions, 5 deletions
diff --git a/tests/data/test1457 b/tests/data/test1457 index aad6d43d4..43a5f35d3 100644 --- a/tests/data/test1457 +++ b/tests/data/test1457 @@ -29,7 +29,7 @@ http Check if %{stderr} and %{stdout} switch between stdout and stderr. </name> <command> -http://%HOSTIP:%HTTPPORT/1457 --write-out 'line1%{stderr}line2%{stdout}line3' +http://%HOSTIP:%HTTPPORT/1457 --silent --write-out 'line1%{stderr}line2%{stdout}line3' </command> </client> diff --git a/tests/data/test506 b/tests/data/test506 index 30f4aa9c0..8f06e0e4f 100644 --- a/tests/data/test506 +++ b/tests/data/test506 @@ -228,9 +228,6 @@ lock: share [Pigs in space]: 94 unlock: share [Pigs in space]: 95 GLOBAL_CLEANUP </stdout> -<stderr> -http://%HOSTIP:%HTTPPORT/506 -</stderr> <file name="log/jar506" mode="text"> # Netscape HTTP Cookie File # https://curl.haxx.se/docs/http-cookies.html diff --git a/tests/runtests.pl b/tests/runtests.pl index 6c8b903c3..66ab405f5 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -6,7 +6,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. +# Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -3746,6 +3746,7 @@ sub singletest { # if this section exists, we verify that the stdout contained this: my @validstdout = fixarray ( getpart("verify", "stdout") ); + my @validstderr = fixarray ( getpart("verify", "stderr") ); # if this section exists, we verify upload my @upload = getpart("verify", "upload"); @@ -4229,6 +4230,57 @@ sub singletest { $ok .= "-"; # stdout not checked } + if (@validstderr) { + # verify redirected stderr + my @actual = loadarray($STDERR); + + # what parts to cut off from stderr + my @stripfile = getpart("verify", "stripfile"); + + foreach my $strip (@stripfile) { + chomp $strip; + my @newgen; + for(@actual) { + eval $strip; + if($_) { + push @newgen, $_; + } + } + # this is to get rid of array entries that vanished (zero + # length) because of replacements + @actual = @newgen; + } + + # variable-replace in the stderr we have from the test case file + @validstderr = fixarray(@validstderr); + + # get all attributes + my %hash = getpartattr("verify", "stderr"); + + # get the mode attribute + my $filemode=$hash{'mode'}; + if($filemode && ($filemode eq "text") && $has_textaware) { + # text mode when running on windows: fix line endings + map s/\r\n/\n/g, @validstderr; + map s/\n/\r\n/g, @validstderr; + } + + if($hash{'nonewline'}) { + # Yes, we must cut off the final newline from the final line + # of the protocol data + chomp($validstderr[$#validstderr]); + } + + $res = compare($testnum, $testname, "stderr", \@actual, \@validstderr); + if($res) { + return 1; + } + $ok .= "r"; + } + else { + $ok .= "-"; # stderr not checked + } + if(@protocol) { # Verify the sent request my @out = loadarray($SERVERIN); |