diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-05-04 16:32:56 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-05-04 23:36:57 +0200 |
commit | 067b8f230460388442f9f9f5ed7a744ca9c646b5 (patch) | |
tree | 29cbda7adeb5abb911a1187ccaa2bf6db35d0192 /tests/runtests.pl | |
parent | 79bb0afddb4a59033b82a9a55acf317e85f57e3c (diff) | |
download | curl-067b8f230460388442f9f9f5ed7a744ca9c646b5.tar.gz |
runtests: add -o to run test cases in scrambled order
... instead of numerical order.
Closes #1466
Diffstat (limited to 'tests/runtests.pl')
-rwxr-xr-x | tests/runtests.pl | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/tests/runtests.pl b/tests/runtests.pl index e281e318c..d3e4fbbcc 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -194,7 +194,7 @@ my $pwd = getcwd(); # current working directory my $start; my $ftpchecktime=1; # time it took to verify our test FTP server - +my $scrambleorder; my $stunnel = checkcmd("stunnel4") || checkcmd("tstunnel") || checkcmd("stunnel"); my $valgrind = checktestcmd("valgrind"); my $valgrind_logfile="--logfile"; @@ -4870,6 +4870,10 @@ while(@ARGV) { # have the servers display protocol output $debugprotocol=1; } + elsif($ARGV[0] eq "-e") { + # run the tests cases event based if possible + $run_event_based=1; + } elsif ($ARGV[0] eq "-g") { # run this test with gdb $gdbthis=1; @@ -4892,6 +4896,10 @@ while(@ARGV) { # no valgrind undef $valgrind; } + elsif ($ARGV[0] eq "-o") { + # execute in scrambled order + $scrambleorder=1; + } elsif($ARGV[0] =~ /^-t(.*)/) { # torture $torture=1; @@ -4907,10 +4915,6 @@ while(@ARGV) { # continue anyway, even if a test fail $anyway=1; } - elsif($ARGV[0] eq "-e") { - # run the tests cases event based if possible - $run_event_based=1; - } elsif($ARGV[0] eq "-p") { $postmortem=1; } @@ -4958,12 +4962,14 @@ Usage: runtests.pl [options] [test selection(s)] -bN use base port number N for test servers (default $base) -c path use this curl executable -d display server debug info + -e event-based execution -g run the test case with gdb -gw run the test case with gdb as a windowed application -h this help text -k keep stdout and stderr files present after tests -l list all test case names/descriptions -n no valgrind + -o scrambled order -p print log file contents when a test fails -r run time statistics -rf full run time statistics @@ -5188,6 +5194,19 @@ else { $TESTCASES = $verified; } +if($scrambleorder) { + # scramble the order of the test cases + my @rand; + while($TESTCASES) { + my @all = split(/ /, $TESTCASES); + my $r = rand @all; + push @rand, $all[$r]; + $all[$r]=""; + $TESTCASES = join(" ", @all); + } + $TESTCASES = join(" ", @rand); +} + ####################################################################### # Start the command line log # |