[tests] add test to verify DHCP6 client works after reset (#6204)

This commit is contained in:
Simon Lin
2021-03-03 11:21:44 -08:00
committed by GitHub
parent cacb88defa
commit a46b565cbf
2 changed files with 38 additions and 3 deletions
@@ -29,6 +29,7 @@
import unittest
import thread_cert
import config
# Test description:
# This test verifies UDP servers can be accessible using RLOC/ALOC/MLEID/LINK-LOCAL/OMR when PLAT_UDP is enabled.
@@ -42,8 +43,6 @@ import thread_cert
# ROUTER1
#
import config
BR1 = 1
ROUTER1 = 2
@@ -87,6 +86,38 @@ class TestPlatUdpAccessibility(thread_cert.TestCase):
for server_aloc in self.nodes[BR1].get_ip6_address(config.ADDRESS_TYPE.ALOC):
self._test_srp_server(server_aloc, server_port)
self._testDhcp6ClientAfterReset(BR1, BR1, BR1)
def _testDhcp6ClientAfterReset(self, server, client, reset_device):
DHCP6_PREFIX = '2001::/64'
# Configure DHCP6 server
self.nodes[server].add_prefix(DHCP6_PREFIX, 'pdros')
self.simulator.go(3)
self.nodes[server].register_netdata()
self.simulator.go(5)
# Verify DHCP6 client works
self.assertTrue(self.nodes[client].get_addr(DHCP6_PREFIX))
self.simulator.go(3)
self.nodes[reset_device].reset()
self.nodes[reset_device].start()
self.simulator.go(5)
self.assertIn(self.nodes[reset_device].get_state(), ['leader', 'router'])
self.simulator.go(3)
if reset_device == server:
# Reconfigure DHCP6 server if necessary
self.nodes[server].add_prefix(DHCP6_PREFIX, 'pdros')
self.simulator.go(3)
self.nodes[server].register_netdata()
self.simulator.go(5)
# Verify DHCP6 client works after reset
self.assertTrue(self.nodes[client].get_addr(DHCP6_PREFIX))
self.simulator.go(3)
def _test_srp_server(self, server_addr, server_port):
print(f'Testing SRP server: {server_addr}:{server_port}')
+5 -1
View File
@@ -52,6 +52,8 @@ PORT_OFFSET = int(os.getenv('PORT_OFFSET', "0"))
class OtbrDocker:
RESET_DELAY = 3
_socat_proc = None
_ot_rcp_proc = None
_docker_proc = None
@@ -307,6 +309,8 @@ class OtbrDocker:
class OtCli:
RESET_DELAY = 0.1
def __init__(self, nodeid, is_mtd=False, version=None, is_bbr=False, **kwargs):
self.verbose = int(float(os.getenv('VERBOSE', 0)))
self.node_type = os.getenv('NODE_TYPE', 'sim')
@@ -1786,7 +1790,7 @@ class NodeImpl:
def reset(self):
self.send_command('reset')
time.sleep(0.1)
time.sleep(self.RESET_DELAY)
def set_router_selection_jitter(self, jitter):
cmd = 'routerselectionjitter %d' % jitter