Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
4fb6d00c
Commit
4fb6d00c
authored
May 14, 2010
by
Pieter Noordhuis
Browse files
extract code to kill a server to a separate proc
parent
47bebf15
Changes
1
Hide whitespace changes
Inline
Side-by-side
test/support/server.tcl
View file @
4fb6d00c
...
@@ -7,6 +7,20 @@ proc error_and_quit {config_file error} {
...
@@ -7,6 +7,20 @@ proc error_and_quit {config_file error} {
exit 1
exit 1
}
}
proc kill_server config
{
set pid
[
dict get $config pid
]
# kill server and wait for the process to be totally exited
exec kill $pid
while 1
{
if
{[
catch
{
exec ps -p $pid | grep redis-server
}
result
]}
{
# non-zero exis status, process is gone
break
;
}
after 10
}
}
proc start_server
{
filename overrides
{
code undefined
}}
{
proc start_server
{
filename overrides
{
code undefined
}}
{
set data
[
split
[
exec cat
"test/assets/
$filename
"
]
"
\n
"
]
set data
[
split
[
exec cat
"test/assets/
$filename
"
]
"
\n
"
]
set config
{}
set config
{}
...
@@ -71,6 +85,13 @@ proc start_server {filename overrides {code undefined}} {
...
@@ -71,6 +85,13 @@ proc start_server {filename overrides {code undefined}} {
$client select 9
$client select 9
}
}
# setup config dict
dict set ret
"config"
$config_file
dict set ret
"pid"
$pid
dict set ret
"stdout"
$stdout
dict set ret
"stderr"
$stderr
dict set ret
"client"
$client
if
{
$code
ne
"undefined"
}
{
if
{
$code
ne
"undefined"
}
{
# append the client to the client stack
# append the client to the client stack
lappend ::clients $client
lappend ::clients $client
...
@@ -81,32 +102,14 @@ proc start_server {filename overrides {code undefined}} {
...
@@ -81,32 +102,14 @@ proc start_server {filename overrides {code undefined}} {
# pop the client object
# pop the client object
set ::clients
[
lrange $::clients 0 end-1
]
set ::clients
[
lrange $::clients 0 end-1
]
# kill server and wait for the process to be totally exited
kill_server $ret
exec kill $pid
while 1
{
if
{[
catch
{
exec ps -p $pid | grep redis-server
}
result
]}
{
# non-zero exis status, process is gone
break
;
}
after 10
}
if
{[
string length $err
]
> 0
}
{
if
{[
string length $err
]
> 0
}
{
puts
"Error executing the suite, aborting..."
puts
"Error executing the suite, aborting..."
puts $err
puts $err
exit 1
exit 1
}
}
}
else
{
}
else
{
dict set ret
"config"
$config_file
dict set ret
"pid"
$pid
dict set ret
"stdout"
$stdout
dict set ret
"stderr"
$stderr
dict set ret
"client"
$client
set _ $ret
set _ $ret
}
}
}
}
proc kill_server config
{
set pid
[
dict get $config pid
]
exec kill $pid
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment