75 lines
1.9 KiB
Bash
Executable file
75 lines
1.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
. ./test.common
|
|
test_start "RTC tracking"
|
|
|
|
check_config_h 'FEAT_CMDMON 1' || test_skip
|
|
check_config_h 'FEAT_RTC 1' || test_skip
|
|
|
|
export CLKNETSIM_START_DATE=$(date -d 'Jan 1 00:00:00 UTC 2010' +'%s')
|
|
export CLKNETSIM_RTC_OFFSET=-10.0
|
|
|
|
time_offset=$(awk "BEGIN {print -($freq_offset * $limit)}")
|
|
wander=0.0
|
|
chronyc_start=9900
|
|
chronyc_conf="rtcdata"
|
|
client_chronyd_options="-x"
|
|
|
|
client_conf="
|
|
hwclockfile /dev/null
|
|
driftfile tmp/drift
|
|
rtcfile tmp/rtc
|
|
rtconutc"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_chronyc_output "^RTC ref time \(UTC\) : Fri Jan 01 02:4[34]:.. 2010
|
|
Number of samples : [0-9]+
|
|
Number of runs : [0-9]+
|
|
Sample span period : [ 0-9]+
|
|
RTC is fast by : -9\.01.... seconds
|
|
RTC gains time at : 99\.9[98]. ppm$" \
|
|
|| test_fail
|
|
|
|
export CLKNETSIM_START_DATE=$(date -d 'Jan 5 00:00:00 UTC 2010' +'%s')
|
|
export CLKNETSIM_RTC_OFFSET=$(awk "BEGIN {print -(10.0 - 4 * 86400 * $freq_offset)}")
|
|
touch -d 'Jan 1 00:00:00 UTC 2010' tmp/drift
|
|
|
|
time_offset=10
|
|
min_sync_time=2
|
|
max_sync_time=12
|
|
time_max_limit=1e-2
|
|
freq_max_limit=1e-1
|
|
time_rms_limit=1e-3
|
|
freq_rms_limit=1e-3
|
|
client_chronyd_options="-s"
|
|
client_conf+="
|
|
rtcautotrim 1"
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_sync || test_fail
|
|
check_chronyc_output "^RTC ref time \(UTC\) : Tue Jan 05 02:4[34]:.. 2010
|
|
Number of samples : [0-9]+
|
|
Number of runs : [0-9]+
|
|
Sample span period : [ 0-9]+
|
|
RTC is fast by : 0\.1..... seconds
|
|
RTC gains time at : [- ]0\.0.. ppm$" \
|
|
|| test_fail
|
|
|
|
export CLKNETSIM_START_DATE=$(date -d 'Jan 10 00:00:00 UTC 2010' +'%s')
|
|
export CLKNETSIM_RTC_OFFSET=-10.0
|
|
touch -d 'Jan 10 00:00:00 UTC 2010' tmp/drift
|
|
|
|
time_offset=-10000
|
|
min_sync_time=1
|
|
max_sync_time=1
|
|
|
|
run_test || test_fail
|
|
check_chronyd_exit || test_fail
|
|
check_source_selection || test_fail
|
|
check_sync || test_fail
|
|
|
|
test_pass
|