From 28dde78dde21f20ab5ee491455828c3cf338ad5c Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Mon, 23 Apr 2007 22:58:45 +0000 Subject: [PATCH] Added support to the test harness. --- tests/FILEFORMAT | 10 ++++++++-- tests/README | 10 ++++++---- tests/runtests.pl | 22 +++++++++++++++++++++- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/tests/FILEFORMAT b/tests/FILEFORMAT index 3c21be195..d0cb8b44e 100644 --- a/tests/FILEFORMAT +++ b/tests/FILEFORMAT @@ -105,8 +105,8 @@ NOSAVE - Don't actually save what is received SLOWDOWN - Send FTP responses with 0.1 sec delay between each byte -PASVBADIP - makes PASV send back an illegal IP in its 227 response - - Send back a bad IP in the PASV response +PASVBADIP + - makes PASV send back an illegal IP in its 227 response For HTTP/HTTPS: auth_required - if this is set and a POST/PUT is made without auth, the @@ -173,6 +173,12 @@ output is displayed by the command, the test will be skipped and the Variables are substituted as in the section. + +A command line that if set gets run by the test script after the test. If +the command exists with a non-zero status code, the test will be considered +to have failed. Variables are substituted as in the section. + + Name of tool to use instead of "curl". This tool must be built and exist in the libtest/ directory. diff --git a/tests/README b/tests/README index fc31405e7..c9523a382 100644 --- a/tests/README +++ b/tests/README @@ -81,16 +81,18 @@ TEST CASE NUMBERS So far, I've used this system: 1 - 99 HTTP - 100 - 199 FTP - 200 - 299 FILE + 100 - 199 FTP* + 200 - 299 FILE* 300 - 399 HTTPS 400 - 499 FTPS 500 - 599 libcurl source code tests, not using the curl command tool 600 - 699 SCP/SFTP + 700 - 799 miscellanous* Since 30-apr-2003, there's nothing in the system that requires us to keep - within these number series. Each test case now specifies its own server - requirements, independent of test number. + within these number series, and those sections marked with * actually + contain tests for a variety of protocols. Each test case now specifies + its own server requirements, independent of test number. TODO: diff --git a/tests/runtests.pl b/tests/runtests.pl index ec4b888ac..492eed392 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -1633,6 +1633,7 @@ sub singletest { my $dumped_core; my $cmdres; + # Apr 2007: precommand isn't being used and could be removed my @precommand= getpart("client", "precommand"); if($precommand[0]) { # this is pure perl to eval! @@ -1654,7 +1655,7 @@ sub singletest { } # run the command line we built if ($torture) { - return torture($CMDLINE, + $cmdres = torture($CMDLINE, "$gdb --directory libtest $DBGCURL -x log/gdbcmd"); } elsif($gdbthis) { @@ -1692,6 +1693,20 @@ sub singletest { } } + # run the postcheck command + my @postcheck= getpart("client", "postcheck"); + $cmd = $postcheck[0]; + chomp $cmd; + subVariables \$cmd; + if($cmd) { + my $rc = system("$cmd"); + if($rc != 0) { + logmsg "postcheck failure\n"; + return 1; + } + logmsg "postchecked $cmd\n" if($verbose); + } + # remove the special FTP command file after each test! unlink($FTPDCMD); @@ -1700,6 +1715,11 @@ sub singletest { $ENV{$e}=""; # clean up } + # Don't bother doing verification on torture tests + if ($torture) { + return $cmdres; + } + my @err = getpart("verify", "errorcode"); my $errorcode = $err[0] || "0"; my $ok="";