]> git.ipfire.org Git - thirdparty/systemd.git/blob - test/units/testsuite-53.sh
timer: Adjust calendar timers based on monotonic timer instead of realtime
[thirdparty/systemd.git] / test / units / testsuite-53.sh
1 #!/usr/bin/env bash
2 set -ex
3 set -o pipefail
4
5 >/failed
6
7 # Reset host date to current time, 3 days in the past.
8 date -s "-3 days"
9
10 # Run a timer for every 15 minutes.
11 systemd-run --unit test-timer --on-calendar "*:0/15:0" true
12
13 next_elapsed=$(systemctl show test-timer.timer -p NextElapseUSecRealtime --value)
14 next_elapsed=$(date -d "${next_elapsed}" +%s)
15 now=$(date +%s)
16 time_delta=$((next_elapsed - now))
17
18 # Check that the timer will elapse in less than 20 minutes.
19 ((0 < time_delta && time_delta < 1200)) || {
20 echo 'Timer elapse outside of the expected 20 minute window.'
21 echo " next_elapsed=${next_elapsed}"
22 echo " now=${now}"
23 echo " time_delta=${time_delta}"
24 echo ''
25 } >>/failed
26
27 if test ! -s /failed ; then
28 rm -f /failed
29 touch /testok
30 fi