__no_system_clock_control() { if ! dpkg-vendor --derives-from Ubuntu; then sed -i '/^DAEMON_OPTS=/s/"\(.*\)"/"\1 -x"/' /etc/default/chrony mkdir -p /etc/systemd/system/chrony.service.d cat < /etc/systemd/system/chrony.service.d/override.conf [Unit] ConditionCapability= EOF systemctl daemon-reload fi } __test_fail() { printf 'FAIL\n' >&2 return 1 } __test_ok() { printf 'OK\n' return 0 } __test_skip() { [ -n "$1" ] && printf 'SKIP: (%s)\n' "$1" || printf 'SKIP\n' exit 77 } __reload_sources() { chronyc reload sources > /dev/null 2>&1 && __test_ok || __test_fail } __restart_chronyd() { systemctl --quiet restart chrony.service rc=$? sleep 3 return $rc } __check_sources() { chronyc sources | grep -q "$1" && __test_ok || __test_fail } __check_auth() { chronyc -c authdata | grep -q "$1" && __test_ok || __test_fail } # Ubuntu's default config is fully populated causing issues with the test # If any of those tests run on Ubuntu, clear some and restart the daemon # to pick this up before entering the tests. if grep -q "^pool.*ubuntu.pool.ntp.org" /etc/chrony/chrony.conf; then sudo sed -i -e '/^pool.*ubuntu.pool.ntp.org/d' /etc/chrony/chrony.conf __restart_chronyd fi