chiark / gitweb /
39847ec3e3e5275f00b7462c3f8ae6e1ad1f0c48
[elogind.git] / test / TEST-16-EXTEND-TIMEOUT / extend_timeout_test_service.sh
1 #!/bin/bash
2 set -x
3 set -e
4 set -o pipefail
5
6 # sleep interval (seconds)
7 sleep_interval=1
8 # extend_timeout_interval second(s)
9 extend_timeout_interval=1
10 # number of sleep_intervals before READY=1
11 start_intervals=10
12 # number of sleep_intervals before exiting
13 stop_intervals=10
14 # run intervals, number of sleep_intervals to run
15 run_intervals=7
16 # service name
17 SERVICE=unknown
18
19 while [ $# -gt 0 ];
20 do
21     eval ${1%=*}=${1#*=}
22     shift
23 done
24
25 # We convert to usec
26 extend_timeout_interval=$(( $extend_timeout_interval * 1000000 ))
27
28 trap "{ touch /${SERVICE}.terminated; exit 1; }"  SIGTERM SIGABRT
29
30 rm -f /${SERVICE}.*
31 touch /${SERVICE}.startfail
32
33 elogind-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
34 while [ $start_intervals -gt 0 ]
35 do
36     sleep $sleep_interval
37     start_intervals=$(( $start_intervals - 1 ))
38     elogind-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
39 done
40
41 elogind-notify --ready --status="Waiting for your request"
42
43 touch /${SERVICE}.runtimefail
44 rm /${SERVICE}.startfail
45
46 elogind-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
47 while [ $run_intervals -gt 0 ]
48 do
49     sleep $sleep_interval
50     run_intervals=$(( $run_intervals - 1 ))
51     elogind-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
52 done
53
54 elogind-notify STOPPING=1
55
56 touch /${SERVICE}.stopfail
57 rm /${SERVICE}.runtimefail
58
59 elogind-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
60 while [ $stop_intervals -gt 0 ]
61 do
62     sleep $sleep_interval
63     stop_intervals=$(( $stop_intervals - 1 ))
64     elogind-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
65 done
66
67 touch /${SERVICE}.success
68 rm /${SERVICE}.stopfail
69
70 exit 0