mirror of
https://github.com/espressif/openthread.git
synced 2026-08-14 06:37:46 +00:00
[cli] add API/CLI to support querying SRP server state (#6914)
This commit is contained in:
@@ -77,14 +77,17 @@ class SingleHostAndService(thread_cert.TestCase):
|
||||
server = self.nodes[BR]
|
||||
client = self.nodes[ROUTER]
|
||||
|
||||
server.srp_server_set_enabled(False)
|
||||
host.start(start_radvd=False)
|
||||
self.simulator.go(5)
|
||||
|
||||
self.assertEqual(server.srp_server_get_state(), 'disabled')
|
||||
server.srp_server_set_enabled(True)
|
||||
server.srp_server_set_lease_range(LEASE, LEASE, KEY_LEASE, KEY_LEASE)
|
||||
server.start()
|
||||
self.simulator.go(5)
|
||||
self.simulator.go(10)
|
||||
self.assertEqual('leader', server.get_state())
|
||||
self.assertEqual(server.srp_server_get_state(), 'running')
|
||||
|
||||
client.start()
|
||||
self.simulator.go(5)
|
||||
|
||||
@@ -795,6 +795,11 @@ class NodeImpl:
|
||||
self.send_command(cmd)
|
||||
self._expect_done()
|
||||
|
||||
def srp_server_get_state(self):
|
||||
states = ['disabled', 'running', 'stopped']
|
||||
self.send_command('srp server state')
|
||||
return self._expect_result(states)
|
||||
|
||||
def srp_server_set_enabled(self, enable):
|
||||
cmd = f'srp server {"enable" if enable else "disable"}'
|
||||
self.send_command(cmd)
|
||||
|
||||
@@ -268,7 +268,6 @@ class NetDataPublisher(thread_cert.TestCase):
|
||||
# MLE-EID address, then change to use specific address. Verify
|
||||
# that number of entries in network data is correct in each step
|
||||
# and that entries are switched correctly.
|
||||
|
||||
num = 0
|
||||
for node in routers:
|
||||
node.netdata_publish_dnssrp_unicast_mleid(DNSSRP_PORT)
|
||||
@@ -285,6 +284,14 @@ class NetDataPublisher(thread_cert.TestCase):
|
||||
self.assertEqual(len(services), min(num, DESIRED_NUM_DNSSRP_UNCIAST))
|
||||
self.verify_unicast_services(services)
|
||||
|
||||
for node in routers:
|
||||
node.srp_server_set_enabled(True)
|
||||
self.simulator.go(WAIT_TIME)
|
||||
self.assertEqual(sum(node.srp_server_get_state() == 'running' for node in routers),
|
||||
min(len(routers), DESIRED_NUM_DNSSRP_UNCIAST))
|
||||
self.assertEqual(sum(node.srp_server_get_state() == 'stopped' for node in routers),
|
||||
max(len(routers) - DESIRED_NUM_DNSSRP_UNCIAST, 0))
|
||||
|
||||
for node in routers:
|
||||
node.netdata_unpublish_dnssrp()
|
||||
self.simulator.go(WAIT_TIME)
|
||||
@@ -292,6 +299,9 @@ class NetDataPublisher(thread_cert.TestCase):
|
||||
services = leader.get_services()
|
||||
self.assertEqual(len(services), min(num, DESIRED_NUM_DNSSRP_UNCIAST))
|
||||
self.verify_unicast_services(services)
|
||||
for node in routers:
|
||||
node.srp_server_set_enabled(False)
|
||||
self.assertEqual(node.srp_server_get_state(), 'disabled')
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# DNS/SRP entries: Verify publisher preference when removing
|
||||
|
||||
Reference in New Issue
Block a user