summaryrefslogtreecommitdiffstats
path: root/stress-clients.sh
diff options
context:
space:
mode:
Diffstat (limited to 'stress-clients.sh')
-rwxr-xr-xstress-clients.sh126
1 files changed, 78 insertions, 48 deletions
diff --git a/stress-clients.sh b/stress-clients.sh
index d2085e4a..440e5621 100755
--- a/stress-clients.sh
+++ b/stress-clients.sh
@@ -4,62 +4,92 @@ ROOT=$(dirname $0)
echo ROOT=$ROOT
AFB=$ROOT/build/src/afb-daemon
-CLI="$ROOT/build/src/afb-client-demo -e"
-HELLO=build/bindings/samples/helloWorld.so
+CLI="$ROOT/build/src/afb-client-demo -e -s"
PORT=12345
-TEST=test
TOKEN=knock-knock-knock
-OUT=$ROOT/stress-out-clients
-rm $OUT*
+count=10
+null=false
+eval set -- $(getopt -o c:n -l count:,null -- "$@") || exit
+while true
+do
+ case "$1" in
+ -c|--count)
+ if ! test "$2" -gt 0 2>/dev/null; then
+ echo "error: $2 is not a valid count" >&2
+ exit 1
+ fi
+ count="$2"
+ shift 2
+ ;;
+ -n|--null)
+ null=true
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ esac
+done
-CMDS=
-add() {
- CMDS="$CMDS
-$1"
-}
+OUT="$ROOT/stress-out-clients"
+echo rm $OUT.*
+rm $OUT.* 2> /dev/null
+
+if $null; then
+ OUT=/dev/null
+else
+ OUT="$OUT.%03d"
+fi
-add 'hello ping true'
-add 'HELLO PING false'
-add 'hello pIngNull true'
-#add 'hello PingBug true'
-add 'hello PiNgJsOn {"well":"formed","json":[1,2,3,4.5,true,false,null,"oups"]}'
-add 'hello subcall {"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}'
-add 'hello subcall {"api":"hello","verb":"subcall","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}'
-add 'hello subcallsync {"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}'
-add 'hello subcallsync {"api":"hello","verb":"subcall","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}'
-add 'hello subcall {"api":"hello","verb":"subcallsync","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}'
-add 'hello subcallsync {"api":"hello","verb":"subcallsync","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}'
-add 'hello eventadd {"tag":"ev1","name":"event-A"}'
-add 'hello eventadd {"tag":"ev2","name":"event-B"}'
-add 'hello eventpush {"tag":"ev1","data":[1,2,"hello"]}'
-add 'hello eventpush {"tag":"ev2","data":{"item":0}}'
-add 'hello eventsub {"tag":"ev2"}'
-add 'hello eventpush {"tag":"ev1","data":[1,2,"hello"]}'
-add 'hello eventpush {"tag":"ev2","data":{"item":0}}'
-add 'hello eventsub {"tag":"ev1"}'
-add 'hello subcall {"api":"hello","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"hello"]}}'
-add 'hello subcall {"api":"hello","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}}'
-add 'hello subcallsync {"api":"hello","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"hello"]}}'
-add 'hello subcallsync {"api":"hello","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}}'
-add 'hello eventunsub {"tag":"ev2"}'
-add 'hello eventpush {"tag":"ev1","data":[1,2,"hello"]}'
-add 'hello eventpush {"tag":"ev2","data":{"item":0}}'
-add 'hello eventdel {"tag":"ev1"}'
-add 'hello eventpush {"tag":"ev1","data":[1,2,"hello"]}'
-add 'hello eventpush {"tag":"ev2","data":{"item":0}}'
-add 'hello eventdel {"tag":"ev2"}'
+commands() {
+cat << EOC
+hello ping true
+HELLO PING false
+hello pIngNull true
+#hello PingBug true
+hello PiNgJsOn {"well":"formed","json":[1,2,3,4.5,true,false,null,"oups"]}
+hello subcall {"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}
+hello subcall {"api":"hello","verb":"subcall","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
+hello subcallsync {"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}
+hello subcallsync {"api":"hello","verb":"subcall","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
+hello subcall {"api":"hello","verb":"subcallsync","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
+hello subcallsync {"api":"hello","verb":"subcallsync","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
+hello eventadd {"tag":"ev1","name":"event-A"}
+hello eventadd {"tag":"ev2","name":"event-B"}
+hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
+hello eventpush {"tag":"ev2","data":{"item":0}}
+hello eventsub {"tag":"ev2"}
+hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
+hello eventpush {"tag":"ev2","data":{"item":0}}
+hello eventsub {"tag":"ev1"}
+hello subcall {"api":"hello","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"hello"]}}
+hello subcall {"api":"hello","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}}
+hello subcallsync {"api":"hello","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"hello"]}}
+hello subcallsync {"api":"hello","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}}
+hello eventunsub {"tag":"ev2"}
+hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
+hello eventpush {"tag":"ev2","data":{"item":0}}
+hello eventdel {"tag":"ev1"}
+hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
+hello eventpush {"tag":"ev2","data":{"item":0}}
+hello eventdel {"tag":"ev2"}
+EOC
+}
r() {
- while :; do echo "$CMDS"; done |
- while read x; do echo $x; sleep 0.001; done |
- $CLI "localhost:$PORT/api?token=$TOKEN" > $OUT.$1 2>&1 &
-# while read x; do echo $x; sleep 0.001; done |
-# strace -tt -f -o $OUT-strace.$1 $CLI "localhost:$PORT/api?token=$TOKEN" > $OUT.$1 2>&1 &
+ while :; do commands; done |
+ $CLI "localhost:$PORT/api?token=$TOKEN" > "$1" 2>&1 &
}
-echo -n launch clients...
-for x in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do r $x; done
+echo launch clients...
+i=1
+while test $i -le $count; do
+ echo " + launch clients $i"
+ r $(printf "$OUT" $i)
+ i=$(expr $i + 1)
+done
echo done
-
wait
+