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); | 
