summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2010-08-31 11:17:06 +0200
committerantirez <antirez@gmail.com>2010-08-31 11:17:06 +0200
commit08f55b786b58b3e0f8310e02683a0e1761c5b6bf (patch)
tree40d9591c1176f648ca875c7d21a49393f57505dd
parent1eb13e4913622927b17b9c2922754f864d520710 (diff)
downloadredis-08f55b786b58b3e0f8310e02683a0e1761c5b6bf.tar.gz
faster server starting in Redis tests
-rw-r--r--tests/support/server.tcl29
-rw-r--r--tests/unit/other.tcl2
-rw-r--r--tests/unit/protocol.tcl2
3 files changed, 27 insertions, 6 deletions
diff --git a/tests/support/server.tcl b/tests/support/server.tcl
index 24fef4677..e5ca6c6cd 100644
--- a/tests/support/server.tcl
+++ b/tests/support/server.tcl
@@ -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]
}
diff --git a/tests/unit/other.tcl b/tests/unit/other.tcl
index f0497b62c..5967c722d 100644
--- a/tests/unit/other.tcl
+++ b/tests/unit/other.tcl
@@ -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
diff --git a/tests/unit/protocol.tcl b/tests/unit/protocol.tcl
index 9eebf77fd..5bf42d7fe 100644
--- a/tests/unit/protocol.tcl
+++ b/tests/unit/protocol.tcl
@@ -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"