Files
chrony/test/simulation/009-sourceselection
Miroslav Lichvar 454ce62672 sources: improve no majority log message
Add the number of sources that form an agreement (overlapping
intervals), if at least two agree with each other, and number of
reachable sources to the "Can't synchronize: no majority" log message to
better explain why synchronization is failing and hint that adding more
sources might help.
2025-03-06 15:22:36 +01:00

47 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
. ./test.common
test_start "source selection"
# Falsetickers should be detected if their number is less than half of all
base_delay=1e-3
servers=5
for falsetickers in 1 2; do
run_test || test_fail
check_chronyd_exit || test_fail
check_source_selection || test_fail
check_packet_interval || test_fail
check_sync || test_fail
done
for falsetickers in 3 4; do
run_test || test_fail
check_chronyd_exit || test_fail
check_packet_interval || test_fail
# These check are expected to fail
check_source_selection && test_fail
check_sync && test_fail
if [ $falsetickers = 3 ]; then
check_log_messages "Can't synchronise: no majority (only 2 of 5 sources agree)" 1 1 || test_fail
else
check_log_messages "Can't synchronise: no majority (no agreement among 5 sources)" 1 1 || test_fail
fi
done
# Sources with large asymmetric delay should be excluded
servers=3
falsetickers=0
base_delay="(+ 1e-3 (equal 0.1 to 2) (equal 0.1 to 3))"
run_test || test_fail
check_chronyd_exit || test_fail
check_source_selection || test_fail
check_sync || test_fail
test_pass