}
proc kill_server config {
+ # nothing to kill when running against external server
+ if {$::external} return
+
# nevermind if its already dead
if {![is_alive $config]} { return }
set pid [dict get $config pid]
if {![dict exists $config "skipleaks"]} {
catch {
if {[string match {*Darwin*} [exec uname -a]]} {
- test "Check for memory leaks (pid $pid)" {
- exec leaks $pid
- } {*0 leaks*}
+ tags {"leaks"} {
+ test "Check for memory leaks (pid $pid)" {
+ exec leaks $pid
+ } {*0 leaks*}
+ }
}
}
}
}
proc start_server {options {code undefined}} {
+ # If we are runnign against an external server, we just push the
+ # host/port pair in the stack the first time
+ if {$::external} {
+ if {[llength $::servers] == 0} {
+ set srv {}
+ dict set srv "host" $::host
+ dict set srv "port" $::port
+ set client [redis $::host $::port]
+ dict set srv "client" $client
+ $client select 9
+
+ # append the server to the stack
+ lappend ::servers $srv
+ }
+ uplevel 1 $code
+ return
+ }
+
# setup defaults
set baseconfig "default.conf"
set overrides {}
set stderr [format "%s/%s" [dict get $config "dir"] "stderr"]
if {$::valgrind} {
- exec valgrind ./redis-server $config_file > $stdout 2> $stderr &
+ exec valgrind src/redis-server $config_file > $stdout 2> $stderr &
after 2000
} else {
- exec ./redis-server $config_file > $stdout 2> $stderr &
+ exec src/redis-server $config_file > $stdout 2> $stderr &
after 500
}
exit 1
}
+ set ::tags [lrange $::tags 0 end-[llength $tags]]
kill_server $srv
} else {
+ set ::tags [lrange $::tags 0 end-[llength $tags]]
set _ $srv
}
-
- # remove tags
- set ::tags [lrange $::tags 0 end-[llength $tags]]
}