fix graceful restart and add unit test
This commit is contained in:
63
tests/test_graceful_restart.sh
Executable file
63
tests/test_graceful_restart.sh
Executable file
@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
|
||||
PYTHON="coverage run -p -a"
|
||||
URL=http://127.0.0.1/file
|
||||
|
||||
|
||||
# setup processes
|
||||
$PYTHON shadowsocks/local.py -c tests/graceful.json &
|
||||
LOCAL=$!
|
||||
|
||||
$PYTHON shadowsocks/server.py -c tests/graceful.json --forbidden-ip "" &
|
||||
SERVER=$!
|
||||
|
||||
python tests/graceful_server.py &
|
||||
GSERVER=$!
|
||||
|
||||
sleep 1
|
||||
|
||||
python tests/graceful_cli.py &
|
||||
GCLI=$!
|
||||
|
||||
sleep 1
|
||||
|
||||
# graceful restart server: send SIGQUIT to old process and start a new one
|
||||
kill -s SIGQUIT $SERVER
|
||||
$PYTHON shadowsocks/server.py -c tests/graceful.json --forbidden-ip "" &
|
||||
NEWSERVER=$!
|
||||
|
||||
sleep 1
|
||||
|
||||
# check old server
|
||||
ps x | grep -v grep | grep $SERVER
|
||||
OLD_SERVER_RUNNING1=$?
|
||||
# old server should not quit at this moment
|
||||
echo old server running: $OLD_SERVER_RUNNING1
|
||||
|
||||
sleep 1
|
||||
|
||||
# close connections on old server
|
||||
kill -s SIGINT $GCLI
|
||||
kill -s SIGKILL $GSERVER
|
||||
kill -s SIGINT $LOCAL
|
||||
|
||||
sleep 11
|
||||
|
||||
# check old server
|
||||
ps x | grep -v grep | grep $SERVER
|
||||
OLD_SERVER_RUNNING2=$?
|
||||
# old server should quit at this moment
|
||||
echo old server running: $OLD_SERVER_RUNNING2
|
||||
|
||||
# new server is expected running
|
||||
kill -s SIGINT $NEWSERVER || exit 1
|
||||
|
||||
if [ $OLD_SERVER_RUNNING1 -ne 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $OLD_SERVER_RUNNING2 -ne 1 ]; then
|
||||
kill -s SIGINT $SERVER
|
||||
sleep 1
|
||||
exit 1
|
||||
fi
|
Reference in New Issue
Block a user