From e8fe3bd6e74eb5ba889e229721862cb6c219061c Mon Sep 17 00:00:00 2001 From: Jing Ma Date: Mon, 20 Jul 2020 23:40:04 +0800 Subject: [PATCH] [thread-cert] deprecate certification test case 5.5.8, 5.6.8, 5.8.1 (#5246) 5.5.8, 5.6.8 and 5.8.1 were deprecated in Thread Certification test plan. --- .../Cert_5_5_08_SplitRoutersLostLeader.py | 122 ---------------- .../Cert_5_6_08_ContextManagement.py | 132 ------------------ .../Cert_5_8_01_KeySynchronization.py | 79 ----------- tests/scripts/thread-cert/Makefile.am | 6 - 4 files changed, 339 deletions(-) delete mode 100755 tests/scripts/thread-cert/Cert_5_5_08_SplitRoutersLostLeader.py delete mode 100755 tests/scripts/thread-cert/Cert_5_6_08_ContextManagement.py delete mode 100755 tests/scripts/thread-cert/Cert_5_8_01_KeySynchronization.py diff --git a/tests/scripts/thread-cert/Cert_5_5_08_SplitRoutersLostLeader.py b/tests/scripts/thread-cert/Cert_5_5_08_SplitRoutersLostLeader.py deleted file mode 100755 index a25aef2e1..000000000 --- a/tests/scripts/thread-cert/Cert_5_5_08_SplitRoutersLostLeader.py +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2016, The OpenThread Authors. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the copyright holder nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -import unittest - -import thread_cert - -LEADER1 = 1 -ROUTER1 = 2 -ROUTER2 = 3 -ROUTER3 = 4 -ED1 = 5 - - -class Cert_5_5_8_SplitRoutersLostLeader(thread_cert.TestCase): - TOPOLOGY = { - LEADER1: { - 'mode': 'rsdn', - 'panid': 0xface, - 'router_selection_jitter': 1, - 'whitelist': [ROUTER3] - }, - ROUTER1: { - 'mode': 'rsdn', - 'panid': 0xface, - 'router_selection_jitter': 1, - 'whitelist': [ROUTER3, ROUTER2, ED1] - }, - ROUTER2: { - 'mode': 'rsdn', - 'panid': 0xface, - 'router_selection_jitter': 1, - 'whitelist': [ROUTER3, ROUTER1] - }, - ROUTER3: { - 'mode': 'rsdn', - 'panid': 0xface, - 'router_selection_jitter': 1, - 'whitelist': [LEADER1, ROUTER2, ROUTER1] - }, - ED1: { - 'is_mtd': True, - 'mode': 'rsn', - 'panid': 0xface, - 'whitelist': [ROUTER1] - }, - } - - def _setUpRouter3(self): - self.nodes[ROUTER3].add_whitelist(self.nodes[LEADER1].get_addr64()) - self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER2].get_addr64()) - self.nodes[ROUTER3].add_whitelist(self.nodes[ROUTER1].get_addr64()) - self.nodes[ROUTER3].enable_whitelist() - self.nodes[ROUTER3].set_router_selection_jitter(1) - - def test(self): - self.nodes[LEADER1].start() - self.simulator.go(5) - self.assertEqual(self.nodes[LEADER1].get_state(), 'leader') - - self.nodes[ROUTER3].start() - self.simulator.go(5) - self.assertEqual(self.nodes[ROUTER3].get_state(), 'router') - - self.nodes[ROUTER2].start() - self.simulator.go(5) - self.assertEqual(self.nodes[ROUTER2].get_state(), 'router') - - self.nodes[ROUTER1].start() - self.simulator.go(5) - self.assertEqual(self.nodes[ROUTER1].get_state(), 'router') - - self.nodes[ED1].start() - self.simulator.go(5) - self.assertEqual(self.nodes[ED1].get_state(), 'child') - - addrs = self.nodes[ED1].get_addrs() - for addr in addrs: - if addr[0:4] != 'fe80': - self.assertTrue(self.nodes[LEADER1].ping(addr)) - - self.nodes[ROUTER3].reset() - self._setUpRouter3() - self.simulator.go(140) - - self.nodes[ROUTER3].start() - self.simulator.go(60) - - addrs = self.nodes[ED1].get_addrs() - for addr in addrs: - if addr[0:4] != 'fe80': - self.assertTrue(self.nodes[LEADER1].ping(addr)) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/scripts/thread-cert/Cert_5_6_08_ContextManagement.py b/tests/scripts/thread-cert/Cert_5_6_08_ContextManagement.py deleted file mode 100755 index 827a20129..000000000 --- a/tests/scripts/thread-cert/Cert_5_6_08_ContextManagement.py +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2016, The OpenThread Authors. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the copyright holder nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -import unittest - -import thread_cert - -LEADER = 1 -ROUTER = 2 -ED = 3 - - -class Cert_5_6_8_ContextManagement(thread_cert.TestCase): - TOPOLOGY = { - LEADER: { - 'context_reuse_delay': 10, - 'mode': 'rsdn', - 'panid': 0xface, - 'whitelist': [ROUTER, ED] - }, - ROUTER: { - 'mode': 'rsdn', - 'panid': 0xface, - 'router_selection_jitter': 1, - 'whitelist': [LEADER] - }, - ED: { - 'is_mtd': True, - 'mode': 'rsn', - 'panid': 0xface, - 'whitelist': [LEADER] - }, - } - - def test(self): - self.nodes[LEADER].start() - self.simulator.go(4) - self.assertEqual(self.nodes[LEADER].get_state(), 'leader') - - self.nodes[ROUTER].start() - self.simulator.go(5) - self.assertEqual(self.nodes[ROUTER].get_state(), 'router') - - self.nodes[ED].start() - self.simulator.go(5) - self.assertEqual(self.nodes[ED].get_state(), 'child') - - self.nodes[ROUTER].add_prefix('2001:2:0:1::/64', 'paros') - self.nodes[ROUTER].register_netdata() - - # Set lowpan context of sniffer - self.simulator.set_lowpan_context(1, '2001:2:0:1::/64') - - self.simulator.go(2) - - addrs = self.nodes[LEADER].get_addrs() - self.assertTrue(any('2001:2:0:1' in addr[0:10] for addr in addrs)) - for addr in addrs: - if addr[0:3] == '200': - self.assertTrue(self.nodes[ED].ping(addr)) - - self.nodes[ROUTER].remove_prefix('2001:2:0:1::/64') - self.nodes[ROUTER].register_netdata() - self.simulator.go(5) - - addrs = self.nodes[LEADER].get_addrs() - self.assertFalse(any('2001:2:0:1' in addr[0:10] for addr in addrs)) - for addr in addrs: - if addr[0:3] == '200': - self.assertTrue(self.nodes[ED].ping(addr)) - - self.nodes[ROUTER].add_prefix('2001:2:0:2::/64', 'paros') - self.nodes[ROUTER].register_netdata() - - # Set lowpan context of sniffer - self.simulator.set_lowpan_context(2, '2001:2:0:2::/64') - - self.simulator.go(5) - - addrs = self.nodes[LEADER].get_addrs() - self.assertFalse(any('2001:2:0:1' in addr[0:10] for addr in addrs)) - self.assertTrue(any('2001:2:0:2' in addr[0:10] for addr in addrs)) - for addr in addrs: - if addr[0:3] == '200': - self.assertTrue(self.nodes[ED].ping(addr)) - - self.simulator.go(5) - self.nodes[ROUTER].add_prefix('2001:2:0:3::/64', 'paros') - self.nodes[ROUTER].register_netdata() - - # Set lowpan context of sniffer - self.simulator.set_lowpan_context(3, '2001:2:0:3::/64') - - self.simulator.go(5) - - addrs = self.nodes[LEADER].get_addrs() - self.assertFalse(any('2001:2:0:1' in addr[0:10] for addr in addrs)) - self.assertTrue(any('2001:2:0:2' in addr[0:10] for addr in addrs)) - self.assertTrue(any('2001:2:0:3' in addr[0:10] for addr in addrs)) - for addr in addrs: - if addr[0:3] == '200': - self.assertTrue(self.nodes[ED].ping(addr)) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/scripts/thread-cert/Cert_5_8_01_KeySynchronization.py b/tests/scripts/thread-cert/Cert_5_8_01_KeySynchronization.py deleted file mode 100755 index 2068990c7..000000000 --- a/tests/scripts/thread-cert/Cert_5_8_01_KeySynchronization.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (c) 2016, The OpenThread Authors. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the copyright holder nor the -# names of its contributors may be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -import unittest - -import thread_cert - -LEADER = 1 -ED = 2 - - -class Cert_5_8_1_KeySynchronization(thread_cert.TestCase): - TOPOLOGY = { - LEADER: { - 'key_switch_guardtime': 0, - 'mode': 'rsdn', - 'panid': 0xface, - 'whitelist': [ED] - }, - ED: { - 'is_mtd': True, - 'key_switch_guardtime': 0, - 'mode': 'rsn', - 'panid': 0xface, - 'whitelist': [LEADER] - }, - } - - def test(self): - self.nodes[LEADER].start() - self.simulator.go(4) - self.assertEqual(self.nodes[LEADER].get_state(), 'leader') - - self.nodes[ED].start() - self.simulator.go(5) - self.assertEqual(self.nodes[ED].get_state(), 'child') - - addrs = self.nodes[LEADER].get_addrs() - for addr in addrs: - if 'ff:fe00' not in addr: - self.assertTrue(self.nodes[ED].ping(addr)) - - key_sequence_counter = self.nodes[ED].get_key_sequence_counter() - self.nodes[ED].set_key_sequence_counter(key_sequence_counter + 10) - - addrs = self.nodes[LEADER].get_addrs() - for addr in addrs: - if 'ff:fe00' not in addr: - self.assertFalse(self.nodes[ED].ping(addr)) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/scripts/thread-cert/Makefile.am b/tests/scripts/thread-cert/Makefile.am index a0b25c9b7..bf923fd34 100644 --- a/tests/scripts/thread-cert/Makefile.am +++ b/tests/scripts/thread-cert/Makefile.am @@ -68,7 +68,6 @@ EXTRA_DIST = \ Cert_5_5_04_SplitMergeRouters.py \ Cert_5_5_05_SplitMergeREED.py \ Cert_5_5_07_SplitMergeThreeWay.py \ - Cert_5_5_08_SplitRoutersLostLeader.py \ Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py \ Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py \ Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py \ @@ -76,10 +75,8 @@ EXTRA_DIST = \ Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py \ Cert_5_6_06_NetworkDataExpiration.py \ Cert_5_6_07_NetworkDataRequestREED.py \ - Cert_5_6_08_ContextManagement.py \ Cert_5_6_09_NetworkDataForwarding.py \ Cert_5_7_01_CoapDiagCommands_A.py \ - Cert_5_8_01_KeySynchronization.py \ Cert_5_8_02_KeyIncrement.py \ Cert_5_8_03_KeyIncrementRollOver.py \ Cert_6_1_01_RouterAttach.py \ @@ -223,7 +220,6 @@ check_SCRIPTS = \ Cert_5_5_04_SplitMergeRouters.py \ Cert_5_5_05_SplitMergeREED.py \ Cert_5_5_07_SplitMergeThreeWay.py \ - Cert_5_5_08_SplitRoutersLostLeader.py \ Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py \ Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py \ Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py \ @@ -231,10 +227,8 @@ check_SCRIPTS = \ Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py \ Cert_5_6_06_NetworkDataExpiration.py \ Cert_5_6_07_NetworkDataRequestREED.py \ - Cert_5_6_08_ContextManagement.py \ Cert_5_6_09_NetworkDataForwarding.py \ Cert_5_7_01_CoapDiagCommands_A.py \ - Cert_5_8_01_KeySynchronization.py \ Cert_5_8_02_KeyIncrement.py \ Cert_5_8_03_KeyIncrementRollOver.py \ Cert_6_1_01_RouterAttach.py \