From 2c6cbde058464e2bb579798b459b2d60df88973a Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Tue, 3 Jun 2025 10:58:00 +0200 Subject: [PATCH] test: add 149-sourcedir test --- test/simulation/149-sourcedir | 189 ++++++++++++++++++++++++++++++++++ test/simulation/test.common | 5 +- 2 files changed, 193 insertions(+), 1 deletion(-) create mode 100755 test/simulation/149-sourcedir diff --git a/test/simulation/149-sourcedir b/test/simulation/149-sourcedir new file mode 100755 index 00000000..77b8499f --- /dev/null +++ b/test/simulation/149-sourcedir @@ -0,0 +1,189 @@ +#!/usr/bin/env bash + +. ./test.common + +test_start "sourcedir directive" + +check_config_h 'FEAT_CMDMON 1' || test_skip + +servers=4 +limit=191 +update_executable="tmp/update-sourcedir" +client_server_conf="sourcedir tmp" +base_delay="(+ 1e-4 (* 5 (equal 0.1 from $[servers + 2])))" +chronyc_start=1 +chronyc_conf="timeout 6000 +activity +$(for i in $(seq 1 18); do echo "reload sources"; echo activity; done)" + +cat > tmp/sources.sources < tmp/update-sourcedir < tmp/sources.sources +EOF +chmod 755 tmp/update-sourcedir + +run_test || test_fail +check_chronyd_exit || test_fail + +check_log_messages "T00:0.:[135].Z \(Added\|Removed\)" 0 0 || test_fail +check_log_messages "T00:0.:..Z Added pool nodes-1-2-3-4\." 3 3 || test_fail +check_log_messages "T00:0.:..Z Removed pool nodes-1-2-3-4\." 3 3 || test_fail +check_log_messages "T00:0.:..Z Added pool nodes-1-2-3\." 1 1 || test_fail +check_log_messages "T00:0.:..Z Removed pool nodes-1-2-3\." 1 1 || test_fail +check_log_messages "T00:0.:..Z Added source ID#" 2 2 || test_fail +check_log_messages "T00:0.:..Z Added source 192.168.123.[1234]" 2 2 || test_fail +check_log_messages "T00:0.:..Z Removed source 192.168.123.[1234]" 4 4 || test_fail + +check_chronyc_output "^200 OK +0 sources online +0 sources offline +4 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +4 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +4 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +4 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +3 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +3 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +3 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +5 sources with unknown address +200 OK +200 OK +3 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +5 sources with unknown address +200 OK +200 OK +4 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +5 sources with unknown address +200 OK +200 OK +4 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +5 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +1 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address +200 OK +200 OK +0 sources online +0 sources offline +0 sources doing burst \(return to online\) +0 sources doing burst \(return to offline\) +0 sources with unknown address$" || test_fail + +check_packet_interval || test_fail + +test_pass diff --git a/test/simulation/test.common b/test/simulation/test.common index e5ab4a4c..2a54b4f3 100644 --- a/test/simulation/test.common +++ b/test/simulation/test.common @@ -39,6 +39,7 @@ default_refclock_jitter="" default_refclock_offset=0.0 default_update_interval=0 +default_update_executable="" default_shift_pll=2 default_server_strata=1 @@ -463,7 +464,9 @@ run_simulation() { -o tmp/log.offset -f tmp/log.freq -p tmp/log.packets \ -R $(awk "BEGIN {print $update_interval < 0 ? 2^-($update_interval) : 1}") \ -r $(awk "BEGIN {print $max_sync_time * 2^$update_interval}") \ - -l $(awk "BEGIN {print $limit * 2^$update_interval}") && test_ok || test_error + -l $(awk "BEGIN {print $limit * 2^$update_interval}") \ + $([ "$update_executable" != "" ] && printf "%s" "-e $update_executable") && \ + test_ok || test_error } run_test() { -- 2.47.2