diff --git a/tests/FILEFORMAT.md b/tests/FILEFORMAT.md index 1c45d15630..bfd5d221e5 100644 --- a/tests/FILEFORMAT.md +++ b/tests/FILEFORMAT.md @@ -243,6 +243,9 @@ The connect section is used instead of the 'data' for all CONNECT requests. The remainder of the rules for the data section then apply but with a connect prefix. +### `` +Address type and address details as logged by the SOCKS proxy. + ### `` if the data is sent but this is what should be checked afterwards. If `nonewline=yes` is set, runtests will cut off the trailing newline from the diff --git a/tests/runtests.pl b/tests/runtests.pl index 7f3b20c14a..7ac22035b0 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -185,6 +185,7 @@ my $UNITDIR="./unit"; my $SERVERIN="$LOGDIR/server.input"; # what curl sent the server my $SERVER2IN="$LOGDIR/server2.input"; # what curl sent the second server my $PROXYIN="$LOGDIR/proxy.input"; # what curl sent the proxy +my $SOCKSIN="$LOGDIR/socksd-request.log"; # what curl sent to the SOCKS proxy my $CURLLOG="commands.log"; # all command lines run my $FTPDCMD="$LOGDIR/ftpserver.cmd"; # copy server instructions here my $SERVERLOGS_LOCK="$LOGDIR/serverlogs.lock"; # server logs advisor read lock @@ -4586,6 +4587,17 @@ sub singletest { } $ok .= ($outputok) ? "o" : "-"; # output checked or not + # verify SOCKS proxy details + my @socksprot = getpart("verify", "socks"); + if(@socksprot) { + # Verify the sent SOCKS proxy details + my @out = loadarray($SOCKSIN); + $res = compare($testnum, $testname, "socks", \@out, \@socksprot); + if($res) { + return $errorreturncode; + } + } + # accept multiple comma-separated error codes my @splerr = split(/ *, */, $errorcode); my $errok;