diff options
Diffstat (limited to 'test/simulation')
-rwxr-xr-x | test/simulation/106-refclock | 11 | ||||
-rwxr-xr-x | test/simulation/110-chronyc | 41 | ||||
-rwxr-xr-x | test/simulation/119-smoothtime | 6 | ||||
-rwxr-xr-x | test/simulation/124-tai | 42 | ||||
-rwxr-xr-x | test/simulation/125-packetloss | 29 | ||||
-rwxr-xr-x | test/simulation/126-burst | 29 | ||||
-rw-r--r-- | test/simulation/test.common | 10 |
7 files changed, 157 insertions, 11 deletions
diff --git a/test/simulation/106-refclock b/test/simulation/106-refclock index f64f2be..c22cd42 100755 --- a/test/simulation/106-refclock +++ b/test/simulation/106-refclock @@ -8,11 +8,20 @@ limit=1000 refclock_jitter=$jitter min_sync_time=45 max_sync_time=70 -client_conf="refclock SHM 0" +chronyc_start=70 +client_conf="refclock SHM 0 stratum 3 delay 1e-3 refid GPS" +chronyc_conf="tracking" run_test || test_fail check_chronyd_exit || test_fail check_source_selection || test_fail check_sync || test_fail +check_chronyc_output "^Reference ID.*47505300 \(GPS\) +Stratum.*: 4 +.* +Root delay : 0.001000000 seconds +.* +Update interval : 16\.. seconds +.*$" || test_fail test_pass diff --git a/test/simulation/110-chronyc b/test/simulation/110-chronyc index ddd9a22..d56e724 100755 --- a/test/simulation/110-chronyc +++ b/test/simulation/110-chronyc @@ -4,14 +4,30 @@ test_start "chronyc" -chronyc_conf="tracking +refclock_jitter=$jitter +client_conf=" +refclock SHM 0 noselect +smoothtime 400 0.001 leaponly" + +chronyc_conf="activity +tracking sources -sourcestats" +sourcestats +manual list +smoothing +waitsync +rtcdata" run_test || test_fail check_chronyd_exit || test_fail -check_chronyc_output "^Reference ID : C0A87B01 \(192\.168\.123\.1\) +check_chronyc_output "^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 +Reference ID : C0A87B01 \(192\.168\.123\.1\) Stratum : 2 Ref time \(UTC\) : Fri Jan 01 00:1.:.. 2010 System time : 0\.0000..... seconds (slow|fast) of NTP time @@ -24,14 +40,27 @@ Root delay : 0\.000...... seconds Root dispersion : 0\.000...... seconds Update interval : [0-9]+\.. seconds Leap status : Normal -210 Number of sources = 1 +210 Number of sources = 2 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== +#\? SHM0 0 4 377 [0-9]+ [0-9 +-]+[un]s\[[0-9 +-]+[un]s\] \+/-[ 0-9]+[un]s \^\* 192\.168\.123\.1 1 [67] 377 [0-9]+ [0-9 +-]+[un]s\[[0-9 +-]+[un]s\] \+/-[ 0-9]+[un]s -210 Number of sources = 1 +210 Number of sources = 2 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ============================================================================== -192\.168\.123\.1 [0-9 ]+ [0-9 ]+ [0-9 ]+ [ +-][01]\.... [0-9 ]+\.... [0-9 +-]+[un]s [0-9 ]+[un]s$" \ +SHM0 [0-9 ]+ [0-9 ]+ [0-9 ]+ [ +-][01]\.... [0-9 ]+\.... [0-9 +-]+[un]s [0-9 ]+[un]s +192\.168\.123\.1 [0-9 ]+ [0-9 ]+ [0-9 ]+ [ +-][01]\.... [0-9 ]+\.... [0-9 +-]+[un]s [0-9 ]+[un]s +210 n_samples = 0 +# Date Time\(UTC\) Slewed Original Residual +======================================================= +Active : Yes \(leap second only\) +Offset : \+0\.000000000 seconds +Frequency : \+0\.000000 ppm +Wander : \+0\.000000 ppm per second +Last update : [0-9]+\.. seconds ago +Remaining time : 0\.0 seconds +try: 1, refid: C0A87B01, correction: 0\.000......, skew: .\.... +513 RTC driver not running$" \ || test_fail test_pass diff --git a/test/simulation/119-smoothtime b/test/simulation/119-smoothtime index 8ca3c36..6b4ae39 100755 --- a/test/simulation/119-smoothtime +++ b/test/simulation/119-smoothtime @@ -5,8 +5,9 @@ test_start "smoothtime option" server_strata=2 server_conf="smoothtime 400 0.001" -min_sync_time=250 -max_sync_time=1000 +server_server_options="minpoll 8" +min_sync_time=600 +max_sync_time=800 run_test || test_fail check_chronyd_exit || test_fail @@ -22,6 +23,7 @@ server_conf="refclock SHM 0 dpoll 4 poll 6 smoothtime 2000 1 maxjitter 10.0" time_offset=-10 +server_server_options="" client_server_options="minpoll 6 maxpoll 6" client_conf="corrtimeratio 100" min_sync_time=8000 diff --git a/test/simulation/124-tai b/test/simulation/124-tai new file mode 100755 index 0000000..b5be030 --- /dev/null +++ b/test/simulation/124-tai @@ -0,0 +1,42 @@ +#!/bin/bash + +. ./test.common +test_start "tai option" + +export CLKNETSIM_START_DATE=$(TZ=UTC date -d 'Dec 31 2008 23:50:00' +'%s') + +leap=$[10 * 60] +limit=$[20 * 60] +min_sync_time=2 +max_sync_time=15 +refclock_jitter=1e-6 +servers=0 + +refclock_offset="(+ -34 (equal 0.1 (max (sum 1.0) $leap) $leap))" +client_conf=" +refclock SHM 0 dpoll 0 poll 0 tai +leapsectz right/UTC +leapsecmode ignore +maxchange 1e-3 1 0" + +run_test || test_fail +check_chronyd_exit || test_fail +check_source_selection || test_fail +check_sync || test_fail + +export CLKNETSIM_START_DATE=$(TZ=UTC date -d 'Jan 01 2009 00:10:00' +'%s') + +time_offset=-1000 +refclock_offset="(+ -34)" +client_conf=" +refclock SHM 0 dpoll 0 poll 0 tai +leapsectz right/UTC +makestep 1 1 +maxchange 1e-3 1 0" + +run_test || test_fail +check_chronyd_exit || test_fail +check_source_selection || test_fail +check_sync || test_fail + +test_pass diff --git a/test/simulation/125-packetloss b/test/simulation/125-packetloss new file mode 100755 index 0000000..95604da --- /dev/null +++ b/test/simulation/125-packetloss @@ -0,0 +1,29 @@ +#!/bin/bash + +. ./test.common + +test_start "packet loss" + +# Drop 33% of packets by default and 100% on the 3->1 path +base_delay=$(cat <<-EOF | tr -d '\n' + (+ 1e-4 + (* -1 (equal 0.33 (uniform) 1.0)) + (* -1 (equal 0.1 from 3) (equal 0.1 to 1))) +EOF +) +clients=2 +peers=2 +jitter=1e-5 +limit=20000 +max_sync_time=10000 + +for options in "maxpoll 8" "maxpoll 8 xleave"; do + client_server_options=$options + client_peer_options=$options + + run_test || test_fail + check_chronyd_exit || test_fail + check_sync || test_fail +done + +test_pass diff --git a/test/simulation/126-burst b/test/simulation/126-burst new file mode 100755 index 0000000..3173c78 --- /dev/null +++ b/test/simulation/126-burst @@ -0,0 +1,29 @@ +#!/bin/bash + +. ./test.common + +test_start "burst option" + +# Pass every fourth packet on the 2->1 path +base_delay=$(cat <<-EOF | tr -d '\n' + (+ 1e-4 + (* -1 + (equal 0.1 from 2) + (equal 0.1 to 1) + (equal 0.1 (min (% (sum 1) 4) 1) 1))) +EOF +) + +client_server_options="burst polltarget 1" +min_sync_time=700 +max_sync_time=730 +client_max_min_out_interval=2.2 +client_min_mean_out_interval=150.0 + +run_test || test_fail +check_chronyd_exit || test_fail +check_source_selection || test_fail +check_packet_interval || test_fail +check_sync || test_fail + +test_pass diff --git a/test/simulation/test.common b/test/simulation/test.common index 2c28e89..0cd0fce 100644 --- a/test/simulation/test.common +++ b/test/simulation/test.common @@ -71,6 +71,9 @@ default_freq_rms_limit=1e-5 default_min_sync_time=120 default_max_sync_time=210 +default_client_min_mean_out_interval=0.0 +default_client_max_min_out_interval=inf + # Initialize test settings from their defaults for defopt in $(declare | grep '^default_'); do defoptname=${defopt%%=*} @@ -251,6 +254,7 @@ check_chronyd_exit() { test_message 3 0 "node $i:" tail -n 1 tmp/log.$i | grep -q 'chronyd exiting' && \ + ! grep -q 'Adjustment.*exceeds.*exiting' tmp/log.$i && \ test_ok || test_bad [ $? -eq 0 ] || ret=1 done @@ -302,10 +306,12 @@ check_packet_interval() { ([ $i -gt $servers ] || \ check_stat $mean_in_interval 0.0 $mean_out_interval 10*$jitter) && \ ([ $i -le $[$servers * $server_strata] ] || \ - check_stat $mean_out_interval 0.0 $mean_in_interval 10*$jitter) && \ + check_stat $mean_out_interval $client_min_mean_out_interval \ + $mean_in_interval 10*$jitter) && \ ([ $i -le $[$servers * $server_strata] ] || \ check_stat $min_out_interval \ - $([ $servers -gt 1 ] && echo 0.18 || echo 1.8) inf) && \ + $([ $servers -gt 1 ] && echo 0.18 || echo 1.8) \ + $client_max_min_out_interval) && \ test_ok || test_bad [ $? -eq 0 ] || ret=1 |