test: improve 113-leapsecond and 124-tai tests
Use leapseclist instead of leapsectz and test also negative leap seconds. Add a test for leapsectz when the date command indicates right/UTC is available on the system and mktime() works as expected. Check TAI offset in the server's log.
This commit is contained in:
parent
637b77d1bd
commit
6cf9fe2f16
2 changed files with 79 additions and 39 deletions
|
@ -8,31 +8,47 @@ check_config_h 'FEAT_REFCLOCK 1' || test_skip
|
||||||
|
|
||||||
export CLKNETSIM_START_DATE=$(TZ=UTC date -d 'Dec 30 2008 0:00:00' +'%s')
|
export CLKNETSIM_START_DATE=$(TZ=UTC date -d 'Dec 30 2008 0:00:00' +'%s')
|
||||||
|
|
||||||
leap=$[2 * 24 * 3600]
|
|
||||||
limit=$[4 * 24 * 3600]
|
limit=$[4 * 24 * 3600]
|
||||||
client_start=$[2 * 3600]
|
client_start=$[2 * 3600]
|
||||||
server_conf="refclock SHM 0 dpoll 10 poll 10
|
|
||||||
leapsectz right/UTC"
|
|
||||||
refclock_jitter=1e-9
|
refclock_jitter=1e-9
|
||||||
refclock_offset="(* -1.0 (equal 0.1 (max (sum 1.0) $leap) $leap))"
|
|
||||||
|
for dir in "+1" "-1"; do
|
||||||
|
leap=$[2 * 24 * 3600 + 1 + $dir]
|
||||||
|
server_conf="refclock SHM 0 dpoll 10 poll 10
|
||||||
|
leapseclist tmp/leap.list"
|
||||||
|
refclock_offset="(* $dir (equal 0.1 (max (sum 1.0) $leap) $leap))"
|
||||||
|
|
||||||
|
cat > tmp/leap.list <<-EOF
|
||||||
|
#$ 3676924800
|
||||||
|
#@ 3928521600
|
||||||
|
3345062400 33 # 1 Jan 2006
|
||||||
|
3439756800 $[33 - $dir] # 1 Jan 2009 $(
|
||||||
|
[ "$dir" = "+1" ] && echo -e "\n3471292800 33\n3502828800 34")
|
||||||
|
3550089600 35 # 1 Jul 2012
|
||||||
|
EOF
|
||||||
|
|
||||||
for leapmode in system step slew; do
|
for leapmode in system step slew; do
|
||||||
client_conf="leapsecmode $leapmode"
|
client_conf="leapsecmode $leapmode"
|
||||||
if [ $leapmode = slew ]; then
|
if [ $leapmode = slew ]; then
|
||||||
max_sync_time=$[$leap + 12]
|
max_sync_time=$[2 * 24 * 3600 + 13]
|
||||||
else
|
else
|
||||||
max_sync_time=$[$leap]
|
max_sync_time=$[2 * 24 * 3600 + 1]
|
||||||
fi
|
fi
|
||||||
|
min_sync_time=$[$max_sync_time - 2]
|
||||||
|
|
||||||
run_test || test_fail
|
run_test || test_fail
|
||||||
check_chronyd_exit || test_fail
|
check_chronyd_exit || test_fail
|
||||||
check_source_selection || test_fail
|
check_source_selection || test_fail
|
||||||
check_packet_interval || test_fail
|
check_packet_interval || test_fail
|
||||||
check_sync || test_fail
|
check_sync || test_fail
|
||||||
|
check_file_messages "System clock TAI offset set to" 1 1 log.1 || test_fail
|
||||||
|
check_file_messages "System clock TAI offset set to 33" 1 1 log.1 || test_fail
|
||||||
done
|
done
|
||||||
|
|
||||||
client_server_options="trust"
|
client_server_options="trust"
|
||||||
client_conf="refclock SHM 0 dpoll 10 poll 10 delay 1e-3"
|
client_conf="refclock SHM 0 dpoll 10 poll 10 delay 1e-3"
|
||||||
|
min_sync_time=$[$leap - 2]
|
||||||
|
max_sync_time=$[$leap]
|
||||||
|
|
||||||
run_test || test_fail
|
run_test || test_fail
|
||||||
check_chronyd_exit || test_fail
|
check_chronyd_exit || test_fail
|
||||||
|
@ -47,7 +63,7 @@ max_sync_time=240000
|
||||||
|
|
||||||
for smoothmode in "" "leaponly"; do
|
for smoothmode in "" "leaponly"; do
|
||||||
server_conf="refclock SHM 0 dpoll 10 poll 10
|
server_conf="refclock SHM 0 dpoll 10 poll 10
|
||||||
leapsectz right/UTC
|
leapseclist tmp/leap.list
|
||||||
leapsecmode slew
|
leapsecmode slew
|
||||||
smoothtime 400 0.001 $smoothmode"
|
smoothtime 400 0.001 $smoothmode"
|
||||||
|
|
||||||
|
@ -57,5 +73,21 @@ for smoothmode in "" "leaponly"; do
|
||||||
check_packet_interval || test_fail
|
check_packet_interval || test_fail
|
||||||
check_sync || test_fail
|
check_sync || test_fail
|
||||||
done
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
if TZ=right/UTC date -d 'Dec 31 2008 23:59:60' 2> /dev/null | grep :60; then
|
||||||
|
server_conf="refclock SHM 0 dpoll 10 poll 10
|
||||||
|
leapsectz right/UTC"
|
||||||
|
refclock_offset="(* -1 (equal 0.1 (max (sum 1.0) $leap) $leap))"
|
||||||
|
client_conf="leapsecmode system"
|
||||||
|
min_sync_time=$[$leap - 2]
|
||||||
|
max_sync_time=$[$leap]
|
||||||
|
|
||||||
|
run_test || test_fail
|
||||||
|
check_chronyd_exit || test_fail
|
||||||
|
check_source_selection || test_fail
|
||||||
|
check_packet_interval || test_fail
|
||||||
|
check_sync || test_fail
|
||||||
|
fi
|
||||||
|
|
||||||
test_pass
|
test_pass
|
||||||
|
|
|
@ -18,10 +18,18 @@ servers=0
|
||||||
refclock_offset="(+ -34 (equal 0.1 (max (sum 1.0) $leap) $leap))"
|
refclock_offset="(+ -34 (equal 0.1 (max (sum 1.0) $leap) $leap))"
|
||||||
client_conf="
|
client_conf="
|
||||||
refclock SHM 0 dpoll 0 poll 0 tai
|
refclock SHM 0 dpoll 0 poll 0 tai
|
||||||
leapsectz right/UTC
|
leapseclist tmp/leap.list
|
||||||
leapsecmode ignore
|
leapsecmode ignore
|
||||||
maxchange 1e-3 1 0"
|
maxchange 1e-3 1 0"
|
||||||
|
|
||||||
|
cat > tmp/leap.list <<-EOF
|
||||||
|
#$ 3676924800
|
||||||
|
#@ 3928521600
|
||||||
|
3345062400 33 # 1 Jan 2006
|
||||||
|
3439756800 34 # 1 Jan 2009
|
||||||
|
3550089600 35 # 1 Jul 2012
|
||||||
|
EOF
|
||||||
|
|
||||||
run_test || test_fail
|
run_test || test_fail
|
||||||
check_chronyd_exit || test_fail
|
check_chronyd_exit || test_fail
|
||||||
check_source_selection || test_fail
|
check_source_selection || test_fail
|
||||||
|
@ -33,7 +41,7 @@ time_offset=-1000
|
||||||
refclock_offset="(+ -34)"
|
refclock_offset="(+ -34)"
|
||||||
client_conf="
|
client_conf="
|
||||||
refclock SHM 0 dpoll 0 poll 0 tai
|
refclock SHM 0 dpoll 0 poll 0 tai
|
||||||
leapsectz right/UTC
|
leapseclist tmp/leap.list
|
||||||
makestep 1 1
|
makestep 1 1
|
||||||
maxchange 1e-3 1 0"
|
maxchange 1e-3 1 0"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue