95ccf68ff8a6260987e93199296c3930a6ed028a
[p2p-testing-infrastructure.git] / Utils / test-socket-signal / test / local_run_kill
1 #!/bin/bash
2
3 if test $# -ne 7; then
4         echo "Usage: $0 client_type listen_port buffer_size frequency remote_ip remote_port remote_buffer_size" 1>&2
5         exit 1
6 fi
7
8 source ./config
9
10 client_type=$1
11 listen_port=$2
12 buffer_size=$3
13 frequency=$4
14 remote_ip=$5
15 remote_port=$6
16 remote_buffer_size=$7
17
18 log_file_leader=$BASE_LOG_PATH/socket-signal-suspend-leader.log
19 log_file_follower=$BASE_LOG_PATH/socket-signal-suspend-follower.log
20
21 client_pid=0
22
23 run_client()
24 {
25         if test "$client_type" == "leader"; then
26                 $PEER_EXEC_PATH -l -p $listen_port -b $buffer_size -f $frequency -e $remote_buffer_size $remote_ip $remote_port >> $log_file_leader 2>&1 &
27                 client_pid=$!
28         else
29                 $PEER_EXEC_PATH -p $listen_port -b $buffer_size -f $frequency -e $remote_buffer_size $remote_ip $remote_port >> $log_file_follower 2>&1 &
30                 client_pid=$!
31         fi
32 }
33
34 do_action_phase1()
35 {
36         timeout="$1"
37         if test "$client_type" == "leader"; then
38                 kill -KILL "$client_pid"
39                 sleep "$timeout"
40                 $PEER_EXEC_PATH -p $listen_port -b $buffer_size -f $frequency -e $remote_buffer_size $remote_ip $remote_port >> $log_file_leader 2>&1 &
41         else
42                 sleep "$(($timeout+5))"
43         fi
44 }
45
46 do_action_phase2()
47 {
48         timeout="$1"
49         if test "$client_type" == "leader"; then
50                 sleep "$(($timeout+5))"
51         else
52                 kill -KILL "$client_pid"
53                 sleep "$timeout"
54                 $PEER_EXEC_PATH -p $listen_port -b $buffer_size -f $frequency -e $remote_buffer_size $remote_ip $remote_port >> $log_file_follower 2>&1 &
55         fi
56 }
57
58 # clean log files
59 > $log_file_leader
60 > $log_file_follower
61
62 run_client
63
64 timeout=10
65 for i in {1..10}; do
66         sleep 60
67         do_action_phase1 $timeout
68         # geometric growth
69         timeout=$(($timeout * 2))
70 done
71
72 timeout=10
73 for i in {1..10}; do
74         sleep 60
75         do_action_phase2 $timeout
76         # geometric growth
77         timeout=$(($timeout * 2))
78 done