Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
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