Update to latest Thread Certification Test Spec. (#925)

This commit is contained in:
Jonathan Hui
2016-11-03 11:37:23 -07:00
committed by GitHub
parent 15008f07f8
commit f8dbca157b
@@ -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()