| #!/usr/bin/env bash |
| |
| . ./test.common |
| test_start "SHM refclock" |
| |
| check_config_h 'FEAT_REFCLOCK 1' || test_skip |
| check_config_h 'FEAT_PHC 1' || test_skip |
| check_config_h 'FEAT_CMDMON 1' || test_skip |
| |
| servers=0 |
| limit=1000 |
| refclock_jitter=$jitter |
| min_sync_time=45 |
| max_sync_time=70 |
| chronyc_start=70 |
| chronyc_conf="tracking" |
| |
| for refclock in "SHM 0" "PHC /dev/ptp0"; do |
| client_conf="refclock $refclock stratum 3 delay 1e-3 refid GPS |
| logdir tmp |
| log refclocks" |
| |
| 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 |
| |
| check_file_messages "20.* GPS.*[0-9] N " 997 1001 refclocks.log || test_fail |
| check_file_messages "20.* GPS.*- N " 61 63 refclocks.log || test_fail |
| rm -f tmp/refclocks.log |
| done |
| |
| if check_config_h 'FEAT_PPS 1'; then |
| refclock_offset=0.35 |
| refclock_jitter=0.05 |
| |
| client_conf=" |
| refclock SHM 0 refid NMEA noselect |
| refclock PPS /dev/pps0 lock NMEA |
| logdir tmp |
| log refclocks" |
| |
| run_test || test_fail |
| check_chronyd_exit || test_fail |
| check_source_selection || test_fail |
| check_sync || test_fail |
| check_chronyc_output "^Reference ID.*50505331 \(PPS1\) |
| Stratum.*: 1 |
| .* |
| Root delay : 0\.000000001 seconds |
| .*$" || test_fail |
| |
| check_file_messages "20.* PPS1.*[0-9] N " 620 740 refclocks.log || test_fail |
| check_file_messages "20.* PPS1.*- N " 60 63 refclocks.log || test_fail |
| rm -f tmp/refclocks.log |
| |
| client_conf=" |
| refclock SHM 0 noselect |
| refclock PPS /dev/pps0 |
| local |
| logdir tmp |
| log refclocks" |
| |
| run_test || test_fail |
| check_chronyd_exit || test_fail |
| check_source_selection || test_fail |
| check_sync || test_fail |
| check_chronyc_output "^Reference ID.*50505331 \(PPS1\) |
| Stratum.*: 10 |
| .* |
| Root delay : 0\.000000001 seconds |
| .*$" || test_fail |
| |
| check_file_messages "20.* PPS1.*[0-9] N " 997 1001 refclocks.log || test_fail |
| check_file_messages "20.* PPS1.*- N " 60 63 refclocks.log || test_fail |
| rm -f tmp/refclocks.log |
| |
| min_sync_time=100 |
| max_sync_time=220 |
| chronyc_start=220 |
| client_conf=" |
| refclock SHM 0 refid NMEA offset 0.35 delay 0.1 |
| refclock PPS /dev/pps0 |
| logdir tmp |
| log refclocks" |
| |
| run_test || test_fail |
| check_chronyd_exit || test_fail |
| check_source_selection || test_fail |
| check_sync || test_fail |
| check_chronyc_output "^Reference ID.*50505331 \(PPS1\) |
| Stratum.*: 1 |
| .* |
| Root delay : 0\.000000001 seconds |
| .*$" || test_fail |
| |
| check_file_messages "20.* PPS1.*[0-9] N " 800 940 refclocks.log || test_fail |
| check_file_messages "20.* PPS1.*- N " 50 63 refclocks.log || test_fail |
| rm -f tmp/refclocks.log |
| fi |
| |
| test_pass |