]> arthur.barton.de Git - ngircd-alex.git/blobdiff - src/testsuite/stress-server.sh
tests for JOIN and various replies
[ngircd-alex.git] / src / testsuite / stress-server.sh
index 6a91d2ceecce22043abec9fabe285b00bc5d7b8f..0f85958e98c3acce91ebe67899fe319aea33f02b 100755 (executable)
@@ -9,7 +9,7 @@
 # (at your option) any later version.
 # Please read the file COPYING, README and AUTHORS for more information.
 #
-# $Id: stress-server.sh,v 1.9 2004/09/04 13:58:31 alex Exp $
+# $Id: stress-server.sh,v 1.16 2005/12/30 22:13:21 alex Exp $
 #
 
 # detect source directory
@@ -17,7 +17,7 @@
 
 # parse command line
 [ "$1" -gt 0 ] 2> /dev/null && CLIENTS="$1" || CLIENTS=5
-[ "$2" -gt 0 ] 2> /dev/null && LOOPS="$2" || LOOPS=1
+[ "$2" -gt 0 ] 2> /dev/null && MAX="$2" || MAX=-1
 
 # get our name
 name=`basename $0`
@@ -36,9 +36,10 @@ if [ $? -ne 0 ]; then
 fi
 
 # hello world! :-)
-[ $LOOPS -gt 1 ] \
-  && echo "      stressing server with $CLIENTS clients in $LOOPS loops (be patient!):" \
-  || echo "      stressing server with $CLIENTS clients (be patient!):"
+echo "      stressing server with $CLIENTS clients (be patient!):"
+
+# read in functions
+. ${srcdir}/functions.inc
 
 # create scripts for expect(1)
 no=0
@@ -49,42 +50,40 @@ while [ ${no} -lt $CLIENTS ]; do
   no=`expr ${no} + 1`
 done
 
-# main loop ...
-loop=0
-while [ ${loop} -lt $LOOPS ]; do
-  no=0
-  loop=`expr ${loop} + 1`
-  while [ ${no} -lt $CLIENTS ]; do
-    expect tests/${no}.e > logs/stress-${no}.log 2> /dev/null &
-    no=`expr ${no} + 1`
-  done
-  if [ $LOOPS -gt 1 ]; then
-    echo "      loop $loop/$LOOPS: started $no clients."
-    echo -n "      loop $loop/$LOOPS: waiting for clients to complete: "
-  else
-    echo "      started $no clients."
-    echo -n "      waiting for clients to complete: "
-  fi
-
-  res=3
-  touch logs/check-idle.log
-  while true; do
-    expect ${srcdir}/check-idle.e >> logs/check-idle.log; res=$?
-    echo "====================" >> logs/check-idle.log
-    [ $res -ne 99 ] && break
-
-    # there are still clients connected. Wait ...
-    sleep 1
-    echo -n "."
-  done
-
-  if [ $res -ne 0 ]; then
-    echo " ERROR!"
-    break
-  fi
-  echo " done."
+# run first script and check if it succeeds
+echo_n "      checking stress script ..."
+expect tests/0.e > logs/stress-0.log 2> /dev/null
+if [ $? -ne 0 ]; then
+  echo " failure!"
+  exit 1
+else
+  echo " ok."
+fi
+
+no=0
+while [ ${no} -lt $CLIENTS ]; do
+  expect tests/${no}.e > logs/stress-${no}.log 2> /dev/null &
+
+  no=`expr ${no} + 1`
+  echo "      started client $no/$CLIENTS."
+
+  [ $MAX -gt 0 ] && $srcdir/wait-tests.sh $MAX
+done
+
+echo_n "      waiting for clients to complete: ."
+touch logs/check-idle.log
+while true; do
+  expect ${srcdir}/check-idle.e >> logs/check-idle.log; res=$?
+  echo "====================" >> logs/check-idle.log
+  [ $res -ne 99 ] && break
+
+  # there are still clients connected. Wait ...
+  sleep 3
+  echo_n "."
 done
 
+[ $res -eq 0 ] && echo " ok." || echo " failure!"
+
 exit $res
 
 # -eof-