summaryrefslogtreecommitdiffstats
path: root/test/simulation/113-leapsecond
blob: 394440b763197e69ac31efeeae2e333918327cbd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/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