[BACK]Return to stresstest_create.sh CVS log [TXT][DIR] Up to [contributed] / dgamelaunch-openbsd

Annotation of dgamelaunch-openbsd/stresstest_create.sh, Revision 1.1

1.1     ! rubenllo    1: #!/bin/sh
        !             2: # stress-test script for creation of new accounts
        !             3: # current directory must contain the dgamelaunch to be used
        !             4: # this thing eats pseudo-terminals like hell!
        !             5:
        !             6: # Be sure to change these variables
        !             7: conffile="test2.conf"
        !             8: chrootdir="chroot-2"
        !             9: hackdir="/usr/local/lib/nethack"
        !            10: nameprefix="testcreat"
        !            11: jailuser="dgl"
        !            12: jailgroup="dgl"
        !            13: max=40
        !            14:
        !            15: # clean up previous cruft
        !            16: #rm -f "$chrootdir"/dgldir/inprogress/*
        !            17: #rm -f "$chrootdir$hackdir"/save/*[0-9]test[0-9]*
        !            18:
        !            19: echo -n "Starting processes:"
        !            20: export conffile i nameprefix delay1 delay2 email
        !            21: i=1
        !            22: pidlist=''
        !            23: while [ $i -le $max ]; do
        !            24:        email="$nameprefix$i@nowhere.nowhere"
        !            25:        case "$i" in
        !            26:        *[125]) delay1=0.1 delay2=0.1 ;;
        !            27:        *[368]) delay1=0.1 delay2=0.1 ;;
        !            28:        *[470]) delay1=0.1 delay2=0.1 ;;
        !            29:        *9) delay1=0.1 delay2=0.1 email='' ;;
        !            30:        esac
        !            31:        xterm -e sh -c '{ sleep 1; echo "r$nameprefix$i"; echo aa; echo aa; sleep $delay1; echo "$email"; sleep $delay2; echo -n py i; cat; } | { ./dgamelaunch -f "$conffile"; echo $?; } '&
        !            32:        echo -n " $!"
        !            33:        pidlist="$pidlist $!"
        !            34:        [ $i = 5 ] && sleep 0.1
        !            35:        [ $i = 15 ] && sleep 0.3
        !            36:        [ $i = 25 ] && sleep 1
        !            37:        [ $i = 31 ] && sleep 4
        !            38:        i=$(($i+1))
        !            39: done
        !            40: echo
        !            41: sleep 10
        !            42: nums=$(sed -n -e "s/^$nameprefix\([0-9]*\):.*:.*:.*/\1/p" $chrootdir/dgl-login |
        !            43:        sort -n | xargs)
        !            44: allnums=$(jot $max | grep -v 9\$ | xargs)
        !            45: if [ "$nums" = "$allnums" ]; then
        !            46:        echo "Complete list"
        !            47:        rc=0
        !            48: else
        !            49:        echo "ERROR: Incomplete list!"
        !            50:        echo "$nums"
        !            51:        rc=1
        !            52: fi
        !            53: sed -e "/^$nameprefix\([0-9]*\):.*:.*:.*/d" $chrootdir/dgl-login > $chrootdir/dgl-login.new
        !            54: mv $chrootdir/dgl-login.new $chrootdir/dgl-login
        !            55: chown $jailuser:$jailgroup $chrootdir/dgl-login
        !            56: echo -n "Press return to remove all xterms: "
        !            57: read x
        !            58: kill $pidlist 2>/dev/null
        !            59: exit $rc

CVSweb