diff options
Diffstat (limited to 'stress-clients.sh')
-rwxr-xr-x | stress-clients.sh | 126 |
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 + |