[BACK]Return to stress-server.sh CVS log [TXT][DIR] Up to [local] / ircnowd / src / testsuite

Annotation of ircnowd/src/testsuite/stress-server.sh, Revision 1.1

1.1     ! tomglok     1: #!/bin/sh
        !             2: #
        !             3: # ngIRCd Test Suite
        !             4: # Copyright (c)2001-2012 Alexander Barton (alex@barton.de) and Contributors.
        !             5: #
        !             6: # This program is free software; you can redistribute it and/or modify
        !             7: # it under the terms of the GNU General Public License as published by
        !             8: # the Free Software Foundation; either version 2 of the License, or
        !             9: # (at your option) any later version.
        !            10: # Please read the file COPYING, README and AUTHORS for more information.
        !            11: #
        !            12:
        !            13: # detect source directory
        !            14: [ -z "$srcdir" ] && srcdir=`dirname $0`
        !            15:
        !            16: # parse command line
        !            17: [ "$1" -gt 0 ] 2> /dev/null && CLIENTS="$1" || CLIENTS=5
        !            18: [ "$2" -gt 0 ] 2> /dev/null && MAX="$2" || MAX=-1
        !            19:
        !            20: # get our name
        !            21: name=`basename $0`
        !            22:
        !            23: # create directories
        !            24: [ -d logs ] || mkdir logs
        !            25: [ -d tests ] || mkdir tests
        !            26:
        !            27: # test for required external tools
        !            28: type expect > /dev/null 2>&1
        !            29: if [ $? -ne 0 ]; then
        !            30:   echo "${name}: \"expect\" not found.";  exit 77
        !            31: fi
        !            32: type telnet > /dev/null 2>&1
        !            33: if [ $? -ne 0 ]; then
        !            34:   echo "${name}: \"telnet\" not found.";  exit 77
        !            35: fi
        !            36:
        !            37: # hello world! :-)
        !            38: echo "stressing server with $CLIENTS clients (be patient!):"
        !            39:
        !            40: # read in functions
        !            41: . ${srcdir}/functions.inc
        !            42:
        !            43: # create scripts for expect(1)
        !            44: no=0
        !            45: while [ ${no} -lt $CLIENTS ]; do
        !            46:   cat ${srcdir}/stress-A.e > tests/${no}.e
        !            47:   echo "send \"nick test${no}\\r\"" >> tests/${no}.e
        !            48:   cat ${srcdir}/stress-B.e >> tests/${no}.e
        !            49:   no=`expr ${no} + 1`
        !            50: done
        !            51:
        !            52: # run first script and check if it succeeds
        !            53: echo_n "checking stress script ..."
        !            54: expect tests/0.e > logs/stress-0.log 2> /dev/null
        !            55: if [ $? -ne 0 ]; then
        !            56:   echo " failure!"
        !            57:   exit 1
        !            58: else
        !            59:   echo " ok."
        !            60: fi
        !            61:
        !            62: no=0
        !            63: while [ ${no} -lt $CLIENTS ]; do
        !            64:   expect tests/${no}.e > logs/stress-${no}.log 2> /dev/null &
        !            65:
        !            66:   no=`expr ${no} + 1`
        !            67:   echo "started client $no/$CLIENTS."
        !            68:
        !            69:   [ $MAX -gt 0 ] && $srcdir/wait-tests.sh $MAX
        !            70: done
        !            71:
        !            72: echo_n "waiting for clients to complete: ."
        !            73: touch logs/check-idle.log
        !            74: while true; do
        !            75:   expect ${srcdir}/check-idle.e >> logs/check-idle.log; res=$?
        !            76:   echo "====================" >> logs/check-idle.log
        !            77:   [ $res -ne 99 ] && break
        !            78:
        !            79:   # there are still clients connected. Wait ...
        !            80:   sleep 3
        !            81:   echo_n "."
        !            82: done
        !            83:
        !            84: [ $res -eq 0 ] && echo " ok." || echo " failure!"
        !            85:
        !            86: exit $res
        !            87:
        !            88: # -eof-

CVSweb