| #!/usr/bin/env bash |
| |
| . ./test.common |
| |
| test_start "chronyc commands" |
| |
| start_chronyd || test_fail |
| wait_for_sync || test_fail |
| |
| has_ipv6=$(check_chronyd_features IPV6 && ping6 -c 1 ::1 > /dev/null 2>&1 && echo 1 || echo 0) |
| |
| for command in \ |
| "allow 1.2.3.4" \ |
| "deny 1.2.3.4" \ |
| "cmddeny" \ |
| "cmdallow" \ |
| "cmddeny 1.2.3.4" \ |
| "cmdallow 1.2.3.4" \ |
| "add server 127.123.1.1" \ |
| "delete 127.123.1.1" \ |
| "burst 1/1" \ |
| "cyclelogs" \ |
| "dfreq 1.0e-3" \ |
| "doffset -0.1" \ |
| "dump" \ |
| "offline" \ |
| "local off" \ |
| "local" \ |
| "online" \ |
| "onoffline" \ |
| "maxdelay $server 1e-1" \ |
| "maxdelaydevratio $server 5.0" \ |
| "maxdelayratio $server 3.0" \ |
| "maxpoll $server 12" \ |
| "maxupdateskew $server 10.0" \ |
| "minpoll $server 10" \ |
| "minstratum $server 1" \ |
| "polltarget $server 10" \ |
| "refresh" \ |
| "rekey" \ |
| "reload sources" \ |
| "reselect" \ |
| "reselectdist 1e-3" \ |
| "reset sources" \ |
| "smoothtime reset" \ |
| "smoothtime activate" \ |
| ; do |
| run_chronyc "$command" || test_fail |
| check_chronyc_output "^200 OK$" || test_fail |
| done |
| |
| run_chronyc "accheck $server" || test_fail |
| check_chronyc_output "^208 Access allowed$" || test_fail |
| run_chronyc "accheck 1.2.3.4" || test_fail |
| check_chronyc_output "^209 Access denied$" || test_fail |
| |
| run_chronyc "cmdaccheck 1.2.3.4" || test_fail |
| check_chronyc_output "^208 Access allowed$" || test_fail |
| |
| run_chronyc "authdata" || test_fail |
| check_chronyc_output "^Name/IP address Mode KeyID Type KLen Last Atmp NAK Cook CLen |
| ========================================================================= |
| 127\.0\.0\.1 - 0 0 0 - 0 0 0 0$" \ |
| || test_chronyc |
| |
| run_chronyc "clients" || test_fail |
| check_chronyc_output "^Hostname NTP Drop Int IntL Last Cmd Drop Int Last |
| =============================================================================== |
| 127\.0\.0\.1 [0-9 ]+ 0 [-0-9 ]+ - [ 0-9]+ 0 0 - -$" \ |
| || test_fail |
| |
| run_chronyc "ntpdata $server" || test_fail |
| check_chronyc_output "^Remote address : 127\.0\.0\.1 \(7F000001\) |
| Remote port : [0-9]+ |
| Local address : 127\.0\.0\.1 \(7F000001\) |
| Leap status : Normal |
| Version : 4 |
| Mode : Server |
| Stratum : 10 |
| Poll interval : (-6|[0-9]+) \([0-9]+ seconds\) |
| Precision : [0-9 +-]+ \(0\.[0-9]+ seconds\) |
| Root delay : 0\.000000 seconds |
| Root dispersion : 0\.000000 seconds |
| Reference ID : 7F7F0101 \(\) |
| Reference time : [A-Za-z0-9: ]+ |
| Offset : [+-]0\.......... seconds |
| Peer delay : 0\.......... seconds |
| Peer dispersion : 0\.......... seconds |
| Response time : 0\.......... seconds |
| Jitter asymmetry: \+0\.00 |
| NTP tests : 111 111 1110 |
| Interleaved : No |
| Authenticated : No |
| TX timestamping : (Daemon|Kernel) |
| RX timestamping : (Daemon|Kernel) |
| Total TX : [0-9]+ |
| Total RX : [0-9]+ |
| Total valid RX : [0-9]+$" || test_fail |
| |
| run_chronyc "selectdata" || test_fail |
| check_chronyc_output "^S Name/IP Address Auth COpts EOpts Last Score Interval Leap |
| ======================================================================= |
| M 127\.0\.0\.1 N ----- ----- 0 1\.0 \+0ns \+0ns \?$" || test_fail |
| |
| run_chronyc "serverstats" || test_fail |
| check_chronyc_output "^NTP packets received : [0-9]+ |
| NTP packets dropped : 0 |
| Command packets received : [0-9]+ |
| Command packets dropped : 0 |
| Client log records dropped : 0 |
| NTS-KE connections accepted: 0 |
| NTS-KE connections dropped : 0 |
| Authenticated NTP packets : 0 |
| Interleaved NTP packets : 0 |
| NTP timestamps held : 0 |
| NTP timestamp span : 0$"|| test_fail |
| |
| run_chronyc "manual on" || test_fail |
| check_chronyc_output "^200 OK$" || test_fail |
| |
| run_chronyc "settime now" || test_fail |
| check_chronyc_output "^200 OK |
| Clock was.*$" || test_fail |
| |
| run_chronyc "manual delete 0" || test_fail |
| check_chronyc_output "^200 OK$" || test_fail |
| |
| run_chronyc "settime now" || test_fail |
| check_chronyc_output "^200 OK |
| Clock was.*$" || test_fail |
| |
| run_chronyc "manual list" || test_fail |
| check_chronyc_output "^210 n_samples = 1 |
| # Date Time\(UTC\) Slewed Original Residual |
| ======================================================= |
| 0.*$" || test_fail |
| |
| run_chronyc "manual reset" || test_fail |
| check_chronyc_output "^200 OK$" || test_fail |
| |
| run_chronyc "manual off" || test_fail |
| check_chronyc_output "^200 OK$" || test_fail |
| |
| run_chronyc "shutdown" || test_fail |
| check_chronyc_output "^200 OK$" || test_fail |
| |
| stop_chronyd || test_fail |
| check_chronyd_messages || test_fail |
| start_chronyd || test_fail |
| |
| run_chronyc "makestep" && test_fail |
| check_chronyc_output "500 Failure" || test_fail |
| |
| run_chronyc "trimrtc" && test_fail |
| check_chronyc_output "513 RTC driver not running" || test_fail |
| |
| run_chronyc "writertc" && test_fail |
| check_chronyc_output "513 RTC driver not running" || test_fail |
| |
| chronyc_host=127.0.0.1 |
| |
| run_chronyc "tracking" || test_fail |
| check_chronyc_output "^Reference ID" || test_fail |
| |
| run_chronyc "makestep" && test_fail |
| check_chronyc_output "^501 Not authorised$" || test_fail |
| |
| if [ "$has_ipv6" = "1" ]; then |
| chronyc_host=::1 |
| |
| run_chronyc "tracking" || test_fail |
| check_chronyc_output "^Reference ID" || test_fail |
| |
| run_chronyc "makestep" && test_fail |
| check_chronyc_output "^501 Not authorised$" || test_fail |
| fi |
| |
| stop_chronyd || test_fail |
| |
| test_pass |