faster server starting in Redis tests

This commit is contained in:
antirez 2010-08-31 11:17:06 +02:00
parent 1eb13e4913
commit 08f55b786b
3 changed files with 27 additions and 6 deletions

View File

@ -83,7 +83,9 @@ proc ping_server {host port} {
}
close $fd
} e]} {
puts "Can't PING server at $host:$port... $e"
puts -nonewline "."
} else {
puts -nonewline "ok"
}
return $retval
}
@ -170,14 +172,33 @@ proc start_server {options {code undefined}} {
if {$::valgrind} {
exec valgrind src/redis-server $config_file > $stdout 2> $stderr &
after 2000
} else {
exec src/redis-server $config_file > $stdout 2> $stderr &
after 500
}
# check that the server actually started
if {$code ne "undefined" && ![ping_server $::host $::port]} {
# ugly but tries to be as fast as possible...
set retrynum 20
set serverisup 0
puts -nonewline "=== ($tags) Starting server ${::host}:${::port} "
after 10
if {$code ne "undefined"} {
while {[incr retrynum -1]} {
catch {
if {[ping_server $::host $::port]} {
set serverisup 1
}
}
if {$serverisup} break
after 50
}
} else {
set serverisup 1
}
puts {}
if {!$serverisup} {
error_and_quit $config_file [exec cat $stderr]
}

View File

@ -1,4 +1,4 @@
start_server {} {
start_server {tags {"other"}} {
test {SAVE - make sure there are all the types as values} {
# Wait for a background saving in progress to terminate
waitForBgsave r

View File

@ -1,4 +1,4 @@
start_server {} {
start_server {tags {"protocol"}} {
test {Handle an empty query well} {
set fd [r channel]
puts -nonewline $fd "\r\n"