diff options
author | antirez <antirez@gmail.com> | 2018-08-02 19:07:17 +0200 |
---|---|---|
committer | antirez <antirez@gmail.com> | 2018-08-02 19:07:17 +0200 |
commit | 3d56311f0ca077fc4661e132508ceca30e74de74 (patch) | |
tree | cf3f7fda363a8dcb3fef6d593c60059614cb92db | |
parent | 26897c03e2b9a15c5a574c41763aaae7b9c7d66e (diff) | |
download | redis-3d56311f0ca077fc4661e132508ceca30e74de74.tar.gz |
Test suite: add --loop option.
Very useful with --stop in order to catch heisenbugs.
-rw-r--r-- | tests/test_helper.tcl | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index 753a0f9b9..1a986e2f7 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -90,6 +90,7 @@ set ::active_servers {} ; # Pids of active Redis instances. set ::dont_clean 0 set ::wait_server 0 set ::stop_on_failure 0 +set ::loop 0 # Set to 1 when we are running in client mode. The Redis test uses a # server-client model to run tests simultaneously. The server instance @@ -370,6 +371,9 @@ proc signal_idle_client fd { send_data_packet $fd run [lindex $::all_tests $::next_test] lappend ::active_clients $fd incr ::next_test + if {$::loop && $::next_test == [llength $::all_tests]} { + set ::next_test 0 + } } else { lappend ::idle_clients $fd if {[llength $::active_clients] == 0} { @@ -439,11 +443,12 @@ proc print_help_screen {} { "--clients <num> Number of test clients (default 16)." "--timeout <sec> Test timeout in seconds (default 10 min)." "--force-failure Force the execution of a test that always fails." - "--config <k> <v> Extra config file argument" - "--skipfile <file> Name of a file containing test names that should be skipped (one per line)" - "--dont-clean Don't delete redis log files after the run" - "--stop Blocks once the first test fails" - "--wait-server Wait after server is started (so that you can attach a debugger)" + "--config <k> <v> Extra config file argument." + "--skipfile <file> Name of a file containing test names that should be skipped (one per line)." + "--dont-clean Don't delete redis log files after the run." + "--stop Blocks once the first test fails." + "--loop Execute the specified set of tests forever." + "--wait-server Wait after server is started (so that you can attach a debugger)." "--help Print this help screen." } "\n"] } @@ -520,6 +525,8 @@ for {set j 0} {$j < [llength $argv]} {incr j} { set ::wait_server 1 } elseif {$opt eq {--stop}} { set ::stop_on_failure 1 + } elseif {$opt eq {--loop}} { + set ::loop 1 } elseif {$opt eq {--timeout}} { set ::timeout $arg incr j |