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 close $fd
} e]} { } e]} {
puts "Can't PING server at $host:$port... $e" puts -nonewline "."
} else {
puts -nonewline "ok"
} }
return $retval return $retval
} }
@ -170,14 +172,33 @@ proc start_server {options {code undefined}} {
if {$::valgrind} { if {$::valgrind} {
exec valgrind src/redis-server $config_file > $stdout 2> $stderr & exec valgrind src/redis-server $config_file > $stdout 2> $stderr &
after 2000
} else { } else {
exec src/redis-server $config_file > $stdout 2> $stderr & exec src/redis-server $config_file > $stdout 2> $stderr &
after 500
} }
# check that the server actually started # 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] 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} { test {SAVE - make sure there are all the types as values} {
# Wait for a background saving in progress to terminate # Wait for a background saving in progress to terminate
waitForBgsave r waitForBgsave r

View File

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