Fix a crash on disconnection
[src/app-framework-binder.git] / stress.sh
1 #!/bin/bash
2
3 ROOT=$(dirname $0)
4
5 AFB=$ROOT/build/src/afb-daemon
6 CLI=$ROOT/build/src/afb-client-demo
7 HELLO=$ROOT/build/bindings/samples/helloWorld.so
8 PORT=12345
9 TEST=$ROOT/test
10 TOKEN=knock-knock-knoc
11 OUT=$ROOT/stress-out
12
13 rm $OUT*
14
15 echo -n launch afb...
16 $AFB --session-max=100 --port=$PORT --rootdir=$ROOT --roothttp=$TEST --tracereq=all --token=$TOKEN --ldpaths=/tmp --binding=$HELLO --verbose --verbose --verbose > $OUT.0 2>&1 &
17 afbpid=$!
18 strace -tt -f -o $OUT-strace.0 -p $afbpid &
19 echo done
20
21 sleep 3
22
23 CMDS='
24 hello ping true
25 HELLO PING false
26 hello pIngNull true
27 hello PingBug true
28 hello PiNgJsOn {"well":"formed","json":[1,2,3,4.5,true,false,null,"oups"]}
29 hello subcall {"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}
30 hello subcall {"api":"hello","verb":"subcall","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
31 hello subcallsync {"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}
32 hello subcallsync {"api":"hello","verb":"subcall","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
33 hello subcall {"api":"hello","verb":"subcallsync","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
34 hello subcallsync {"api":"hello","verb":"subcallsync","args":{"api":"hello","verb":"pingjson","args":[{"key1":"value1"}]}}
35 hello eventadd {"tag":"ev1","name":"event-A"}
36 hello eventadd {"tag":"ev2","name":"event-B"}
37 hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
38 hello eventpush {"tag":"ev2","data":{"item":0}}
39 hello eventsub {"tag":"ev2"}
40 hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
41 hello eventpush {"tag":"ev2","data":{"item":0}}
42 hello eventsub {"tag":"ev1"}
43 hello subcall {"api":"hello","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"hello"]}}
44 hello subcall {"api":"hello","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}}
45 hello subcallsync {"api":"hello","verb":"eventpush","args":{"tag":"ev1","data":[1,2,"hello"]}}
46 hello subcallsync {"api":"hello","verb":"eventpush","args":{"tag":"ev2","data":{"item":0}}}
47 hello eventunsub {"tag":"ev2"}
48 hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
49 hello eventpush {"tag":"ev2","data":{"item":0}}
50 hello eventdel {"tag":"ev1"}
51 hello eventpush {"tag":"ev1","data":[1,2,"hello"]}
52 hello eventpush {"tag":"ev2","data":{"item":0}}
53 '
54
55 r() {
56         while :; do echo "$CMDS"; done | while read x; do echo $x; sleep 0.005; done | strace -tt -f -o $OUT-strace.$1 $CLI "localhost:$PORT/api?token=$TOKEN" > $OUT.$1 2>&1 &
57 }
58
59 echo -n launch clients...
60 r 1
61 r 2
62 r 3
63 r 4
64 r 5
65 r 7
66 r 8
67 r 9
68 r a
69 r b
70 r c
71 echo done
72
73 sleep 3
74
75 kill $afbpid
76