summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2018-08-02 19:07:17 +0200
committerantirez <antirez@gmail.com>2018-08-03 12:28:04 +0200
commita4d1201eba1177ada5339b197a32c9039c046bbb (patch)
tree8895df7f8caa780b9a18c2dc2e905b5d023d9837
parent273d8191e12e98c553f13cc0d485e1f92a467943 (diff)
downloadredis-a4d1201eba1177ada5339b197a32c9039c046bbb.tar.gz
Test suite: add --loop option.
Very useful with --stop in order to catch heisenbugs.
-rw-r--r--tests/test_helper.tcl17
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