diff options
Diffstat (limited to 'tests/support')
-rw-r--r-- | tests/support/server.tcl | 3 | ||||
-rw-r--r-- | tests/support/test.tcl | 9 | ||||
-rw-r--r-- | tests/support/util.tcl | 37 |
3 files changed, 41 insertions, 8 deletions
diff --git a/tests/support/server.tcl b/tests/support/server.tcl index 4c596290d..9a3733b61 100644 --- a/tests/support/server.tcl +++ b/tests/support/server.tcl @@ -537,6 +537,9 @@ proc start_server {options {code undefined}} { set fd [open $stdout "a+"] puts $fd "### Starting server for test $::cur_test" close $fd + if {$::verbose > 1} { + puts "### Starting server $stdout for test - $::cur_test" + } } # We may have a stdout left over from the previous tests, so we need diff --git a/tests/support/test.tcl b/tests/support/test.tcl index 68180bea4..b7cd38b38 100644 --- a/tests/support/test.tcl +++ b/tests/support/test.tcl @@ -168,7 +168,9 @@ proc test {name code {okpattern undefined} {tags {}}} { send_data_packet $::test_server_fd skip $name return } - + if {$::verbose > 1} { + puts "starting test $name" + } # abort if only_tests was set but test name is not included if {[llength $::only_tests] > 0 && ![search_pattern_list $name $::only_tests]} { incr ::num_skipped @@ -200,11 +202,16 @@ proc test {name code {okpattern undefined} {tags {}}} { $r close } } else { + set servers {} foreach srv $::servers { set stdout [dict get $srv stdout] set fd [open $stdout "a+"] puts $fd "### Starting test $::cur_test" close $fd + lappend servers $stdout + } + if {$::verbose > 1} { + puts "### Starting test $::cur_test - with servers: $servers" } } diff --git a/tests/support/util.tcl b/tests/support/util.tcl index 236fad314..c98e7801b 100644 --- a/tests/support/util.tcl +++ b/tests/support/util.tcl @@ -602,15 +602,24 @@ proc stop_bg_complex_data {handle} { # Write num keys with the given key prefix and value size (in bytes). If idx is # given, it's the index (AKA level) used with the srv procedure and it specifies # to which Redis instance to write the keys. -proc populate {num {prefix key:} {size 3} {idx 0}} { - set rd [redis_deferring_client $idx] - for {set j 0} {$j < $num} {incr j} { - $rd set $prefix$j [string repeat A $size] +proc populate {num {prefix key:} {size 3} {idx 0} {prints false}} { + r $idx deferred 1 + if {$num > 16} {set pipeline 16} else {set pipeline $num} + set val [string repeat A $size] + for {set j 0} {$j < $pipeline} {incr j} { + r $idx set $prefix$j $val + if {$prints} {puts $j} } - for {set j 0} {$j < $num} {incr j} { - $rd read + for {} {$j < $num} {incr j} { + r $idx set $prefix$j $val + r $idx read + if {$prints} {puts $j} } - $rd close + for {set j 0} {$j < $pipeline} {incr j} { + r $idx read + if {$prints} {puts $j} + } + r $idx deferred 0 } proc get_child_pid {idx} { @@ -636,6 +645,20 @@ proc process_is_alive pid { } } +proc pause_process pid { + exec kill -SIGSTOP $pid + wait_for_condition 50 100 { + [string match {*T*} [lindex [exec ps j $pid] 16]] + } else { + puts [exec ps j $pid] + fail "process didn't stop" + } +} + +proc resume_process pid { + exec kill -SIGCONT $pid +} + proc cmdrstat {cmd r} { if {[regexp "\r\ncmdstat_$cmd:(.*?)\r\n" [$r info commandstats] _ value]} { set _ $value |