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