This commit is contained in:
Robert Morris 2022-01-15 06:07:17 -05:00
parent b0a87bd25d
commit ad9f26ced0

View File

@ -19,6 +19,25 @@ then
fi fi
fi fi
TIMEOUT=timeout
if timeout 2s sleep 1 > /dev/null 2>&1
then
:
else
if gtimeout 2s sleep 1 > /dev/null 2>&1
then
TIMEOUT=gtimeout
else
# no timeout command
TIMEOUT=
echo '*** Cannot find timeout command; proceeding anyway.'
fi
fi
if [ "$TIMEOUT" != "" ]
then
TIMEOUT+=" -k 2s 180s "
fi
# run the test in a fresh sub-directory. # run the test in a fresh sub-directory.
rm -rf mr-tmp rm -rf mr-tmp
mkdir mr-tmp || exit 1 mkdir mr-tmp || exit 1
@ -52,16 +71,16 @@ rm -f mr-out*
echo '***' Starting wc test. echo '***' Starting wc test.
timeout -k 2s 180s ../mrcoordinator ../pg*txt & $TIMEOUT ../mrcoordinator ../pg*txt &
pid=$! pid=$!
# give the coordinator time to create the sockets. # give the coordinator time to create the sockets.
sleep 1 sleep 1
# start multiple workers. # start multiple workers.
timeout -k 2s 180s ../mrworker ../../mrapps/wc.so & $TIMEOUT ../mrworker ../../mrapps/wc.so &
timeout -k 2s 180s ../mrworker ../../mrapps/wc.so & $TIMEOUT ../mrworker ../../mrapps/wc.so &
timeout -k 2s 180s ../mrworker ../../mrapps/wc.so & $TIMEOUT ../mrworker ../../mrapps/wc.so &
# wait for the coordinator to exit. # wait for the coordinator to exit.
wait $pid wait $pid
@ -92,12 +111,12 @@ rm -f mr-out*
echo '***' Starting indexer test. echo '***' Starting indexer test.
timeout -k 2s 180s ../mrcoordinator ../pg*txt & $TIMEOUT ../mrcoordinator ../pg*txt &
sleep 1 sleep 1
# start multiple workers # start multiple workers
timeout -k 2s 180s ../mrworker ../../mrapps/indexer.so & $TIMEOUT ../mrworker ../../mrapps/indexer.so &
timeout -k 2s 180s ../mrworker ../../mrapps/indexer.so $TIMEOUT ../mrworker ../../mrapps/indexer.so
sort mr-out* | grep . > mr-indexer-all sort mr-out* | grep . > mr-indexer-all
if cmp mr-indexer-all mr-correct-indexer.txt if cmp mr-indexer-all mr-correct-indexer.txt
@ -116,11 +135,11 @@ echo '***' Starting map parallelism test.
rm -f mr-* rm -f mr-*
timeout -k 2s 180s ../mrcoordinator ../pg*txt & $TIMEOUT ../mrcoordinator ../pg*txt &
sleep 1 sleep 1
timeout -k 2s 180s ../mrworker ../../mrapps/mtiming.so & $TIMEOUT ../mrworker ../../mrapps/mtiming.so &
timeout -k 2s 180s ../mrworker ../../mrapps/mtiming.so $TIMEOUT ../mrworker ../../mrapps/mtiming.so
NT=`cat mr-out* | grep '^times-' | wc -l | sed 's/ //g'` NT=`cat mr-out* | grep '^times-' | wc -l | sed 's/ //g'`
if [ "$NT" != "2" ] if [ "$NT" != "2" ]
@ -147,11 +166,11 @@ echo '***' Starting reduce parallelism test.
rm -f mr-* rm -f mr-*
timeout -k 2s 180s ../mrcoordinator ../pg*txt & $TIMEOUT ../mrcoordinator ../pg*txt &
sleep 1 sleep 1
timeout -k 2s 180s ../mrworker ../../mrapps/rtiming.so & $TIMEOUT ../mrworker ../../mrapps/rtiming.so &
timeout -k 2s 180s ../mrworker ../../mrapps/rtiming.so $TIMEOUT ../mrworker ../../mrapps/rtiming.so
NT=`cat mr-out* | grep '^[a-z] 2' | wc -l | sed 's/ //g'` NT=`cat mr-out* | grep '^[a-z] 2' | wc -l | sed 's/ //g'`
if [ "$NT" -lt "2" ] if [ "$NT" -lt "2" ]
@ -170,13 +189,13 @@ echo '***' Starting job count test.
rm -f mr-* rm -f mr-*
timeout -k 2s 180s ../mrcoordinator ../pg*txt & $TIMEOUT ../mrcoordinator ../pg*txt &
sleep 1 sleep 1
timeout -k 2s 180s ../mrworker ../../mrapps/jobcount.so & $TIMEOUT ../mrworker ../../mrapps/jobcount.so &
timeout -k 2s 180s ../mrworker ../../mrapps/jobcount.so $TIMEOUT ../mrworker ../../mrapps/jobcount.so
timeout -k 2s 180s ../mrworker ../../mrapps/jobcount.so & $TIMEOUT ../mrworker ../../mrapps/jobcount.so &
timeout -k 2s 180s ../mrworker ../../mrapps/jobcount.so $TIMEOUT ../mrworker ../../mrapps/jobcount.so
NT=`cat mr-out* | awk '{print $2}'` NT=`cat mr-out* | awk '{print $2}'`
if [ "$NT" -ne "8" ] if [ "$NT" -ne "8" ]
@ -200,15 +219,15 @@ echo '***' Starting early exit test.
DF=anydone$$ DF=anydone$$
rm -f $DF rm -f $DF
(timeout -k 2s 180s ../mrcoordinator ../pg*txt ; touch $DF) & ($TIMEOUT ../mrcoordinator ../pg*txt ; touch $DF) &
# give the coordinator time to create the sockets. # give the coordinator time to create the sockets.
sleep 1 sleep 1
# start multiple workers. # start multiple workers.
(timeout -k 2s 180s ../mrworker ../../mrapps/early_exit.so ; touch $DF) & ($TIMEOUT ../mrworker ../../mrapps/early_exit.so ; touch $DF) &
(timeout -k 2s 180s ../mrworker ../../mrapps/early_exit.so ; touch $DF) & ($TIMEOUT ../mrworker ../../mrapps/early_exit.so ; touch $DF) &
(timeout -k 2s 180s ../mrworker ../../mrapps/early_exit.so ; touch $DF) & ($TIMEOUT ../mrworker ../../mrapps/early_exit.so ; touch $DF) &
# wait for any of the coord or workers to exit. # wait for any of the coord or workers to exit.
# `jobs` ensures that any completed old processes from other tests # `jobs` ensures that any completed old processes from other tests
@ -257,30 +276,30 @@ sort mr-out-0 > mr-correct-crash.txt
rm -f mr-out* rm -f mr-out*
rm -f mr-done rm -f mr-done
(timeout -k 2s 180s ../mrcoordinator ../pg*txt ; touch mr-done ) & ($TIMEOUT ../mrcoordinator ../pg*txt ; touch mr-done ) &
sleep 1 sleep 1
# start multiple workers # start multiple workers
timeout -k 2s 180s ../mrworker ../../mrapps/crash.so & $TIMEOUT ../mrworker ../../mrapps/crash.so &
# mimic rpc.go's coordinatorSock() # mimic rpc.go's coordinatorSock()
SOCKNAME=/var/tmp/824-mr-`id -u` SOCKNAME=/var/tmp/824-mr-`id -u`
( while [ -e $SOCKNAME -a ! -f mr-done ] ( while [ -e $SOCKNAME -a ! -f mr-done ]
do do
timeout -k 2s 180s ../mrworker ../../mrapps/crash.so $TIMEOUT ../mrworker ../../mrapps/crash.so
sleep 1 sleep 1
done ) & done ) &
( while [ -e $SOCKNAME -a ! -f mr-done ] ( while [ -e $SOCKNAME -a ! -f mr-done ]
do do
timeout -k 2s 180s ../mrworker ../../mrapps/crash.so $TIMEOUT ../mrworker ../../mrapps/crash.so
sleep 1 sleep 1
done ) & done ) &
while [ -e $SOCKNAME -a ! -f mr-done ] while [ -e $SOCKNAME -a ! -f mr-done ]
do do
timeout -k 2s 180s ../mrworker ../../mrapps/crash.so $TIMEOUT ../mrworker ../../mrapps/crash.so
sleep 1 sleep 1
done done