aboutsummaryrefslogtreecommitdiff
path: root/tests/runtests.pl
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2010-11-03 11:22:46 +0100
committerDaniel Stenberg <daniel@haxx.se>2010-11-03 11:22:46 +0100
commita4765b055152aeadb7830496d948139e6aadd4ea (patch)
tree34d7b509e07e664f86f952d7101e2f85b243319e /tests/runtests.pl
parent29de7dd288886679f3596014887b09f2e522633e (diff)
runtests: allow tests written as perl scripts
If a command is set type="perl", it can now specify a perl program that will be run instead of an ordinary curl or built tool. A perl test automatically disables memory and valgrind debugging.
Diffstat (limited to 'tests/runtests.pl')
-rwxr-xr-xtests/runtests.pl52
1 files changed, 29 insertions, 23 deletions
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 347adf7ef..2eb65fd9e 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -2246,6 +2246,7 @@ sub singletest {
my $why;
my %feature;
my $cmd;
+ my $disablevalgrind;
# copy test number to a global scope var, this allows
# testnum checking when starting test harness servers.
@@ -2485,9 +2486,6 @@ sub singletest {
@reply=@replycheck;
}
- # curl command to run
- my @curlcmd= fixarray ( getpart("client", "command") );
-
# this is the valid protocol blurb curl should generate
my @protocol= fixarray ( getpart("verify", "protocol") );
@@ -2541,12 +2539,12 @@ sub singletest {
my @blaha;
($cmd, @blaha)= getpart("client", "command");
- # make some nice replace operations
- $cmd =~ s/\n//g; # no newlines please
-
- # substitute variables in the command line
- subVariables \$cmd;
-
+ if($cmd) {
+ # make some nice replace operations
+ $cmd =~ s/\n//g; # no newlines please
+ # substitute variables in the command line
+ subVariables \$cmd;
+ }
if($curl_debug) {
unlink($memdump);
}
@@ -2597,14 +2595,31 @@ sub singletest {
}
}
+ my $CMDLINE;
my $cmdargs;
- if(!$tool) {
+ my $cmdtype = $cmdhash{'type'} || "default";
+ if($cmdtype eq "perl") {
+ # run the command line prepended with "perl"
+ $cmdargs ="$cmd";
+ $CMDLINE = "perl ";
+ $tool=$CMDLINE;
+ $disablevalgrind=1;
+ }
+ elsif(!$tool) {
# run curl, add --verbose for debug information output
$cmdargs ="$out --include --verbose --trace-time $cmd";
}
else {
$cmdargs = " $cmd"; # $cmd is the command line for the test file
$CURLOUT = $STDOUT; # sends received data to stdout
+
+ $CMDLINE="$LIBDIR/$tool";
+ if(! -f $CMDLINE) {
+ print "The tool set in the test case for this: '$tool' does not exist\n";
+ timestampskippedevents($testnum);
+ return -1;
+ }
+ $DBGCURL=$CMDLINE;
}
my @stdintest = getpart("client", "stdin");
@@ -2615,23 +2630,13 @@ sub singletest {
$cmdargs .= " <$stdinfile";
}
- my $CMDLINE;
if(!$tool) {
$CMDLINE="$CURL";
}
- else {
- $CMDLINE="$LIBDIR/$tool";
- if(! -f $CMDLINE) {
- print "The tool set in the test case for this: '$tool' does not exist\n";
- timestampskippedevents($testnum);
- return -1;
- }
- $DBGCURL=$CMDLINE;
- }
my $usevalgrind;
- if($valgrind) {
+ if($valgrind && !$disablevalgrind) {
my @valgrindoption = getpart("verify", "valgrind");
if((!@valgrindoption) || ($valgrindoption[0] !~ /disable/)) {
$usevalgrind = 1;
@@ -3069,7 +3074,8 @@ sub singletest {
if($curl_debug) {
if(! -f $memdump) {
- logmsg "\n** ALERT! memory debugging with no output file?\n";
+ logmsg "\n** ALERT! memory debugging with no output file?\n"
+ if(!$cmdtype eq "perl");
}
else {
my @memdata=`$memanalyze $memdump`;
@@ -3131,7 +3137,7 @@ sub singletest {
$ok .= "v";
}
else {
- if(!$short) {
+ if(!$short && !$disablevalgrind) {
logmsg " valgrind SKIPPED\n";
}
$ok .= "-"; # skipped