The presend option in interleaved mode uses two presend requests instead of one to get an interleaved response from servers like chrony which delay the first interleaved response due to an optimization saving timestamps only for clients actually using the interleaved mode. After commit0ae6f2485b
("ntp: don't use first response in interleaved mode") the first interleaved response following the two presend responses in basic mode is dropped as the preferred set of timestamps minimizing error in delay was already used by the second sample in basic mode. There are only three responses in the burst and no sample is accumulated. Increasing the number of presend requests to three to get a fourth sample would be wasteful. Instead, allow reusing timestamps of the second presend sample in basic mode, which is never accumulated. Reported-by: Aaron Thompson Fixes:0ae6f2485b
("ntp: don't use first response in interleaved mode")
51 lines
1.2 KiB
Bash
Executable file
51 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
. ./test.common
|
|
test_start "presend option"
|
|
|
|
limit=9900
|
|
min_sync_time=136
|
|
max_sync_time=260
|
|
client_server_options="presend 6 maxdelay 16"
|
|
client_conf="maxdistance 10"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_packet_interval || test_fail
|
|
check_sync || test_fail
|
|
|
|
base_delay=5
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_packet_interval || test_fail
|
|
check_sync || test_fail
|
|
|
|
limit=10
|
|
base_delay=$default_base_delay
|
|
client_conf="logdir tmp
|
|
log measurements"
|
|
|
|
client_server_options="presend 5"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_packet_interval || test_fail
|
|
|
|
check_file_messages "20.*123\.1.* 111 111 0111" 1 1 measurements.log || test_fail
|
|
check_file_messages "20.*123\.1.* 111 111 1111" 1 1 measurements.log || test_fail
|
|
rm -f tmp/measurements.log
|
|
|
|
client_server_options="presend 5 xleave"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_packet_interval || test_fail
|
|
|
|
check_file_messages "20.*123\.1.* 111 111 0111" 2 2 measurements.log || test_fail
|
|
check_file_messages "20.*123\.1.* 111 111 1111" 1 1 measurements.log || test_fail
|
|
rm -f tmp/measurements.log
|
|
|
|
test_pass
|