mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
62 lines
1.9 KiB
Python
Executable File
62 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""NTP server standalone mode test
|
|
|
|
Verify NTP server operating in standalone mode with only a local reference clock.
|
|
|
|
This test validates the basic standalone mode where the NTP server uses only
|
|
its local reference clock (stratum 8) to serve time to clients, without
|
|
syncing from any upstream sources.
|
|
"""
|
|
|
|
import infamy
|
|
from infamy import until
|
|
import infamy.ntp as ntp
|
|
|
|
|
|
with infamy.Test() as test:
|
|
with test.step("Set up topology and attach to target DUT"):
|
|
env = infamy.Env()
|
|
target = env.attach("target", "mgmt")
|
|
_, data1 = env.ltop.xlate("target", "data1")
|
|
_, hport1 = env.ltop.xlate("host", "data1")
|
|
|
|
with test.step("Configure interface and NTP server"):
|
|
|
|
target.put_config_dicts({
|
|
"ietf-interfaces": {
|
|
"interfaces": {
|
|
"interface": [{
|
|
"name": data1,
|
|
"enabled": True,
|
|
"ipv4": {
|
|
"address": [{
|
|
"ip": "192.168.1.1",
|
|
"prefix-length": 24
|
|
}]
|
|
}
|
|
}]
|
|
}
|
|
},
|
|
"ietf-ntp": {
|
|
"ntp": {
|
|
"refclock-master": {
|
|
"master-stratum": 8
|
|
}
|
|
}
|
|
}
|
|
})
|
|
|
|
with infamy.IsolatedMacVlan(hport1) as ns1:
|
|
ns1.addip("192.168.1.2")
|
|
|
|
with test.step("Verify network connectivity with NTP server"):
|
|
ns1.must_reach("192.168.1.1")
|
|
|
|
with test.step("Query time from NTP server"):
|
|
until(lambda: ntp.server_query(ns1, "192.168.1.1"), attempts=20)
|
|
|
|
with test.step("Verify NTP server statistics"):
|
|
until(lambda: ntp.server_has_received_packets(target), attempts=20)
|
|
|
|
test.succeed()
|