| #!/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 |