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