diff options
author | Dan Fandrich <dan@coneharvesters.com> | 2007-04-23 22:58:45 +0000 |
---|---|---|
committer | Dan Fandrich <dan@coneharvesters.com> | 2007-04-23 22:58:45 +0000 |
commit | 28dde78dde21f20ab5ee491455828c3cf338ad5c (patch) | |
tree | 2c57b0306afaeee9379a1d3c48f344e41a0adc28 | |
parent | 37171809f67ae29adb9a5e7f64861d483049d86f (diff) |
Added <postcheck> support to the test harness.
-rw-r--r-- | tests/FILEFORMAT | 10 | ||||
-rw-r--r-- | tests/README | 10 | ||||
-rwxr-xr-x | 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 <command> section. </precheck> +<postcheck> +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 <command> section. +</postcheck> + <tool> 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=""; |