#!/usr/bin/env bash . ./test.common test_start "leap second" check_config_h 'FEAT_REFCLOCK 1' || test_skip export CLKNETSIM_START_DATE=$(TZ=UTC date -d 'Dec 30 2008 0:00:00' +'%s') leap=$[2 * 24 * 3600] limit=$[4 * 24 * 3600] client_start=$[2 * 3600] server_conf="refclock SHM 0 dpoll 10 poll 10 leapsectz right/UTC" refclock_jitter=1e-9 refclock_offset="(* -1.0 (equal 0.1 (max (sum 1.0) $leap) $leap))" for leapmode in system step slew; do client_conf="leapsecmode $leapmode" if [ $leapmode = slew ]; then max_sync_time=$[$leap + 12] else max_sync_time=$[$leap] fi run_test || test_fail check_chronyd_exit || test_fail check_source_selection || test_fail check_packet_interval || test_fail check_sync || test_fail done client_server_options="trust" client_conf="refclock SHM 0 dpoll 10 poll 10 delay 1e-3" run_test || test_fail check_chronyd_exit || test_fail check_source_selection || test_fail check_packet_interval || test_fail check_sync || test_fail client_server_options="" client_conf="leapsecmode system" min_sync_time=230000 max_sync_time=240000 for smoothmode in "" "leaponly"; do server_conf="refclock SHM 0 dpoll 10 poll 10 leapsectz right/UTC leapsecmode slew smoothtime 400 0.001 $smoothmode" run_test || test_fail check_chronyd_exit || test_fail check_source_selection || test_fail check_packet_interval || test_fail check_sync || test_fail done test_pass