Commit c44dc05b authored by Philip Carns's avatar Philip Carns

automated test for client/server

parent af604096
check_PROGRAMS += \
examples/sleep
examples/sleep \
examples/server \
examples/client
TESTS += \
tests/sleep.sh
tests/sleep.sh \
tests/basic.sh
EXTRA_DIST += \
tests/sleep.sh
tests/sleep.sh \
tests/basic.sh
#!/bin/bash -x
if [ -z $srcdir ]; then
echo srcdir variable not set.
exit 1
fi
source $srcdir/tests/test-util.sh
# start 1 server with 2 second wait, 20s timeout
test_start_servers 1 2 20
sleep 1
#####################
# run client test, which will also shut down server when done
run_to 10 examples/client $svr1 &> /dev/null
if [ $? -ne 0 ]; then
wait
exit 1
fi
#####################
wait
echo cleaning up $TMPBASE
rm -rf $TMPBASE
exit 0
#
# General test script utilities
#
function run_to ()
{
maxtime=${1}s
shift
timeout --signal=9 $maxtime "$@"
}
function test_start_servers ()
{
nservers=${1:-4}
startwait=${2:-15}
maxtime=${3:-120}s
repfactor=${4:-0}
pid=$$
startport=3344
endport=`expr 3344 + $nservers - 1`
# start daemons
for i in `seq $startport $endport`
do
timeout --signal=9 ${maxtime} examples/server tcp://localhost:$i single &
if [ $? -ne 0 ]; then
# TODO: this doesn't actually work; can't check return code of
# something executing in background. We have to rely on the
# return codes of the actual client side tests to tell if
# everything started properly
exit 1
fi
done
# wait for servers to start
sleep ${startwait}
svr1="tcp://localhost:$startport"
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment