chrony/test/simulation/108-peer
2024-08-29 09:37:50 +02:00

56 lines
1.3 KiB
Bash
Executable file

#!/usr/bin/env bash
. ./test.common
test_start "NTP peers"
# Allow and drop packets to the server in 1000 second intervals, so only one
# client has access to it and the other is forced to switch to the peer.
base_delay=$(cat <<-EOF | tr -d '\n'
(+ 1e-4
(* -1
(equal 0.1 from 2)
(equal 0.1 to 1)
(equal 0.1 (min (% time 2000) 1000) 1000))
(* -1
(equal 0.1 from 3)
(equal 0.1 to 1)
(equal 0.1 (max (% time 2000) 1000) 1000)))
EOF
)
clients=2
peers=2
freq_max_limit=1e-3
max_sync_time=1000
client_server_options="minpoll 6 maxpoll 6"
client_peer_options="minpoll 6 maxpoll 6"
run_test || test_fail
check_chronyd_exit || test_fail
check_source_selection || test_fail
check_sync || test_fail
freq_max_limit=$default_freq_max_limit
base_delay="(+ 1e-4 (* -1 (equal 0.1 from 3) (equal 0.1 to 1)))"
client_peer_options=""
while read lminpoll lmaxpoll rminpoll rmaxpoll max_sync_time; do
client_lpeer_options="minpoll $lminpoll maxpoll $lmaxpoll"
client_rpeer_options="minpoll $rminpoll maxpoll $rmaxpoll"
limit=$[$max_sync_time * 10]
run_test || test_fail
check_chronyd_exit || test_fail
check_sync || test_fail
done <<-EOF
3 6 3 6 400
3 3 6 6 450
6 6 3 3 450
3 6 6 6 450
6 6 3 6 450
-2 -2 2 2 220
2 2 -2 -2 220
EOF
test_pass