diff --git a/configure.ac b/configure.ac index bb98fa375..d9e0fce42 100644 --- a/configure.ac +++ b/configure.ac @@ -1110,6 +1110,7 @@ tools/spinel-cli/Makefile tools/spinel-cli/spinel/Makefile tests/Makefile tests/scripts/Makefile +tests/scripts/thread-cert/Makefile tests/unit/Makefile doc/Makefile ]) diff --git a/tests/scripts/Makefile.am b/tests/scripts/Makefile.am index 5d8e65a5a..b7fc379ea 100644 --- a/tests/scripts/Makefile.am +++ b/tests/scripts/Makefile.am @@ -1,5 +1,5 @@ # -# Copyright (c) 2016, The OpenThread Authors. +# Copyright (c) 2016-2017, The OpenThread Authors. # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,300 +28,29 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am -LOG_DRIVER=$(abs_top_srcdir)/third_party/openthread-test-driver/test-driver +# Always package (e.g. for 'make dist') these subdirectories. -EXTRA_DIST = \ - thread-cert/Cert_5_1_01_RouterAttach.py \ - thread-cert/Cert_5_1_02_ChildAddressTimeout.py \ - thread-cert/Cert_5_1_03_RouterAddressReallocation.py \ - thread-cert/Cert_5_1_04_RouterAddressReallocation.py \ - thread-cert/Cert_5_1_05_RouterAddressTimeout.py \ - thread-cert/Cert_5_1_06_RemoveRouterId.py \ - thread-cert/Cert_5_1_07_MaxChildCount.py \ - thread-cert/Cert_5_1_08_RouterAttachConnectivity.py \ - thread-cert/Cert_5_1_09_REEDAttachConnectivity.py \ - thread-cert/Cert_5_1_10_RouterAttachLinkQuality.py \ - thread-cert/Cert_5_1_11_REEDAttachLinkQuality.py \ - thread-cert/Cert_5_1_12_NewRouterNeighborSync.py \ - thread-cert/Cert_5_1_13_RouterReset.py \ - thread-cert/Cert_5_2_01_BecomeActiveRouter.py \ - thread-cert/Cert_5_2_02_LeaderReject1Hop.py \ - thread-cert/Cert_5_2_03_LeaderReject2Hops.py \ - thread-cert/Cert_5_2_04_REEDUpgrade.py \ - thread-cert/Cert_5_2_05_AddressQuery.py \ - thread-cert/Cert_5_2_06_RouterDowngrade.py \ - thread-cert/Cert_5_2_07_REEDSynchronization.py \ - thread-cert/Cert_5_3_01_LinkLocal.py \ - thread-cert/Cert_5_3_02_RealmLocal.py \ - thread-cert/Cert_5_3_03_AddressQuery.py \ - thread-cert/Cert_5_3_04_AddressMapCache.py \ - thread-cert/Cert_5_3_05_RoutingLinkQuality.py \ - thread-cert/Cert_5_3_06_RouterIdMask.py \ - thread-cert/Cert_5_3_06b_RouterIdMask.py \ - thread-cert/Cert_5_3_07_DuplicateAddress.py \ - thread-cert/Cert_5_3_08_ChildAddressSet.py \ - thread-cert/Cert_5_3_09_AddressQuery.py \ - thread-cert/Cert_5_3_10_AddressQuery.py \ - thread-cert/Cert_5_5_01_LeaderReset.py \ - thread-cert/Cert_5_5_02_LeaderReboot.py \ - thread-cert/Cert_5_5_03_SplitMergeChildren.py \ - thread-cert/Cert_5_5_04_SplitMergeRouters.py \ - thread-cert/Cert_5_5_05_SplitMergeREED.py \ - thread-cert/Cert_5_5_07_SplitMergeThreeWay.py \ - thread-cert/Cert_5_5_08_SplitRoutersLostLeader.py \ - thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py \ - thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py \ - thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py \ - thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py \ - thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py \ - thread-cert/Cert_5_6_06_NetworkDataExpiration.py \ - thread-cert/Cert_5_6_07_NetworkDataRequestREED.py \ - thread-cert/Cert_5_6_08_ContextManagement.py \ - thread-cert/Cert_5_6_09_NetworkDataForwarding.py \ - thread-cert/Cert_5_8_01_KeySynchronization.py \ - thread-cert/Cert_5_8_02_KeyIncrement.py \ - thread-cert/Cert_5_8_03_KeyIncrementRollOver.py \ - thread-cert/Cert_6_1_01_RouterAttach.py \ - thread-cert/Cert_6_1_02_REEDAttach.py \ - thread-cert/Cert_6_1_03_RouterAttachConnectivity.py \ - thread-cert/Cert_6_1_04_REEDAttachConnectivity.py \ - thread-cert/Cert_6_1_05_RouterAttachLinkQuality.py \ - thread-cert/Cert_6_1_06_REEDAttachLinkQuality.py \ - thread-cert/Cert_6_1_07_EDSynchronization.py \ - thread-cert/Cert_6_2_01_NewPartition.py \ - thread-cert/Cert_6_2_02_NewPartition.py \ - thread-cert/Cert_6_3_01_OrphanReattach.py \ - thread-cert/Cert_6_3_02_NetworkDataUpdate.py \ - thread-cert/Cert_6_4_01_LinkLocal.py \ - thread-cert/Cert_6_4_02_RealmLocal.py \ - thread-cert/Cert_6_5_01_ChildResetSynchronize.py \ - thread-cert/Cert_6_5_02_ChildResetReattach.py \ - thread-cert/Cert_6_6_01_KeyIncrement.py \ - thread-cert/Cert_6_6_02_KeyIncrementRollOver.py \ - thread-cert/Cert_7_1_01_BorderRouterAsLeader.py \ - thread-cert/Cert_7_1_02_BorderRouterAsRouter.py \ - thread-cert/Cert_7_1_03_BorderRouterAsLeader.py \ - thread-cert/Cert_7_1_04_BorderRouterAsRouter.py \ - thread-cert/Cert_7_1_05_BorderRouterAsRouter.py \ - thread-cert/Cert_8_1_01_Commissioning.py \ - thread-cert/Cert_8_1_02_Commissioning.py \ - thread-cert/Cert_8_2_01_JoinerRouter.py \ - thread-cert/Cert_8_2_02_JoinerRouter.py \ - thread-cert/Cert_9_2_04_ActiveDataset.py \ - thread-cert/Cert_9_2_07_DelayTimer.py \ - thread-cert/Cert_9_2_08_PersistentDatasets.py \ - thread-cert/Cert_9_2_09_PendingPartition.py \ - thread-cert/Cert_9_2_10_PendingPartition.py \ - thread-cert/Cert_9_2_11_MasterKey.py \ - thread-cert/Cert_9_2_12_Announce.py \ - thread-cert/Cert_9_2_13_EnergyScan.py \ - thread-cert/Cert_9_2_14_PanIdQuery.py \ - thread-cert/Cert_9_2_15_PendingPartition.py \ - thread-cert/Cert_9_2_16_ActivePendingPartition.py \ - thread-cert/Cert_9_2_17_Orphan.py \ - thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py \ - thread-cert/coap.py \ - thread-cert/common.py \ - thread-cert/config.py \ - thread-cert/ipv6.py \ - thread-cert/lowpan.py \ - thread-cert/mac802154.py \ - thread-cert/message.py \ - thread-cert/mle.py \ - thread-cert/net_crypto.py \ - thread-cert/network_data.py \ - thread-cert/network_layer.py \ - thread-cert/node.py \ - thread-cert/node_cli.py \ - thread-cert/sniffer.py \ - thread-cert/sniffer_transport.py \ - thread-cert/test_coap.py \ - thread-cert/test_common.py \ - thread-cert/test_crypto.py \ - thread-cert/test_ipv6.py \ - thread-cert/test_lowpan.py \ - thread-cert/test_mac802154.py \ - thread-cert/test_mle.py \ - thread-cert/test_network_data.py \ - thread-cert/test_network_layer.py \ +DIST_SUBDIRS = \ + thread-cert \ $(NULL) -if OPENTHREAD_BUILD_TESTS +# Always build (e.g. for 'make all') these subdirectories. -# First, list all essential program and script tests that MUST be run. - -check_PROGRAMS = - -check_SCRIPTS = \ - thread-cert/test_coap.py \ - thread-cert/test_common.py \ - thread-cert/test_crypto.py \ - thread-cert/test_ipv6.py \ - thread-cert/test_lowpan.py \ - thread-cert/test_mac802154.py \ - thread-cert/test_mle.py \ - thread-cert/test_network_data.py \ - thread-cert/test_network_layer.py \ +SUBDIRS = \ $(NULL) -if OPENTHREAD_TESTS_SUBSET1 - -check_SCRIPTS += \ - thread-cert/Cert_5_1_01_RouterAttach.py \ - thread-cert/Cert_5_1_02_ChildAddressTimeout.py \ - thread-cert/Cert_5_1_03_RouterAddressReallocation.py \ - thread-cert/Cert_5_1_04_RouterAddressReallocation.py \ - thread-cert/Cert_5_1_05_RouterAddressTimeout.py \ - thread-cert/Cert_5_1_06_RemoveRouterId.py \ - thread-cert/Cert_5_1_07_MaxChildCount.py \ - thread-cert/Cert_5_1_08_RouterAttachConnectivity.py \ - thread-cert/Cert_5_1_09_REEDAttachConnectivity.py \ +if OPENTHREAD_EXAMPLES_POSIX +if OPENTHREAD_ENABLE_CLI +SUBDIRS += \ + thread-cert \ $(NULL) +endif +endif -endif # OPENTHREAD_TESTS_SUBSET1 +# Always pretty (e.g. for 'make pretty') these subdirectories. -if OPENTHREAD_TESTS_SUBSET2 - -check_SCRIPTS += \ - thread-cert/Cert_5_1_10_RouterAttachLinkQuality.py \ - thread-cert/Cert_5_1_11_REEDAttachLinkQuality.py \ - thread-cert/Cert_5_1_12_NewRouterNeighborSync.py \ - thread-cert/Cert_5_1_13_RouterReset.py \ - thread-cert/Cert_5_2_01_BecomeActiveRouter.py \ - thread-cert/Cert_5_2_02_LeaderReject1Hop.py \ - thread-cert/Cert_5_2_03_LeaderReject2Hops.py \ - thread-cert/Cert_5_2_04_REEDUpgrade.py \ - thread-cert/Cert_5_2_05_AddressQuery.py \ - thread-cert/Cert_5_2_06_RouterDowngrade.py \ - thread-cert/Cert_5_2_07_REEDSynchronization.py \ - thread-cert/Cert_5_3_01_LinkLocal.py \ - thread-cert/Cert_5_3_02_RealmLocal.py \ - thread-cert/Cert_5_3_03_AddressQuery.py \ - thread-cert/Cert_5_3_04_AddressMapCache.py \ - thread-cert/Cert_5_3_05_RoutingLinkQuality.py \ +PRETTY_SUBDIRS = \ $(NULL) -endif # OPENTHREAD_TESTS_SUBSET2 - -if OPENTHREAD_TESTS_SUBSET3 - -check_SCRIPTS += \ - thread-cert/Cert_5_3_06_RouterIdMask.py \ - thread-cert/Cert_5_3_06b_RouterIdMask.py \ - thread-cert/Cert_5_3_07_DuplicateAddress.py \ - thread-cert/Cert_5_3_08_ChildAddressSet.py \ - thread-cert/Cert_5_3_09_AddressQuery.py \ - thread-cert/Cert_5_3_10_AddressQuery.py \ - thread-cert/Cert_5_5_01_LeaderReset.py \ - thread-cert/Cert_5_5_02_LeaderReboot.py \ - $(NULL) - -endif # OPENTHREAD_TESTS_SUBSET3 - -if OPENTHREAD_TESTS_SUBSET4 - -check_SCRIPTS += \ - thread-cert/Cert_5_5_03_SplitMergeChildren.py \ - thread-cert/Cert_5_5_04_SplitMergeRouters.py \ - thread-cert/Cert_5_5_05_SplitMergeREED.py \ - thread-cert/Cert_5_5_07_SplitMergeThreeWay.py \ - thread-cert/Cert_5_5_08_SplitRoutersLostLeader.py \ - thread-cert/Cert_5_6_01_NetworkDataRegisterBeforeAttachLeader.py \ - thread-cert/Cert_5_6_02_NetworkDataRegisterBeforeAttachRouter.py \ - $(NULL) - -endif # OPENTHREAD_TESTS_SUBSET4 - -if OPENTHREAD_TESTS_SUBSET5 - -check_SCRIPTS += \ - thread-cert/Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py \ - thread-cert/Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py \ - thread-cert/Cert_5_6_05_NetworkDataRegisterAfterAttachRouter.py \ - thread-cert/Cert_5_6_06_NetworkDataExpiration.py \ - thread-cert/Cert_5_6_07_NetworkDataRequestREED.py \ - thread-cert/Cert_5_6_08_ContextManagement.py \ - thread-cert/Cert_5_6_09_NetworkDataForwarding.py \ - thread-cert/Cert_5_8_01_KeySynchronization.py \ - thread-cert/Cert_5_8_02_KeyIncrement.py \ - thread-cert/Cert_5_8_03_KeyIncrementRollOver.py \ - thread-cert/Cert_6_1_01_RouterAttach.py \ - thread-cert/Cert_6_1_02_REEDAttach.py \ - thread-cert/Cert_6_1_03_RouterAttachConnectivity.py \ - thread-cert/Cert_6_1_04_REEDAttachConnectivity.py \ - thread-cert/Cert_6_1_05_RouterAttachLinkQuality.py \ - thread-cert/Cert_6_1_06_REEDAttachLinkQuality.py \ - thread-cert/Cert_6_1_07_EDSynchronization.py \ - thread-cert/Cert_6_2_01_NewPartition.py \ - thread-cert/Cert_6_2_02_NewPartition.py \ - thread-cert/Cert_6_3_01_OrphanReattach.py \ - thread-cert/Cert_6_3_02_NetworkDataUpdate.py \ - thread-cert/Cert_6_4_01_LinkLocal.py \ - thread-cert/Cert_6_4_02_RealmLocal.py \ - thread-cert/Cert_6_5_01_ChildResetSynchronize.py \ - thread-cert/Cert_6_5_02_ChildResetReattach.py \ - thread-cert/Cert_6_6_01_KeyIncrement.py \ - thread-cert/Cert_6_6_02_KeyIncrementRollOver.py \ - thread-cert/Cert_7_1_01_BorderRouterAsLeader.py \ - thread-cert/Cert_7_1_02_BorderRouterAsRouter.py \ - thread-cert/Cert_7_1_03_BorderRouterAsLeader.py \ - thread-cert/Cert_7_1_04_BorderRouterAsRouter.py \ - thread-cert/Cert_7_1_05_BorderRouterAsRouter.py \ - thread-cert/Cert_8_1_01_Commissioning.py \ - thread-cert/Cert_8_1_02_Commissioning.py \ - thread-cert/Cert_8_2_01_JoinerRouter.py \ - thread-cert/Cert_8_2_02_JoinerRouter.py \ - thread-cert/Cert_9_2_04_ActiveDataset.py \ - thread-cert/Cert_9_2_07_DelayTimer.py \ - thread-cert/Cert_9_2_08_PersistentDatasets.py \ - thread-cert/Cert_9_2_09_PendingPartition.py \ - thread-cert/Cert_9_2_10_PendingPartition.py \ - thread-cert/Cert_9_2_11_MasterKey.py \ - thread-cert/Cert_9_2_12_Announce.py \ - thread-cert/Cert_9_2_13_EnergyScan.py \ - thread-cert/Cert_9_2_14_PanIdQuery.py \ - thread-cert/Cert_9_2_15_PendingPartition.py \ - thread-cert/Cert_9_2_16_ActivePendingPartition.py \ - thread-cert/Cert_9_2_17_Orphan.py \ - thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py \ - $(NULL) - -endif # OPENTHREAD_TESTS_SUBSET5 - -TESTS_ENVIRONMENT = \ - export \ - top_builddir='$(top_builddir)' \ - VERBOSE=1; \ - $(NULL) - -TESTS = \ - $(check_PROGRAMS) \ - $(check_SCRIPTS) \ - $(NULL) - -XFAIL_NCP_TESTS = \ - thread-cert/Cert_5_3_09_AddressQuery.py \ - thread-cert/Cert_8_1_01_Commissioning.py \ - thread-cert/Cert_8_1_02_Commissioning.py \ - thread-cert/Cert_8_2_01_JoinerRouter.py \ - thread-cert/Cert_8_2_02_JoinerRouter.py \ - thread-cert/Cert_9_2_04_ActiveDataset.py \ - thread-cert/Cert_9_2_07_DelayTimer.py \ - thread-cert/Cert_9_2_08_PersistentDatasets.py \ - thread-cert/Cert_9_2_09_PendingPartition.py \ - thread-cert/Cert_9_2_10_PendingPartition.py \ - thread-cert/Cert_9_2_11_MasterKey.py \ - thread-cert/Cert_9_2_12_Announce.py \ - thread-cert/Cert_9_2_13_EnergyScan.py \ - thread-cert/Cert_9_2_14_PanIdQuery.py \ - thread-cert/Cert_9_2_15_PendingPartition.py \ - thread-cert/Cert_9_2_16_ActivePendingPartition.py \ - thread-cert/Cert_9_2_17_Orphan.py \ - thread-cert/Cert_9_2_18_RollBackActiveTimestamp.py \ - $(NULL) - -XFAIL_TESTS = $(if $(filter $(NODE_TYPE),ncp-sim),$(XFAIL_NCP_TESTS)) - -endif # OPENTHREAD_BUILD_TESTS - include $(abs_top_nlbuild_autotools_dir)/automake/post.am + diff --git a/tests/scripts/thread-cert/Makefile.am b/tests/scripts/thread-cert/Makefile.am new file mode 100644 index 000000000..d8774764c --- /dev/null +++ b/tests/scripts/thread-cert/Makefile.am @@ -0,0 +1,327 @@ +# +# Copyright (c) 2016-2017, 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. +# + +include $(abs_top_nlbuild_autotools_dir)/automake/pre.am + +LOG_DRIVER=$(abs_top_srcdir)/third_party/openthread-test-driver/test-driver + +EXTRA_DIST = \ + Cert_5_1_01_RouterAttach.py \ + Cert_5_1_02_ChildAddressTimeout.py \ + Cert_5_1_03_RouterAddressReallocation.py \ + Cert_5_1_04_RouterAddressReallocation.py \ + Cert_5_1_05_RouterAddressTimeout.py \ + Cert_5_1_06_RemoveRouterId.py \ + Cert_5_1_07_MaxChildCount.py \ + Cert_5_1_08_RouterAttachConnectivity.py \ + Cert_5_1_09_REEDAttachConnectivity.py \ + Cert_5_1_10_RouterAttachLinkQuality.py \ + Cert_5_1_11_REEDAttachLinkQuality.py \ + Cert_5_1_12_NewRouterNeighborSync.py \ + Cert_5_1_13_RouterReset.py \ + Cert_5_2_01_BecomeActiveRouter.py \ + Cert_5_2_02_LeaderReject1Hop.py \ + Cert_5_2_03_LeaderReject2Hops.py \ + Cert_5_2_04_REEDUpgrade.py \ + Cert_5_2_05_AddressQuery.py \ + Cert_5_2_06_RouterDowngrade.py \ + Cert_5_2_07_REEDSynchronization.py \ + Cert_5_3_01_LinkLocal.py \ + Cert_5_3_02_RealmLocal.py \ + Cert_5_3_03_AddressQuery.py \ + Cert_5_3_04_AddressMapCache.py \ + Cert_5_3_05_RoutingLinkQuality.py \ + Cert_5_3_06_RouterIdMask.py \ + Cert_5_3_06b_RouterIdMask.py \ + Cert_5_3_07_DuplicateAddress.py \ + Cert_5_3_08_ChildAddressSet.py \ + Cert_5_3_09_AddressQuery.py \ + Cert_5_3_10_AddressQuery.py \ + Cert_5_5_01_LeaderReset.py \ + Cert_5_5_02_LeaderReboot.py \ + Cert_5_5_03_SplitMergeChildren.py \ + 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 \ + Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py \ + 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_8_01_KeySynchronization.py \ + Cert_5_8_02_KeyIncrement.py \ + Cert_5_8_03_KeyIncrementRollOver.py \ + Cert_6_1_01_RouterAttach.py \ + Cert_6_1_02_REEDAttach.py \ + Cert_6_1_03_RouterAttachConnectivity.py \ + Cert_6_1_04_REEDAttachConnectivity.py \ + Cert_6_1_05_RouterAttachLinkQuality.py \ + Cert_6_1_06_REEDAttachLinkQuality.py \ + Cert_6_1_07_EDSynchronization.py \ + Cert_6_2_01_NewPartition.py \ + Cert_6_2_02_NewPartition.py \ + Cert_6_3_01_OrphanReattach.py \ + Cert_6_3_02_NetworkDataUpdate.py \ + Cert_6_4_01_LinkLocal.py \ + Cert_6_4_02_RealmLocal.py \ + Cert_6_5_01_ChildResetSynchronize.py \ + Cert_6_5_02_ChildResetReattach.py \ + Cert_6_6_01_KeyIncrement.py \ + Cert_6_6_02_KeyIncrementRollOver.py \ + Cert_7_1_01_BorderRouterAsLeader.py \ + Cert_7_1_02_BorderRouterAsRouter.py \ + Cert_7_1_03_BorderRouterAsLeader.py \ + Cert_7_1_04_BorderRouterAsRouter.py \ + Cert_7_1_05_BorderRouterAsRouter.py \ + Cert_8_1_01_Commissioning.py \ + Cert_8_1_02_Commissioning.py \ + Cert_8_2_01_JoinerRouter.py \ + Cert_8_2_02_JoinerRouter.py \ + Cert_9_2_04_ActiveDataset.py \ + Cert_9_2_07_DelayTimer.py \ + Cert_9_2_08_PersistentDatasets.py \ + Cert_9_2_09_PendingPartition.py \ + Cert_9_2_10_PendingPartition.py \ + Cert_9_2_11_MasterKey.py \ + Cert_9_2_12_Announce.py \ + Cert_9_2_13_EnergyScan.py \ + Cert_9_2_14_PanIdQuery.py \ + Cert_9_2_15_PendingPartition.py \ + Cert_9_2_16_ActivePendingPartition.py \ + Cert_9_2_17_Orphan.py \ + Cert_9_2_18_RollBackActiveTimestamp.py \ + coap.py \ + common.py \ + config.py \ + ipv6.py \ + lowpan.py \ + mac802154.py \ + message.py \ + mle.py \ + net_crypto.py \ + network_data.py \ + network_layer.py \ + node.py \ + node_cli.py \ + sniffer.py \ + sniffer_transport.py \ + test_coap.py \ + test_common.py \ + test_crypto.py \ + test_ipv6.py \ + test_lowpan.py \ + test_mac802154.py \ + test_mle.py \ + test_network_data.py \ + test_network_layer.py \ + $(NULL) + +if OPENTHREAD_BUILD_TESTS + +# First, list all essential program and script tests that MUST be run. + +check_PROGRAMS = + +check_SCRIPTS = \ + test_coap.py \ + test_common.py \ + test_crypto.py \ + test_ipv6.py \ + test_lowpan.py \ + test_mac802154.py \ + test_mle.py \ + test_network_data.py \ + test_network_layer.py \ + $(NULL) + +if OPENTHREAD_TESTS_SUBSET1 + +check_SCRIPTS += \ + Cert_5_1_01_RouterAttach.py \ + Cert_5_1_02_ChildAddressTimeout.py \ + Cert_5_1_03_RouterAddressReallocation.py \ + Cert_5_1_04_RouterAddressReallocation.py \ + Cert_5_1_05_RouterAddressTimeout.py \ + Cert_5_1_06_RemoveRouterId.py \ + Cert_5_1_07_MaxChildCount.py \ + Cert_5_1_08_RouterAttachConnectivity.py \ + Cert_5_1_09_REEDAttachConnectivity.py \ + $(NULL) + +endif # OPENTHREAD_TESTS_SUBSET1 + +if OPENTHREAD_TESTS_SUBSET2 + +check_SCRIPTS += \ + Cert_5_1_10_RouterAttachLinkQuality.py \ + Cert_5_1_11_REEDAttachLinkQuality.py \ + Cert_5_1_12_NewRouterNeighborSync.py \ + Cert_5_1_13_RouterReset.py \ + Cert_5_2_01_BecomeActiveRouter.py \ + Cert_5_2_02_LeaderReject1Hop.py \ + Cert_5_2_03_LeaderReject2Hops.py \ + Cert_5_2_04_REEDUpgrade.py \ + Cert_5_2_05_AddressQuery.py \ + Cert_5_2_06_RouterDowngrade.py \ + Cert_5_2_07_REEDSynchronization.py \ + Cert_5_3_01_LinkLocal.py \ + Cert_5_3_02_RealmLocal.py \ + Cert_5_3_03_AddressQuery.py \ + Cert_5_3_04_AddressMapCache.py \ + Cert_5_3_05_RoutingLinkQuality.py \ + $(NULL) + +endif # OPENTHREAD_TESTS_SUBSET2 + +if OPENTHREAD_TESTS_SUBSET3 + +check_SCRIPTS += \ + Cert_5_3_06_RouterIdMask.py \ + Cert_5_3_06b_RouterIdMask.py \ + Cert_5_3_07_DuplicateAddress.py \ + Cert_5_3_08_ChildAddressSet.py \ + Cert_5_3_09_AddressQuery.py \ + Cert_5_3_10_AddressQuery.py \ + Cert_5_5_01_LeaderReset.py \ + Cert_5_5_02_LeaderReboot.py \ + $(NULL) + +endif # OPENTHREAD_TESTS_SUBSET3 + +if OPENTHREAD_TESTS_SUBSET4 + +check_SCRIPTS += \ + Cert_5_5_03_SplitMergeChildren.py \ + 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 \ + $(NULL) + +endif # OPENTHREAD_TESTS_SUBSET4 + +if OPENTHREAD_TESTS_SUBSET5 + +check_SCRIPTS += \ + Cert_5_6_03_NetworkDataRegisterAfterAttachLeader.py \ + Cert_5_6_04_NetworkDataRegisterAfterAttachRouter.py \ + 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_8_01_KeySynchronization.py \ + Cert_5_8_02_KeyIncrement.py \ + Cert_5_8_03_KeyIncrementRollOver.py \ + Cert_6_1_01_RouterAttach.py \ + Cert_6_1_02_REEDAttach.py \ + Cert_6_1_03_RouterAttachConnectivity.py \ + Cert_6_1_04_REEDAttachConnectivity.py \ + Cert_6_1_05_RouterAttachLinkQuality.py \ + Cert_6_1_06_REEDAttachLinkQuality.py \ + Cert_6_1_07_EDSynchronization.py \ + Cert_6_2_01_NewPartition.py \ + Cert_6_2_02_NewPartition.py \ + Cert_6_3_01_OrphanReattach.py \ + Cert_6_3_02_NetworkDataUpdate.py \ + Cert_6_4_01_LinkLocal.py \ + Cert_6_4_02_RealmLocal.py \ + Cert_6_5_01_ChildResetSynchronize.py \ + Cert_6_5_02_ChildResetReattach.py \ + Cert_6_6_01_KeyIncrement.py \ + Cert_6_6_02_KeyIncrementRollOver.py \ + Cert_7_1_01_BorderRouterAsLeader.py \ + Cert_7_1_02_BorderRouterAsRouter.py \ + Cert_7_1_03_BorderRouterAsLeader.py \ + Cert_7_1_04_BorderRouterAsRouter.py \ + Cert_7_1_05_BorderRouterAsRouter.py \ + Cert_8_1_01_Commissioning.py \ + Cert_8_1_02_Commissioning.py \ + Cert_8_2_01_JoinerRouter.py \ + Cert_8_2_02_JoinerRouter.py \ + Cert_9_2_04_ActiveDataset.py \ + Cert_9_2_07_DelayTimer.py \ + Cert_9_2_08_PersistentDatasets.py \ + Cert_9_2_09_PendingPartition.py \ + Cert_9_2_10_PendingPartition.py \ + Cert_9_2_11_MasterKey.py \ + Cert_9_2_12_Announce.py \ + Cert_9_2_13_EnergyScan.py \ + Cert_9_2_14_PanIdQuery.py \ + Cert_9_2_15_PendingPartition.py \ + Cert_9_2_16_ActivePendingPartition.py \ + Cert_9_2_17_Orphan.py \ + Cert_9_2_18_RollBackActiveTimestamp.py \ + $(NULL) + +endif # OPENTHREAD_TESTS_SUBSET5 + +TESTS_ENVIRONMENT = \ + export \ + top_builddir='$(top_builddir)' \ + VERBOSE=1; \ + $(NULL) + +TESTS = \ + $(check_PROGRAMS) \ + $(check_SCRIPTS) \ + $(NULL) + +XFAIL_NCP_TESTS = \ + Cert_5_3_09_AddressQuery.py \ + Cert_8_1_01_Commissioning.py \ + Cert_8_1_02_Commissioning.py \ + Cert_8_2_01_JoinerRouter.py \ + Cert_8_2_02_JoinerRouter.py \ + Cert_9_2_04_ActiveDataset.py \ + Cert_9_2_07_DelayTimer.py \ + Cert_9_2_08_PersistentDatasets.py \ + Cert_9_2_09_PendingPartition.py \ + Cert_9_2_10_PendingPartition.py \ + Cert_9_2_11_MasterKey.py \ + Cert_9_2_12_Announce.py \ + Cert_9_2_13_EnergyScan.py \ + Cert_9_2_14_PanIdQuery.py \ + Cert_9_2_15_PendingPartition.py \ + Cert_9_2_16_ActivePendingPartition.py \ + Cert_9_2_17_Orphan.py \ + Cert_9_2_18_RollBackActiveTimestamp.py \ + $(NULL) + +XFAIL_TESTS = $(if $(filter $(NODE_TYPE),ncp-sim),$(XFAIL_NCP_TESTS)) + +endif # OPENTHREAD_BUILD_TESTS + +include $(abs_top_nlbuild_autotools_dir)/automake/post.am