From f8dbca157b9311f5290ab257f50eaa9868ed05b7 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Thu, 3 Nov 2016 11:37:23 -0700 Subject: [PATCH] Update to latest Thread Certification Test Spec. (#925) --- .../thread-cert/Cert_5_1_07_MaxChildCount.py | 58 ++++++------------- 1 file changed, 18 insertions(+), 40 deletions(-) diff --git a/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py b/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py index 9ecca6f9b..104661b8d 100755 --- a/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py +++ b/tests/scripts/thread-cert/Cert_5_1_07_MaxChildCount.py @@ -34,12 +34,12 @@ import node LEADER = 1 ROUTER = 2 -ED = 3 +SED1 = 6 class Cert_5_1_07_MaxChildCount(unittest.TestCase): def setUp(self): self.nodes = {} - for i in range(1, 14): + for i in range(1, 13): self.nodes[i] = node.Node(i) self.nodes[LEADER].set_panid(0xface) @@ -54,17 +54,11 @@ class Cert_5_1_07_MaxChildCount(unittest.TestCase): self.nodes[ROUTER].set_router_selection_jitter(1) self.nodes[ROUTER].set_max_children(10) - self.nodes[ED].set_panid(0xface) - self.nodes[ED].set_mode('rsn') - self.nodes[ED].add_whitelist(self.nodes[ROUTER].get_addr64()) - self.nodes[ROUTER].add_whitelist(self.nodes[ED].get_addr64()) - self.nodes[ED].enable_whitelist() - - for i in range(4, 14): - if i in range(8, 14): - self.nodes[i].set_mode('s') - else: + for i in range(3, 13): + if i in range(3, 7): self.nodes[i].set_mode('rsn') + else: + self.nodes[i].set_mode('s') self.nodes[i].set_panid(0xface) self.nodes[i].add_whitelist(self.nodes[ROUTER].get_addr64()) self.nodes[ROUTER].add_whitelist(self.nodes[i].get_addr64()) @@ -85,39 +79,23 @@ class Cert_5_1_07_MaxChildCount(unittest.TestCase): time.sleep(5) self.assertEqual(self.nodes[ROUTER].get_state(), 'router') - for i in range(4, 14): + for i in range(3, 13): self.nodes[i].start() time.sleep(7) self.assertEqual(self.nodes[i].get_state(), 'child') - if i in range(4, 8): - meshLocalEID = '' - ipaddrs = [] - ipaddrs = self.nodes[i].get_addrs() + ipaddrs = self.nodes[SED1].get_addrs() + for addr in ipaddrs: + if addr[0:4] != 'fe80' and 'ff:fe00' not in addr: + self.assertTrue(self.nodes[LEADER].ping(addr, size=1280)) + break - for line in ipaddrs: - if 'fdde' in line and 'ff:fe00' not in line: - meshLocalEID = line - break - - self.assertTrue(self.nodes[LEADER].ping(meshLocalEID, size=106)) - time.sleep(1) - - self.nodes[ED].start() - time.sleep(5) - self.assertEqual(self.nodes[ED].get_state(), 'detached') - - self.nodes[ED].stop() - for i in range(4, 14): - self.nodes[i].stop() - time.sleep(5) - - self.nodes[LEADER].stop() - time.sleep(100) - - self.nodes[ED].start() - time.sleep(5) - self.assertEqual(self.nodes[ED].get_state(), 'detached') + for i in range(3, 13): + ipaddrs = self.nodes[i].get_addrs() + for addr in ipaddrs: + if addr[0:4] != 'fe80' and 'ff:fe00' not in addr: + self.assertTrue(self.nodes[LEADER].ping(addr, size=106)) + break if __name__ == '__main__': unittest.main()