summaryrefslogtreecommitdiffstats
path: root/test/testsuite-16.units/extend-timeout.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/testsuite-16.units/extend-timeout.sh')
-rwxr-xr-xtest/testsuite-16.units/extend-timeout.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/testsuite-16.units/extend-timeout.sh b/test/testsuite-16.units/extend-timeout.sh
new file mode 100755
index 0000000..ed1af8a
--- /dev/null
+++ b/test/testsuite-16.units/extend-timeout.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env bash
+set -x
+set -e
+set -o pipefail
+
+# sleep interval (seconds)
+: ${sleep_interval:=1}
+# extend_timeout_interval second(s)
+: ${extend_timeout_interval:=1}
+# number of sleep_intervals before READY=1
+: ${start_intervals:=10}
+# number of sleep_intervals before exiting
+: ${stop_intervals:=10}
+# run intervals, number of sleep_intervals to run
+: ${run_intervals:=7}
+
+# We convert to usec
+extend_timeout_interval=$(( $extend_timeout_interval * 1000000 ))
+
+trap "{ touch /${SERVICE}.terminated; exit 1; }" SIGTERM SIGABRT
+
+rm -f /${SERVICE}.*
+touch /${SERVICE}.startfail
+
+systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+while [ $start_intervals -gt 0 ]
+do
+ sleep $sleep_interval
+ start_intervals=$(( $start_intervals - 1 ))
+ systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+done
+
+systemd-notify --ready --status="Waiting for your request"
+
+touch /${SERVICE}.runtimefail
+rm /${SERVICE}.startfail
+
+systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+while [ $run_intervals -gt 0 ]
+do
+ sleep $sleep_interval
+ run_intervals=$(( $run_intervals - 1 ))
+ systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+done
+
+systemd-notify STOPPING=1
+
+touch /${SERVICE}.stopfail
+rm /${SERVICE}.runtimefail
+
+systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+while [ $stop_intervals -gt 0 ]
+do
+ sleep $sleep_interval
+ stop_intervals=$(( $stop_intervals - 1 ))
+ systemd-notify EXTEND_TIMEOUT_USEC=$extend_timeout_interval
+done
+
+touch /${SERVICE}.success
+rm /${SERVICE}.stopfail
+
+exit 0