#
#    Copyright (c) 2018-2019 Google LLC
#    Copyright (c) 2014-2018 Nest Labs, Inc.
#    All rights reserved.
#
#    Licensed under the Apache License, Version 2.0 (the "License");
#    you may not use this file except in compliance with the License.
#    You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.
#

#
#    Description:
#      This file is the GNU automake template for the Nest Weave
#      test applications
#

include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
SHELL := /bin/bash
AM_LOG_DRIVER_FLAGS := --build-num $(shell echo $$PPID|tail -c5)

#
# Other files we do want to distribute with the Weave source SDK.
#
# XXX - Should these be sanitized out for external distribution? If so,
#       which?
#
EXTRA_DIST                                            = \
    AndroidTest.cpp					\
    ComplexMockTrait.proto				\
    SimpleMockTrait.proto				\
    TestDNS.cpp						\
    TestWeaveDeviceMangerJNI				\
    TestWeaveTool.py                                    \
    connect-BR-Svc-ns.sh				\
    happy/bin                                           \
    happy/lib                                           \
    happy/test-templates                                \
    happy/tests/service					\
    happy/tests/standalone				\
    happy/topologies     				\
    nlweavebdxclient-development.cpp			\
    nlweavebdxclient.cpp				\
    nlweavebdxserver-development.cpp			\
    nlweavebdxserver.h					\
    remove-tunnel-intf.sh				\
    remove-weave-devs.sh				\
    run-security-support-test.sh                        \
    schema/nest/test/trait/TestDTrait.cpp               \
    schema/nest/test/trait/TestFTrait.cpp               \
    setup-network-namespaces.sh				\
    setup-tunnel-intf.sh				\
    setup-weave-devs.sh					\
    test-Verhoeff.sh                                    \
    test-bdx-development.sh				\
    test-file-development.txt				\
    test-weave-device-descriptor-encode.sh		\
    weave-bdx-client.cpp				\
    $(NULL)

SUBDIRS                                               = \
    wrapper-tests/jni                                   \
    $(NULL)

#
# Define a package-specific test driver (for 'make check').
#

LOG_DRIVER=$(abs_top_srcdir)/third_party/autoconf/repo/weave-parallel-test-engine

#
# Local headers to build against and distribute but not to install
# since they are not part of the Weave SDK public API.
#
noinst_HEADERS                                             = \
    CASEOptions.h                                            \
    DMTestClient.h                                           \
    DeviceDescOptions.h                                      \
    KeyExportOptions.h                                       \
    MockDCLPServer.h                                         \
    MockDCServer.h                                           \
    MockDDServer.h                                           \
    MockDMPublisher.h                                        \
    MockEvents.h                                             \
    MockExternalEvents.h                                     \
    MockFPServer.h                                           \
    MockIAServer.h                                           \
    MockLoggingManager.h                                     \
    MockMismatchedSchemaSinkAndSource.h                      \
    MockNPServer.h                                           \
    MockOpActions.h                                          \
    MockPairingServer.h                                      \
    MockPlatformClocks.h                                     \
    MockSDServer.h                                           \
    MockSPServer.h                                           \
    MockSWUServer.h                                          \
    MockSinkTraits.h                                         \
    MockSourceTraits.h                                       \
    MockTestBTrait.h                                         \
    MockTimeSyncClient.h                                     \
    MockTimeSyncCoordinator.h                                \
    MockTimeSyncServer.h                                     \
    MockTimeSyncUtil.h                                       \
    MockTokenPairingServer.h                                 \
    MockWdmNodeOptions.h                                     \
    MockWdmSubscriptionInitiator.h                           \
    MockWdmSubscriptionResponder.h                           \
    MockWdmTestVerifier.h                                    \
    MockWdmViewClient.h                                      \
    MockWdmViewServer.h                                      \
    PASEEngineTest.h                                         \
    TAKEOptions.h                                            \
    TapAddrAutoconf.h                                               \
    TestDRBG.h                                               \
    TestEventLoggingSchemaExamples.h                         \
    TestGroupKeyStore.h                                      \
    TestInetLayerCommon.hpp                                  \
    TestPersistedStorageImplementation.h                     \
    TestProfile.h                                            \
    TestWRMP.h                                               \
    TestWdmOneWayCommand.h                                   \
    TestWdmSubscriptionlessNotification.h                    \
    TestWeaveCertData.h                                      \
    TestWeaveTunnel.h                                        \
    TestWeaveTunnelServer.h                                  \
    ToolCommon.h                                             \
    ToolCommonOptions.h                                      \
    WdmNextPerfUtility.h                                     \
    crypto-tests/WeaveCryptoTests.h                          \
    nlweavebdxclient-development.h                           \
    nlweavebdxclient.h                                       \
    nlweavebdxserver-development.h                           \
    nlweaveswuclient.h                                       \
    schema/nest/test/trait/TestATrait.h                      \
    schema/nest/test/trait/TestBTrait.h                      \
    schema/nest/test/trait/TestCTrait.h                      \
    schema/nest/test/trait/TestCommon.h                      \
    schema/nest/test/trait/TestCommonVersioned.h             \
    schema/nest/test/trait/TestCommonVersioned.cpp           \
    schema/nest/test/trait/TestDTrait.h                      \
    schema/nest/test/trait/TestETrait.h                      \
    schema/nest/test/trait/TestFTrait.h                      \
    schema/nest/test/trait/TestHTrait.h                      \
    schema/nest/test/trait/TestMismatchedCTrait.h            \
    schema/weave/common/DayOfWeekEnum.h                      \
    schema/weave/trait/locale/LocaleCapabilitiesTrait.h      \
    schema/weave/trait/locale/LocaleSettingsTrait.h          \
    schema/weave/trait/security/BoltLockSettingsTrait.h      \
    schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.h \
    weave-bdx-common-development.h                           \
    $(NULL)

if CONFIG_NETWORK_LAYER_BLE

noinst_HEADERS                                += \
    MockBleApplicationDelegate.h                 \
    MockBlePlatformDelegate.h                    \
    $(NULL)

endif # CONFIG_NETWORK_LAYER_BLE

if WEAVE_BUILD_TESTS
# A non-installed common library that may be used for all test
# applications in this directory.
#
# This will NOT be part of the externally-consumable binary SDK.

noinst_LIBRARIES                               = \
    libWeaveCryptoTests.a                        \
    libWeaveTestCommon.a                         \
    libWeaveTestGroupKeyStore.a                  \
    $(NULL)

# C preprocessor option flags that will apply to all compiled objects in this
# makefile.

AM_CPPFLAGS                                    = \
    -I$(top_srcdir)/src/include                  \
    $(LWIP_CPPFLAGS)                             \
    $(SOCKETS_CPPFLAGS)                          \
    $(PTHREAD_CFLAGS)                            \
    $(NULL)

libWeaveCryptoTests_a_SOURCES                  = \
    crypto-tests/WeaveCryptoAESTests.cpp         \
    crypto-tests/WeaveCryptoHKDFTests.cpp        \
    crypto-tests/WeaveCryptoHMACTests.cpp        \
    crypto-tests/WeaveCryptoSHATests.cpp         \
    $(NULL)

libWeaveTestCommon_a_SOURCES                   = \
    CASEOptions.cpp                              \
    KeyExportOptions.cpp                         \
    TAKEOptions.cpp                              \
    DeviceDescOptions.cpp                        \
    Certs.cpp                                    \
    TestGroupKeyStore.cpp                        \
    ToolCommon.cpp                               \
    ToolCommonOptions.cpp                        \
    TapAddrAutoconf.cpp                          \
    PASEEngineTest.cpp                           \
    MockPlatformClocks.cpp                       \
    TestPersistedStorageImplementation.cpp       \
    $(NULL)

libWeaveTestGroupKeyStore_a_SOURCES            = \
    TestGroupKeyStore.cpp                        \
    $(NULL)

WEAVE_LDADD                                    = \
    $(top_builddir)/src/lib/libWeave.a           \
    $(NULL)

MOCKBLE_LDADD                                  = \
    $(NULL)

if CONFIG_NETWORK_LAYER_BLE

if CONFIG_BLE_PLATFORM_BLUEZ

AM_CPPFLAGS                                   += \
    -I$(top_srcdir)/src/platform/ble/bluez       \
    $(BLUEZ_CPPFLAGS)                            \
    $(NULL)

libMockBlePlatformDelegate_a_DEPENDENCIES      = \
    $(top_builddir)/src/platform/ble/bluez/libWoBluez.a \
    $(NULL)

MOCKBLE_LDADD                                 += \
    libMockBlePlatformDelegate.a                 \
    $(top_builddir)/src/platform/ble/bluez/libWoBluez.a \
    $(BLUEZ_LDFLAGS)                                    \
    @BLUEZ_LIBS@ @GLIB_LIBS@ @DBUS_LIBS@ -ldl -lrt      \
    $(NULL)

else

libMockBleApplicationDelegate_a_SOURCES	       = \
    MockBleApplicationDelegate.cpp               \
    $(NULL)

MOCKBLE_LDADD                                 += \
    libMockBlePlatformDelegate.a                 \
    libMockBleApplicationDelegate.a              \
    $(NULL)

endif #CONFIG_BLE_PLATFORM_BLUEZ

noinst_LIBRARIES                              += \
    libMockBlePlatformDelegate.a                 \
    libMockBleApplicationDelegate.a              \
    $(NULL)

libMockBlePlatformDelegate_a_SOURCES           = \
    MockBlePlatformDelegate.cpp                  \
    $(NULL)

endif # CONFIG_NETWORK_LAYER_BLE

COMMON_LDADD                                   = \
    $(COMMON_LDFLAGS)                            \
    $(WEAVE_LDADD)                               \
    $(MOCKBLE_LDADD)                             \
    $(LWIP_LDFLAGS) $(LWIP_LIBS)                 \
    $(SOCKETS_LDFLAGS) $(SOCKETS_LIBS)           \
    $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)            \
    $(NULL)

# Test applications that should be installed when the 'install' target is run.
#
# These will be part of the externally-consumable binary SDK.
#
# These need to go in libexec since they need to be "trampolined"
# through the 'weave-run' script due to runtime dependencies on
# DLLs/DSOs that the runtime linker / loader will need to resolve when
# they invoked.

libexec_PROGRAMS                               = \
    $(NULL)

if WEAVE_BUILD_DEVICE_MANAGER
libexec_PROGRAMS                              += \
    mock-device                                  \
    $(NULL)
endif

libexec_PROGRAMS                              += \
    weave-device-descriptor                      \
    weave-key-export                             \
    weave-ping                                   \
    weave-heartbeat                              \
    $(NULL)

# Test applications that should be run when the 'check' target is run.
#
# These will NOT be part of the externally-consumable binary SDK.

check_PROGRAMS                                 = \
    TestASN1                                     \
    TestAppKeys                                  \
    TestArgParser                                \
    TestCASE                                     \
    TestCodeUtils                                \
    TestCrypto                                   \
    TestDRBG                                     \
    TestDeviceDescriptor                         \
    TestECDH                                     \
    TestECDSA                                    \
    TestECMath                                   \
    TestEventLogging                             \
    TestFabricStateDelegate                      \
    TestInetAddress                              \
    TestInetBuffer                               \
    TestInetEndPoint                             \
    TestInetTimer                                \
    TestKeyExport                                \
    TestKeyIds                                   \
    TestMsgEnc                                   \
    TestNetworkInfo                              \
    TestPASE                                     \
    TestPacketBuffer                             \
    TestPasscodeEnc                              \
    TestPersistedCounter                         \
    TestPersistedStorage                         \
    TestProfileStringSupport                     \
    TestProvHash                                 \
    TestRetainedPacketBuffer                     \
    TestSerialNumUtils                           \
    TestSoftwareUpdate                           \
    TestSystemObject                             \
    TestSystemTimer                              \
    TestTAKE                                     \
    TestTLV                                      \
    TestTimeUtils                                \
    TestTimeZone                                 \
    TestWeaveCert                                \
    TestWeaveEncoding                            \
    TestWeaveFabricState                         \
    TestWeaveSignature                           \
    infratest                                    \
    TestErrorStr                                 \
    TestStatusReportStr                          \
    TestThermostatStatus                         \
    TestPairingCodeUtils                         \
    TestResourceIdentifier                       \
    $(NULL)

if HAVE_CXX11
check_PROGRAMS +=                                \
    TestTDM                                      \
    TestTDMDictionary                            \
    $(NULL)
endif

check_PROGRAMS +=                                \
    TestTDM                                      \
	TestTDMDictionary							 \
    TestPathStore                                \
    TestWdmUpdateEncoder                         \
    TestWdmUpdateResponse                        \
    $(NULL)

if WEAVE_BUILD_WARM
check_PROGRAMS                                += \
    TestWarm                                     \
    $(NULL)
endif

if WEAVE_WITH_OPENSSL
check_PROGRAMS                                += \
    TestWeaveProvBundle                          \
    $(NULL)
endif

if WEAVE_SYSTEM_CONFIG_USE_SOCKETS
check_PROGRAMS                                += \
    TestInetLayerDNS                            \
    TestWoble                                    \
    $(NULL)
endif

# Test scripts that should be run when the 'check' target is run.
#
# These will NOT be part of the externally-consumable binary SDK.

if WEAVE_RUN_HAPPY_SERVICE
check_SCRIPTS                                  = \
    $(NULL)
else
check_SCRIPTS                                  = \
    test-weave-device-descriptor-encode.sh       \
    test-Verhoeff.sh                             \
    $(NULL)
endif # WEAVE_RUN_HAPPY_SERVICE

if WEAVE_BUILD_TOOLS
check_SCRIPTS                                 += \
    TestWeaveTool.py                             \
    $(NULL)
endif # WEAVE_BUILD_TOOLS

if WEAVE_WITH_JAVA
check_SCRIPTS                                 += \
    run-security-support-test.sh                 \
    $(NULL)
endif # WEAVE_WITH_JAVA

# Test applications that should be built but not installed that
# require no network or complicated setup and should always be
# built to ensure overall "build sanity".
#
# These will NOT be part of the externally-consumable binary SDK.

local_test_programs                            = \
    GenerateEventLog                             \
    TestASN1                                     \
    TestAppKeys                                  \
    TestArgParser                                \
    TestCASE                                     \
    TestCodeUtils                                \
    TestCrypto                                   \
    TestDRBG                                     \
    TestDeviceDescriptor                         \
    TestECDH                                     \
    TestECDSA                                    \
    TestECMath                                   \
    TestFabricStateDelegate                      \
    TestInetAddress                              \
    TestInetBuffer                               \
    TestInetEndPoint                             \
    TestInetTimer                                \
    TestKeyExport                                \
    TestKeyIds                                   \
    TestMsgEnc                                   \
    TestNetworkInfo                              \
    TestPASE                                     \
    TestPacketBuffer                             \
    TestPasscodeEnc                              \
    TestProfileStringSupport                     \
    TestProvHash                                 \
    TestRetainedPacketBuffer                     \
    TestSerialNumUtils                           \
    TestSoftwareUpdate                           \
    TestSystemObject                             \
    TestSystemTimer                              \
    TestTAKE                                     \
    TestTLV                                      \
    TestTimeUtils                                \
    TestTimeZone                                 \
    TestWeaveCert                                \
    TestWeaveEncoding                            \
    TestWeaveFabricState                         \
    TestWeaveProvBundle                          \
    TestWeaveSignature                           \
    infratest                                    \
    TestErrorStr                                 \
    TestStatusReportStr                          \
    TestThermostatStatus                         \
    TestPairingCodeUtils                         \
    TestResourceIdentifier                       \
    $(NULL)

if HAVE_CXX11
local_test_programs                           += \
    TestTDM                                      \
    TestTDMDictionary                            \
    TestWDM                                      \
    $(NULL)
endif

if WEAVE_BUILD_WARM
local_test_programs                           += \
    TestWarm                                     \
    TestPathStore                                \
    TestWdmUpdateEncoder                         \
    TestWdmUpdateResponse                        \
    $(NULL)
endif

# Test applications that should be built but not installed that
# require network or complicated setup and should always be built to
# ensure overall "build sanity".
#
# These will NOT be part of the externally-consumable binary SDK.

network_test_programs                          = \
    TestBinding                                  \
    TestEventLogging                             \
    TestInetLayer                                \
    TestInetLayerMulticast                       \
    TestPersistedCounter                         \
    TestPersistedStorage                         \
    TestRADaemon                                 \
    TestWRMP                                     \
    TestWeaveMessageLayer                        \
    TestWeaveTunnelBR                            \
    TestWeaveTunnelServer                        \
    TestWdmNext                                  \
    TestWdmOneWayCommandSender                   \
    TestWdmOneWayCommandReceiver                 \
    TestInetLayerDNS                            \
    TestWoble                                    \
    mock-device                                  \
    mock-weave-bg                                \
    weave-bdx-client-development                 \
    weave-bdx-client-v0                          \
    weave-bdx-server-development                 \
    weave-bdx-server-v0                          \
    weave-connection-tunnel                      \
    weave-dd-client                              \
    weave-service-dir                            \
    weave-swu-client                             \
    weave-swu-server                             \
    $(NULL)

if WEAVE_BUILD_LEGACY_WDM
network_test_programs                         += \
    TestDataManagement                           \
    wdmtest                                      \
    $(NULL)
endif


# Test applications that should be built but not installed and should
# always be built to ensure overall "build sanity".
#
# These will NOT be part of the externally-consumable binary SDK.

noinst_PROGRAMS                                = \
    $(local_test_programs)                       \
    $(network_test_programs)                     \
    $(NULL)

# Test applications and scripts that should be built and run when the
# 'check' target is run.

if WEAVE_RUN_HAPPY_SERVICE
TESTS                                          = \
    $(check_SCRIPTS)                             \
    $(NULL)
else
TESTS                                          = \
    $(check_PROGRAMS)                            \
    $(check_SCRIPTS)                             \
    $(NULL)
endif # WEAVE_RUN_HAPPY_SERVICE

# The additional environment variables and their values that will be
# made available to all programs and scripts in TESTS.

TESTS_ENVIRONMENT                                                 = \
    export                                                          \
    CMP='$(CMP)'                                                    \
    RM='$(RM)'                                                      \
    abs_builddir='$(abs_builddir)'                                  \
    abs_srcdir='$(abs_srcdir)'                                      \
    abs_top_builddir='$(abs_top_builddir)'                          \
    abs_top_srcdir='$(abs_top_srcdir)'                              \
    builddir='$(builddir)'                                          \
    srcdir='$(srcdir)'                                              \
    top_builddir='$(top_builddir)'                                  \
    top_srcdir='$(top_srcdir)'                                      \
    WEAVE_SYSTEM_CONFIG_USE_LWIP='$(WEAVE_SYSTEM_CONFIG_USE_LWIP)'  \
    $(NULL)

if WEAVE_RUN_HAPPY_SERVICE

TESTS_ENVIRONMENT                             += \
    weave_service_address='$(HAPPY_SERVICE)'

endif # WEAVE_RUN_HAPPY_SERVICE

if WEAVE_RUN_HAPPY_DNS

TESTS_ENVIRONMENT                             += \
    happy_dns='$(HAPPY_DNS)'

endif # WEAVE_RUN_HAPPY_DNS

TESTS_ENVIRONMENT                             += \
    PYTHONPATH='$(HAPPY_PATH):$(PYTHONPATH)';    \
    $(NULL)

if WEAVE_RUN_HAPPY
if WEAVE_RUN_HAPPY_SERVICE

if WEAVE_RUN_HAPPY_TUNNEL
check_SCRIPTS                                 +=             \
    happy/tests/service/tunnel/test_weave_tunnel_01.py       \
    happy/tests/service/tunnel/test_weave_tunnel_02.py       \
    $(NULL)
endif # WEAVE_RUN_HAPPY_TUNNEL

if WEAVE_RUN_HAPPY_TIME
check_SCRIPTS                                 +=             \
    happy/tests/service/time/test_weave_time_01.py           \
    $(NULL)
endif #WEAVE_RUN_HAPPY_TIME

if WEAVE_RUN_HAPPY_ECHO
check_SCRIPTS                                 +=             \
    happy/tests/service/echo/test_weave_echo_01.py           \
    happy/tests/service/echo/test_weave_echo_02.py           \
    happy/tests/service/echo/test_weave_echo_03.py           \
    $(NULL)
endif # WEAVE_RUN_HAPPY_ECHO

if WEAVE_RUN_HAPPY_KEY_EXPORT
check_SCRIPTS                                 +=             \
    happy/tests/service/key_export/test_weave_key_export_01.py \
    $(NULL)
endif # WEAVE_RUN_HAPPY_KEY_EXPORT

if WEAVE_RUN_HAPPY_PAIRING
check_SCRIPTS                                 +=             \
    happy/tests/service/pairing/test_weave_pairing_01.py     \
    $(NULL)
endif # WEAVE_RUN_HAPPY_PAIRING

if WEAVE_RUN_HAPPY_PERF
check_SCRIPTS                                 +=             \
    happy/tests/service/weave_service_perf_run.sh            \
    $(NULL)
endif # WEAVE_RUN_HAPPY_PERF

if WEAVE_RUN_HAPPY_WDM
check_SCRIPTS                                 +=             \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_01.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_02.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_03.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_04.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_05.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_06.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_07.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_08.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_09.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_10.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_11.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_12.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_13.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_14.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_15.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_16.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_17.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_18.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_19.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_20.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_21.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_22.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_23.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_24.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_25.py                              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_mutual_subscribe_application_key_01.py              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_01_cond_OneLeaf.py                           \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_02_cond_BackToBack.py                        \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_03_uncond_OneLeaf.py                         \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_04_uncond_BackToBack.py                      \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_05_cond_WholeDictionary.py                   \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_06_cond_WholeLargeDictionary.py              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_07_cond_OneLeaf_multi_traits.py              \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_08_mixed_OneLeaf_multi_traits.py             \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_09_mixed_SameLevelLeafs_multi_traits.py      \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_10_cond_Root_multi_traits.py                 \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_11_uncond_WholeLargeDictionary.py            \
    happy/tests/service/wdmNext/test_weave_wdm_next_service_update_12_uncond_OneLeaf_BeforeSub.py               \
    $(NULL)
endif # WEAVE_RUN_HAPPY_WDM

else  # WEAVE_RUN_HAPPY_SERVICE

if WEAVE_RUN_LONG_TESTS

if WEAVE_RUN_HAPPY_BDX

# Parse the bdx filename and generate the script:
# e.g: test_weave_bdx_faults_download_v0_v0_1_of_2
happy/tests/standalone/bdx/test_weave_bdx_faults_%.sh :
	mkdir -p happy/tests/standalone/bdx
	matched_part_of_the_file_name=$(*F) ; \
	IFS='_' tokens=( $${matched_part_of_the_file_name} ) ; \
	echo "#!/bin/bash" > $@ ; \
	echo "${abs_srcdir}/happy/tests/standalone/bdx/test_weave_bdx_faults_01.py --direction $${tokens[0]} --versions $${tokens[1]/v/}_$${tokens[2]/v/} --group $${tokens[3]} --numgroups $${tokens[5]}" >> $@ ; \
	echo 'exit $$?' >>$@
	chmod u+x $@

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v0_1_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v0_2_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v0_3_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v0_4_of_4.sh     \
	$(NULL)

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v1_1_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v1_2_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v1_3_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v0_v1_4_of_4.sh     \
	$(NULL)

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v0_1_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v0_2_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v0_3_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v0_4_of_4.sh     \
	$(NULL)

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v1_1_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v1_2_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v1_3_of_4.sh     \
    happy/tests/standalone/bdx/test_weave_bdx_faults_download_v1_v1_4_of_4.sh     \
	$(NULL)

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v0_1_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v0_2_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v0_3_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v0_4_of_4.sh       \
	$(NULL)

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v1_1_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v1_2_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v1_3_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v0_v1_4_of_4.sh       \
	$(NULL)

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v0_1_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v0_2_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v0_3_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v0_4_of_4.sh       \
	$(NULL)

check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v1_1_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v1_2_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v1_3_of_4.sh       \
    happy/tests/standalone/bdx/test_weave_bdx_faults_upload_v1_v1_4_of_4.sh       \
	$(NULL)

endif # WEAVE_RUN_HAPPY_BDX

if WEAVE_RUN_HAPPY_SECMGR

# Parse the echo filename and generate the script:
# e.g: test_weave_echo_secmgr_faults_case_wrmp_1_of_2.sh
happy/tests/standalone/echo/test_weave_echo_secmgr_faults_%.sh :
	mkdir -p happy/tests/standalone/echo
	matched_part_of_the_file_name=$(*F) ; \
	IFS='_' tokens=( $${matched_part_of_the_file_name} ) ; \
	echo "#!/bin/bash" > $@ ; \
	echo "${abs_srcdir}/happy/tests/standalone/echo/test_weave_echo_secmgr_faults.py --$${tokens[0]} --$${tokens[1]} --group $${tokens[2]} --numgroups $${tokens[4]}" >> $@ ; \
	echo 'exit $$?' >>$@
	chmod u+x $@

check_SCRIPTS                                 +=                \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_1_of_8.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_2_of_8.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_3_of_8.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_4_of_8.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_5_of_8.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_6_of_8.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_7_of_8.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_wrmp_8_of_8.sh \
	$(NULL)

check_SCRIPTS                                 +=                \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_group-key_wrmp_1_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_group-key_wrmp_2_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_group-key_wrmp_3_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_group-key_wrmp_4_of_4.sh \
	$(NULL)

check_SCRIPTS                                 +=                \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_tcp_1_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_tcp_2_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_tcp_3_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_case_tcp_4_of_4.sh \
	$(NULL)

check_SCRIPTS                                 +=                \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_pase_tcp_1_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_pase_tcp_2_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_pase_tcp_3_of_4.sh \
	happy/tests/standalone/echo/test_weave_echo_secmgr_faults_pase_tcp_4_of_4.sh \
	$(NULL)

endif # WEAVE_RUN_HAPPY_SECMGR

if WEAVE_RUN_HAPPY_WDM

# Parse the wdm filename and generate the script:
# e.g: test_weave_echo_secmgr_faults_case_wrmp_1_of_2.sh
happy/tests/standalone/wdmNext/test_weave_wdm_next_%.sh :
	mkdir -p happy/tests/standalone/wdmNext
	matched_part_of_the_file_name=$(*F) ; \
	IFS='_' tokens=( $${matched_part_of_the_file_name} ) ; \
	echo "#!/bin/bash" > $@ ; \
	echo "${abs_srcdir}/happy/tests/standalone/wdmNext/test_weave_wdm_next_$${tokens[0]}_subscribe_faults.py --group $${tokens[3]} --numgroups $${tokens[5]}" >> $@ ; \
	echo 'exit $$?' >>$@
	chmod u+x $@

check_SCRIPTS                                 +=                \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_1_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_2_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_3_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_4_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_5_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_6_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_7_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_8_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_9_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_10_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_11_of_12.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_12_of_12.sh \
	$(NULL)

check_SCRIPTS                                 +=                \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_1_of_8.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_2_of_8.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_3_of_8.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_4_of_8.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_5_of_8.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_6_of_8.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_7_of_8.sh \
	happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_subscribe_faults_8_of_8.sh \
	$(NULL)

endif # WEAVE_RUN_HAPPY_WDM

if WEAVE_RUN_HAPPY_KEY_EXPORT

# Parse the key export filename and generate the script:
# e.g: test_weave_key_export_faults_wrmp_1_of_4.sh
happy/tests/standalone/key_export/test_weave_key_export_faults_%.sh :
	mkdir -p happy/tests/standalone/key_export
	matched_part_of_the_file_name=$(*F) ; \
	IFS='_' tokens=( $${matched_part_of_the_file_name} ) ; \
	echo "#!/bin/bash" > $@ ; \
	echo "${abs_srcdir}/happy/tests/standalone/key_export/test_weave_key_export_faults.py --$${tokens[0]} --group $${tokens[1]} --numgroups $${tokens[3]}" >> $@ ; \
	echo 'exit $$?' >>$@
	chmod u+x $@

check_SCRIPTS                                 +=                \
	happy/tests/standalone/key_export/test_weave_key_export_faults_tcp_1_of_2.sh \
	happy/tests/standalone/key_export/test_weave_key_export_faults_tcp_2_of_2.sh \
	happy/tests/standalone/key_export/test_weave_key_export_faults_wrmp_1_of_4.sh \
	happy/tests/standalone/key_export/test_weave_key_export_faults_wrmp_2_of_4.sh \
	happy/tests/standalone/key_export/test_weave_key_export_faults_wrmp_3_of_4.sh \
	happy/tests/standalone/key_export/test_weave_key_export_faults_wrmp_4_of_4.sh \
	$(NULL)

endif # WEAVE_RUN_HAPPY_KEY_EXPORT

if WEAVE_RUN_HAPPY_SERVICEDIR

# Parse the servicedir filename and generate the script:
# e.g: t_weave_service_directory_faults_1_of_4.sh
happy/tests/standalone/servicedir/test_weave_service_directory_faults_%.sh :
	mkdir -p happy/tests/standalone/servicedir
	matched_part_of_the_file_name=$(*F) ; \
	IFS='_' tokens=( $${matched_part_of_the_file_name} ) ; \
	echo "#!/bin/bash" > $@ ; \
	echo "${abs_srcdir}/happy/tests/standalone/servicedir/test_service_directory_01.py --fault-injection --group $${tokens[0]} --numgroups $${tokens[2]}" >> $@ ; \
	echo 'exit $$?' >>$@
	chmod u+x $@

check_SCRIPTS                                 +=                \
	happy/tests/standalone/servicedir/test_weave_service_directory_faults_1_of_4.sh \
	happy/tests/standalone/servicedir/test_weave_service_directory_faults_2_of_4.sh \
	happy/tests/standalone/servicedir/test_weave_service_directory_faults_3_of_4.sh \
	happy/tests/standalone/servicedir/test_weave_service_directory_faults_4_of_4.sh \
	$(NULL)

endif # WEAVE_RUN_HAPPY_SERVICEDIR

if WEAVE_RUN_HAPPY_TUNNEL

# Parse the tunnel filename and generate the script:
# e.g: test_weave_tunnel_faults_1_of_4.sh
happy/tests/standalone/tunnel/test_weave_tunnel_faults_%.sh :
	mkdir -p happy/tests/standalone/tunnel
	matched_part_of_the_file_name=$(*F) ; \
	IFS='_' tokens=( $${matched_part_of_the_file_name} ) ; \
	echo "#!/bin/bash" > $@ ; \
	echo "${abs_srcdir}/happy/tests/standalone/tunnel/test_weave_tunnel_faults.py --group $${tokens[0]} --numgroups $${tokens[2]}" >> $@ ; \
	echo 'exit $$?' >>$@
	chmod u+x $@

check_SCRIPTS                                 +=                \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_1_of_8.sh \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_2_of_8.sh \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_3_of_8.sh \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_4_of_8.sh \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_5_of_8.sh \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_6_of_8.sh \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_7_of_8.sh \
	happy/tests/standalone/tunnel/test_weave_tunnel_faults_8_of_8.sh \
	$(NULL)

endif # WEAVE_RUN_HAPPY_TUNNEL

if WEAVE_RUN_HAPPY_TIME

# Parse the time filename and generate the script:
# e.g: t_weave_time_faults_1_of_8.sh
happy/tests/standalone/time/test_weave_time_faults_%.sh :
	mkdir -p happy/tests/standalone/time
	matched_part_of_the_file_name=$(*F) ; \
	IFS='_' tokens=( $${matched_part_of_the_file_name} ) ; \
	echo "#!/bin/bash" > $@ ; \
	echo "${abs_srcdir}/happy/tests/standalone/time/test_weave_time_01.py --enable-faults --syncmode $${tokens[0]} --group $${tokens[1]} --numgroups $${tokens[3]}" >> $@ ; \
	echo 'exit $$?' >>$@
	chmod u+x $@

check_SCRIPTS                                 +=                \
	happy/tests/standalone/time/test_weave_time_faults_local_1_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_local_2_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_local_3_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_local_4_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_service_1_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_service_2_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_service_3_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_service_4_of_4.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_1_of_8.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_2_of_8.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_3_of_8.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_4_of_8.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_5_of_8.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_6_of_8.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_7_of_8.sh \
	happy/tests/standalone/time/test_weave_time_faults_auto_8_of_8.sh \
	$(NULL)

endif # WEAVE_RUN_HAPPY_TIME

endif # WEAVE_RUN_LONG_TESTS

if WEAVE_RUN_HAPPY_WDM

check_SCRIPTS                                 +=                \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_01.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_02.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_03.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_04.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_05.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_06.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_07.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_08.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_09.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_10.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_11.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_12.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_13.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_14.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_15.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_one_way_subscribe_16.py    \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_01.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_02.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_03.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_04.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_05.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_06.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_07.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_08.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_09.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_10.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_11.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_12.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_13.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_14.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_15.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_16.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_17.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_18.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_19.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_20.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_21.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_22.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_23.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_24.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_25.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_26.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_27.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_28.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_29.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_30.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_31.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_32.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_33.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_34.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_35.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_36.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_37.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_38.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_39.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_40.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_41.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_42.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_43.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_44.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_45.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_46.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_47.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_48.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_49.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_50.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_51.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_52.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_53.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_54.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_55.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_56.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_57.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_58.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_59.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_60.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_61.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_62.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_63.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_64.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_65.py     \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_subscribe_faults_happy.sh       \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_application_key_01.py      \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_application_key_02.py      \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_oneway_resub.py            \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_mutual_resub.py            \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_subless_notify_01.py       \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_update_01.py       \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_update_02.py       \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_update_03.py       \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_update_04.py       \
    happy/tests/standalone/wdmNext/test_weave_wdm_next_update_05.py       \
    $(NULL)

endif # WEAVE_RUN_HAPPY_WDM

if WEAVE_RUN_HAPPY_BDX
check_SCRIPTS                                 +=                \
    happy/tests/standalone/bdx/test_weave_bdx_01.py                        \
    happy/tests/standalone/bdx/test_weave_bdx_02.py                        \
    happy/tests/standalone/bdx/test_weave_bdx_03.py                        \
    happy/tests/standalone/bdx/test_weave_bdx_04.py                        \
    happy/tests/standalone/bdx/test_weave_bdx_05.py                        \
    $(NULL)
endif # WEAVE_RUN_HAPPY_BDX

if WEAVE_RUN_HAPPY_ECHO
check_SCRIPTS                                 +=                \
    happy/tests/standalone/echo/test_weave_echo_01.py                      \
    happy/tests/standalone/echo/test_weave_echo_03.py                      \
    $(NULL)
endif # WEAVE_RUN_HAPPY_ECHO

if WEAVE_RUN_HAPPY_SECMGR
check_SCRIPTS                                 +=                \
    happy/tests/standalone/echo/test_weave_echo_02.py                      \
    $(NULL)
endif # WEAVE_RUN_HAPPY_SECMGR

if WEAVE_RUN_HAPPY_TUNNEL
check_SCRIPTS                                 +=                \
    happy/tests/standalone/tunnel/test_weave_tunnel_01.py                  \
    happy/tests/standalone/tunnel/test_weave_tunnel_02.py                  \
    happy/tests/standalone/tunnel/test_weave_tunnel_03.py                  \
    happy/tests/standalone/tunnel/test_weave_tunnel_04.py                  \
    happy/tests/standalone/con_tunnel/test_weave_con_tunnel_01.py          \
    $(NULL)
endif # WEAVE_RUN_HAPPY_TUNNEL

if WEAVE_RUN_HAPPY_KEY_EXPORT
check_SCRIPTS                                 +=                \
    happy/tests/standalone/key_export/test_weave_key_export_01.py          \
    $(NULL)
endif # WEAVE_RUN_HAPPY_KEY_EXPORT

if WEAVE_RUN_HAPPY_PAIRING
check_SCRIPTS                                 +=                \
    happy/tests/standalone/pairing/test_weave_pairing_01.py                \
    $(NULL)
endif # WEAVE_RUN_HAPPY_PAIRING

if WEAVE_RUN_HAPPY_PAIRING
if CONFIG_NETWORK_LAYER_BLE
if CONFIG_BLE_PLATFORM_BLUEZ
check_SCRIPTS                                 +=                \
    $(NULL)
endif # CONFIG_BLE_PLATFORM_BLUEZ
endif # CONFIG_NETWORK_LAYER_BLE
endif # WEAVE_RUN_HAPPY_PAIRING

if WEAVE_RUN_HAPPY_SERVICEDIR
check_SCRIPTS                                 +=                \
    happy/tests/standalone/servicedir/test_service_directory_01.py         \
    $(NULL)
endif

if WEAVE_RUN_HAPPY_TIME
check_SCRIPTS                                 +=                \
    happy/tests/standalone/time/test_weave_time_local.sh                   \
    happy/tests/standalone/time/test_weave_time_service.sh                 \
    happy/tests/standalone/time/test_weave_time_auto.sh                    \
    $(NULL)
endif # WEAVE_RUN_HAPPY_TIME

if WEAVE_RUN_HAPPY_CORE
check_SCRIPTS                                                           += \
    happy/tests/standalone/wdmv0/test_weave_wdmv0_01.py                    \
    happy/tests/standalone/swu/test_weave_swu_01.py                        \
    happy/tests/standalone/swu/test_weave_swu_02.py                        \
    happy/tests/standalone/messagelayer/test_weave_messagelayer_01.py      \
    happy/tests/standalone/dd/test_weave_dd_01.py                          \
    happy/tests/standalone/heartbeat/test_weave_heartbeat_01.py            \
    happy/tests/standalone/wrmp/test_weave_wrmp_01.py                      \
    happy/tests/standalone/ip_comms/test_weave_udp.py                      \
    $(NULL)
endif # WEAVE_RUN_HAPPY_CORE

if WEAVE_RUN_HAPPY_INET
check_SCRIPTS                                                           += \
    happy/tests/standalone/inet/test_inet_01.py                            \
    happy/tests/standalone/inet/test_inet_dns_01.py                        \
    happy/tests/standalone/inet/test_inet_multicast_01.py                  \
    $(NULL)
endif # WEAVE_RUN_HAPPY_INET

endif # WEAVE_RUN_HAPPY_SERVICE
endif # WEAVE_RUN_HAPPY

# The bin_LINKS variable enumerates programs that need to be
# "trampolined" through the 'weave-run' script due to runtime
# dependencies on DLLs/DSOs that the runtime linker / loader will need
# to resolve when they invoked.

bin_LINKS                                      = \
    $(libexec_PROGRAMS)                          \
    $(libexec_SCRIPTS)                           \
    $(NULL)

# Source, compiler, and linker options for test programs.

GenerateEventLog_SOURCES                 = GenerateEventLog.cpp MockEvents.cpp \
                                           schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.cpp \
                                           schema/nest/test/trait/TestETrait.cpp \
                                           schema/nest/test/trait/TestCommon.cpp

GenerateEventLog_LDFLAGS                 = $(AM_CPPFLAGS)
GenerateEventLog_CPPFLAGS                = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
GenerateEventLog_LDADD                   = libWeaveTestCommon.a $(COMMON_LDADD)

TestASN1_SOURCES                         = TestASN1.cpp
TestASN1_LDADD                           = $(COMMON_LDADD)

TestAppKeys_SOURCES                      = TestAppKeys.cpp
TestAppKeys_LDADD                        = libWeaveTestCommon.a $(COMMON_LDADD)

TestArgParser_SOURCES                    = TestArgParser.cpp
TestArgParser_LDADD                      = libWeaveTestCommon.a $(COMMON_LDADD)

TestBinding_SOURCES                      = TestBinding.cpp
TestBinding_LDFLAGS                      = $(AM_CPPFLAGS)
TestBinding_LDADD                        = libWeaveTestCommon.a $(COMMON_LDADD)

TestCASE_SOURCES                         = TestCASE.cpp
TestCASE_LDFLAGS                         = $(AM_CPPFLAGS)
TestCASE_LDADD                           = libWeaveTestCommon.a $(COMMON_LDADD)

TestCodeUtils_SOURCES                    = TestCodeUtils.cpp
TestCodeUtils_LDADD                      =

TestCrypto_SOURCES                       = TestCrypto.cpp
TestCrypto_CPPFLAGS                      = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/crypto-tests
TestCrypto_LDADD                         = libWeaveCryptoTests.a $(COMMON_LDADD)

TestDRBG_SOURCES                         = TestDRBG.cpp
TestDRBG_LDADD                           = $(COMMON_LDADD)

TestDataManagement_SOURCES               = TestDataManagement.cpp \
                                           TestProfile.cpp
TestDataManagement_LDFLAGS               = $(AM_CPPFLAGS)
TestDataManagement_LDADD                 = libWeaveTestCommon.a $(COMMON_LDADD)

TestDeviceDescriptor_SOURCES             = TestDeviceDescriptor.cpp
TestDeviceDescriptor_LDADD               = $(COMMON_LDADD)

TestECDH_SOURCES                         = TestECDH.cpp
TestECDH_LDADD                           = $(COMMON_LDADD)

TestECDSA_SOURCES                        = TestECDSA.cpp
TestECDSA_LDADD                          = $(COMMON_LDADD)

TestECMath_SOURCES                       = TestECMath.cpp TestECMathParams.cpp
TestECMath_LDADD                         = $(COMMON_LDADD)

TestEventLogging_SOURCES                 = schema/nest/test/trait/TestETrait.cpp \
                                           schema/nest/test/trait/TestCommon.cpp \
                                           MockExternalEvents.cpp \
                                           TestEventLogging.cpp
TestEventLogging_CPPFLAGS	         = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestEventLogging_LDFLAGS                 = $(AM_CPPFLAGS)
TestEventLogging_LDADD                   = libWeaveTestCommon.a $(COMMON_LDADD)

if HAVE_CXX11
TestTDM_SOURCES                          = TestTDM.cpp \
                                           schema/nest/test/trait/TestHTrait.cpp \
                                           schema/nest/test/trait/TestCTrait.cpp \
                                           schema/nest/test/trait/TestBTrait.cpp \
                                           schema/nest/test/trait/TestMismatchedCTrait.cpp \
                                           schema/nest/test/trait/TestCommon.cpp \
                                           MockMismatchedSchemaSinkAndSource.cpp \
                                           TestPersistedStorageImplementation.cpp \
                                           MockTestBTrait.cpp

TestTDM_CPPFLAGS                         = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestTDM_LDFLAGS                          = $(AM_CPPFLAGS)
TestTDM_LDADD                            = libWeaveTestCommon.a $(COMMON_LDADD)

TestTDMDictionary_SOURCES                = TestTDMDictionary.cpp \
                                           schema/nest/test/trait/TestHTrait.cpp \
                                           schema/nest/test/trait/TestCTrait.cpp \
                                           schema/nest/test/trait/TestBTrait.cpp \
                                           schema/nest/test/trait/TestMismatchedCTrait.cpp \
                                           schema/nest/test/trait/TestCommon.cpp \
                                           MockMismatchedSchemaSinkAndSource.cpp \
                                           TestPersistedStorageImplementation.cpp \
                                           MockTestBTrait.cpp

TestTDMDictionary_CPPFLAGS              = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestTDMDictionary_LDFLAGS               = $(AM_CPPFLAGS)
TestTDMDictionary_LDADD                 = libWeaveTestCommon.a $(COMMON_LDADD)
endif

TestWDM_SOURCES                          = TestWdm.cpp
TestWDM_CPPFLAGS                         = $(AM_CPPFLAGS)
TestWDM_LDFLAGS                          = $(AM_CPPFLAGS)
TestWDM_LDADD                            = libWeaveTestCommon.a $(COMMON_LDADD)

TestPathStore_SOURCES                          = TestPathStore.cpp \
                                                 schema/nest/test/trait/TestHTrait.cpp \
                                                 TestPersistedStorageImplementation.cpp \
                                                 schema/nest/test/trait/TestCommon.cpp

TestPathStore_CPPFLAGS                         = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestPathStore_LDFLAGS                          = $(AM_CPPFLAGS)
TestPathStore_LDADD                            = libWeaveTestCommon.a $(COMMON_LDADD)


TestWdmUpdateEncoder_SOURCES                   = TestWdmUpdateEncoder.cpp \
												 MockSinkTraits.cpp						\
												 schema/nest/test/trait/TestATrait.cpp			\
												 schema/nest/test/trait/TestBTrait.cpp			\
												 schema/nest/test/trait/TestETrait.cpp			\
												 schema/nest/test/trait/TestCommon.cpp \
											     schema/weave/trait/locale/LocaleSettingsTrait.cpp		\
											     schema/weave/trait/locale/LocaleCapabilitiesTrait.cpp	\
											     schema/weave/trait/security/BoltLockSettingsTrait.cpp	\
											     schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.cpp	\
												 MockWdmNodeOptions.cpp                   \
                                                 TestPersistedStorageImplementation.cpp

TestWdmUpdateEncoder_CPPFLAGS                         = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestWdmUpdateEncoder_LDFLAGS                          = $(AM_CPPFLAGS)
TestWdmUpdateEncoder_LDADD                            = libWeaveTestCommon.a $(COMMON_LDADD)

TestWdmUpdateResponse_SOURCES                  = TestWdmUpdateResponse.cpp \
                                                 TestPersistedStorageImplementation.cpp

TestWdmUpdateResponse_CPPFLAGS                 = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestWdmUpdateResponse_LDFLAGS                  = $(AM_CPPFLAGS)
TestWdmUpdateResponse_LDADD                    = libWeaveTestCommon.a $(COMMON_LDADD)

TestFabricStateDelegate_SOURCES          = TestFabricStateDelegate.cpp TestPersistedStorageImplementation.cpp
TestFabricStateDelegate_LDFLAGS          = $(AM_CPPFLAGS)
TestFabricStateDelegate_LDADD            = libWeaveTestCommon.a $(COMMON_LDADD)

TestInetEndPoint_SOURCES                 = TestInetEndPoint.cpp
TestInetEndPoint_LDFLAGS                 = $(AM_CPPFLAGS)
TestInetEndPoint_LDADD                   = libWeaveTestCommon.a $(COMMON_LDADD)

TestInetBuffer_SOURCES                   = TestInetBuffer.cpp
TestInetBuffer_LDADD                     = libWeaveTestCommon.a $(COMMON_LDADD)

TestInetTimer_SOURCES                    = TestInetTimer.cpp
TestInetTimer_LDFLAGS                    = $(AM_CPPFLAGS)
TestInetTimer_LDADD                      = libWeaveTestCommon.a $(COMMON_LDADD)

TestInetLayer_SOURCES                    = TestInetLayer.cpp \
                                           TestInetLayerCommon.cpp \
                                           $(NULL)
TestInetLayer_LDFLAGS                    = $(AM_CPPFLAGS)
TestInetLayer_LDADD                      = libWeaveTestCommon.a $(COMMON_LDADD)

TestInetLayerMulticast_SOURCES           = TestInetLayerMulticast.cpp \
                                           TestInetLayerCommon.cpp \
                                           $(NULL)
TestInetLayerMulticast_LDFLAGS           = $(AM_CPPFLAGS)
TestInetLayerMulticast_LDADD             = libWeaveTestCommon.a $(COMMON_LDADD)

TestInetAddress_SOURCES                  = TestInetAddress.cpp
TestInetAddress_LDADD                    = libWeaveTestCommon.a $(COMMON_LDADD)

TestKeyExport_SOURCES                    = TestKeyExport.cpp
TestKeyExport_LDFLAGS                    = $(AM_CPPFLAGS)
TestKeyExport_LDADD                      = libWeaveTestCommon.a $(COMMON_LDADD)

TestKeyIds_SOURCES                       = TestKeyIds.cpp
TestKeyIds_LDFLAGS                       = $(AM_CPPFLAGS)
TestKeyIds_LDADD                         = libWeaveTestCommon.a $(COMMON_LDADD)

TestMsgEnc_SOURCES                       = TestMsgEnc.cpp
TestMsgEnc_LDFLAGS                       = $(AM_CPPFLAGS)
TestMsgEnc_LDADD                         = libWeaveTestCommon.a $(COMMON_LDADD)

TestNetworkInfo_SOURCES                  = TestNetworkInfo.cpp
TestNetworkInfo_LDFLAGS                  = $(AM_CPPFLAGS)
TestNetworkInfo_LDADD                    = libWeaveTestCommon.a $(COMMON_LDADD)

TestPASE_SOURCES                         = TestPASE.cpp
TestPASE_LDFLAGS                         = $(AM_CPPFLAGS)
TestPASE_LDADD                           = libWeaveTestCommon.a $(COMMON_LDADD)

TestPacketBuffer_SOURCES                 = TestPacketBuffer.cpp
TestPacketBuffer_LDADD                   = libWeaveTestCommon.a $(COMMON_LDADD)

TestPasscodeEnc_SOURCES                  = TestPasscodeEnc.cpp
TestPasscodeEnc_LDADD                    = libWeaveTestCommon.a $(COMMON_LDADD)

TestPersistedCounter_SOURCES             = TestPersistedCounter.cpp TestPersistedStorageImplementation.cpp
TestPersistedCounter_LDADD               = libWeaveTestCommon.a $(COMMON_LDADD)

TestPersistedStorage_SOURCES             = TestPersistedStorage.cpp TestPersistedStorageImplementation.cpp
TestPersistedStorage_LDADD               = libWeaveTestCommon.a $(COMMON_LDADD)

TestProfileStringSupport_SOURCES         = TestProfileStringSupport.cpp
TestProfileStringSupport_LDADD           = $(COMMON_LDADD)

TestProvHash_SOURCES                     = TestProvHash.cpp
TestProvHash_LDADD                       = $(COMMON_LDADD)

TestRADaemon_SOURCES                     = TestRADaemon.cpp
TestRADaemon_CPPFLAGS                    = $(AM_CPPFLAGS) -I$(top_srcdir)/src/ra-daemon
TestRADaemon_LDADD                       = libWeaveTestCommon.a -L$(top_builddir)/src/ra-daemon -lRADaemon $(COMMON_LDADD)

TestRetainedPacketBuffer_SOURCES         = TestRetainedPacketBuffer.cpp
TestRetainedPacketBuffer_LDADD           = libWeaveTestCommon.a $(COMMON_LDADD)

TestSerialNumUtils_SOURCES               = TestSerialNumUtils.cpp
TestSerialNumUtils_LDADD                 = $(COMMON_LDADD)

TestSoftwareUpdate_SOURCES               = TestSoftwareUpdate.cpp
TestSoftwareUpdate_LDFLAGS               = $(AM_CPPFLAGS)
TestSoftwareUpdate_LDADD                 = $(COMMON_LDADD)

TestSystemObject_SOURCES                 = TestSystemObject.cpp
TestSystemObject_CPPFLAGS                = $(AM_CPPFLAGS) $(PTHREAD_CFLAGS)
TestSystemObject_LDFLAGS                 = $(PTHREAD_CFLAGS)
TestSystemObject_LDADD                   = libWeaveTestCommon.a $(PTHREAD_LIBS) $(COMMON_LDADD)

TestSystemTimer_SOURCES                  = TestSystemTimer.cpp
TestSystemTimer_LDADD                    = libWeaveTestCommon.a $(COMMON_LDADD)

TestTAKE_SOURCES                         = TestTAKE.cpp
TestTAKE_LDFLAGS                         = $(AM_CPPFLAGS)
TestTAKE_LDADD                           = libWeaveTestCommon.a $(COMMON_LDADD)

TestTLV_SOURCES                          = TestTLV.cpp
TestTLV_LDADD                            = libWeaveTestCommon.a $(COMMON_LDADD)

TestTimeUtils_SOURCES                    = TestTimeUtils.cpp
TestTimeUtils_LDADD                      = $(COMMON_LDADD)

TestTimeZone_SOURCES                     = TestTimeZone.cpp
TestTimeZone_LDADD                       = $(COMMON_LDADD)

TestWRMP_SOURCES                         = TestWRMP.cpp
TestWRMP_LDFLAGS                         = $(AM_CPPFLAGS)
TestWRMP_LDADD                           = libWeaveTestCommon.a $(COMMON_LDADD)

if WEAVE_BUILD_WARM
TestWarm_SOURCES                         = TestWarm.cpp TestPersistedStorageImplementation.cpp
TestWarm_LDFLAGS                         = $(AM_CPPFLAGS)
TestWarm_LDADD                           = libWeaveTestGroupKeyStore.a $(COMMON_LDADD)
endif

TestWeaveCert_SOURCES                    = TestWeaveCert.cpp TestWeaveCertData.cpp TestPersistedStorageImplementation.cpp
TestWeaveCert_LDADD                      = libWeaveTestCommon.a $(COMMON_LDADD)

TestWeaveEncoding_SOURCES                = TestWeaveEncoding.cpp
TestWeaveEncoding_LDADD                  =

TestWeaveFabricState_SOURCES             = TestWeaveFabricState.cpp TestPersistedStorageImplementation.cpp
TestWeaveFabricState_LDFLAGS             = $(AM_CPPFLAGS)
TestWeaveFabricState_LDADD               = libWeaveTestCommon.a $(COMMON_LDADD)

TestWeaveMessageLayer_SOURCES            = TestWeaveMessageLayer.cpp
TestWeaveMessageLayer_LDFLAGS            = $(AM_CPPFLAGS)
TestWeaveMessageLayer_LDADD              = libWeaveTestCommon.a $(COMMON_LDADD)

TestWeaveProvBundle_SOURCES              = TestWeaveProvBundle.cpp
TestWeaveProvBundle_LDFLAGS              = $(AM_CPPFLAGS)
TestWeaveProvBundle_LDADD                = $(COMMON_LDADD)

TestWeaveSignature_SOURCES               = TestWeaveSignature.cpp
TestWeaveSignature_LDFLAGS               = $(AM_CPPFLAGS)
TestWeaveSignature_LDADD                 = $(COMMON_LDADD)

TestWeaveTunnelBR_SOURCES                = TestWeaveTunnelBR.cpp
TestWeaveTunnelBR_LDFLAGS                = $(AM_CPPFLAGS)
TestWeaveTunnelBR_LDADD                  = libWeaveTestCommon.a $(COMMON_LDADD)

TestWeaveTunnelServer_SOURCES            = TestWeaveTunnelServer.cpp
TestWeaveTunnelServer_LDFLAGS            = $(AM_CPPFLAGS)
TestWeaveTunnelServer_LDADD              = libWeaveTestCommon.a $(COMMON_LDADD)

TestWdmNext_SOURCES                      = TestWdmNext.cpp						\
                                           MockSinkTraits.cpp						\
                                           MockSourceTraits.cpp						\
                                           MockLoggingManager.cpp					\
                                           MockEvents.cpp                                               \
                                           TestWdmSubscriptionlessNotificationSender.cpp		\
                                           TestWdmSubscriptionlessNotificationReceiver.cpp		\
                                           schema/nest/test/trait/TestATrait.cpp			\
                                           schema/nest/test/trait/TestBTrait.cpp			\
                                           schema/nest/test/trait/TestCTrait.cpp            \
                                           schema/nest/test/trait/TestETrait.cpp			\
                                           schema/nest/test/trait/TestCommon.cpp \
                                           schema/weave/trait/locale/LocaleSettingsTrait.cpp		\
                                           schema/weave/trait/locale/LocaleCapabilitiesTrait.cpp	\
                                           schema/weave/trait/security/BoltLockSettingsTrait.cpp	\
                                           schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.cpp	\
										   MockWdmNodeOptions.cpp                   \
                                           MockWdmViewServer.cpp					\
                                           MockWdmViewClient.cpp					\
                                           MockWdmSubscriptionInitiator.cpp				\
                                           MockWdmTestVerifier.cpp	        			\
                                           MockWdmSubscriptionResponder.cpp				\
                                           WdmNextPerfUtility.cpp

TestWdmNext_CPPFLAGS                     = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestWdmNext_LDFLAGS                      = $(AM_CPPFLAGS)
TestWdmNext_LDADD                        = libWeaveTestCommon.a $(COMMON_LDADD)

TestWdmOneWayCommandSender_SOURCES       = TestWdmOneWayCommandSender.cpp

TestWdmOneWayCommandSender_CPPFLAGS      = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestWdmOneWayCommandSender_LDFLAGS       = $(AM_CPPFLAGS)
TestWdmOneWayCommandSender_LDADD         = libWeaveTestCommon.a $(COMMON_LDADD)

TestWdmOneWayCommandReceiver_SOURCES     = TestWdmOneWayCommandReceiver.cpp				\
                                           MockSourceTraits.cpp						\
                                           MockLoggingManager.cpp					\
                                           MockEvents.cpp						\
                                           schema/nest/test/trait/TestATrait.cpp			\
                                           schema/nest/test/trait/TestBTrait.cpp			\
                                           schema/nest/test/trait/TestCTrait.cpp			\
                                           schema/nest/test/trait/TestETrait.cpp			\
                                           schema/nest/test/trait/TestCommon.cpp                        \
                                           schema/weave/trait/locale/LocaleSettingsTrait.cpp		\
                                           schema/weave/trait/locale/LocaleCapabilitiesTrait.cpp	\
                                           schema/weave/trait/security/BoltLockSettingsTrait.cpp	\
                                           schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.cpp

TestWdmOneWayCommandReceiver_CPPFLAGS    = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
TestWdmOneWayCommandReceiver_LDFLAGS     = $(AM_CPPFLAGS)
TestWdmOneWayCommandReceiver_LDADD       = libWeaveTestCommon.a $(COMMON_LDADD)


infratest_SOURCES                        = infratest.cpp
infratest_LDADD                          = $(COMMON_LDADD)

mock_device_SOURCES                      = mock-device.cpp                                          \
                                           MockDCLPServer.cpp                                       \
                                           MockDCServer.cpp                                         \
                                           MockDDServer.cpp                                         \
                                           MockFPServer.cpp                                         \
                                           MockNPServer.cpp                                         \
                                           MockOpActions.cpp                                        \
                                           MockPairingServer.cpp                                    \
                                           MockSPServer.cpp                                         \
                                           MockTimeSyncServer.cpp                                   \
                                           MockTimeSyncClient.cpp                                   \
                                           MockTimeSyncCoordinator.cpp                              \
                                           MockTimeSyncUtil.cpp                                     \
                                           MockTokenPairingServer.cpp                               \
                                           MockSinkTraits.cpp                                       \
                                           MockSourceTraits.cpp                                     \
                                           schema/nest/test/trait/TestATrait.cpp                    \
                                           schema/nest/test/trait/TestBTrait.cpp                    \
                                           schema/nest/test/trait/TestCTrait.cpp                    \
                                           schema/nest/test/trait/TestETrait.cpp                    \
                                           schema/nest/test/trait/TestCommon.cpp \
                                           schema/weave/trait/locale/LocaleSettingsTrait.cpp        \
                                           schema/weave/trait/locale/LocaleCapabilitiesTrait.cpp    \
                                           schema/weave/trait/security/BoltLockSettingsTrait.cpp    \
                                           schema/weave/trait/telemetry/NetworkWiFiTelemetryTrait.cpp \
                                           MockWdmViewServer.cpp                                    \
                                           MockWdmViewClient.cpp                                    \
                                           MockWdmSubscriptionInitiator.cpp                         \
                                           MockWdmTestVerifier.cpp	                            \
                                           MockWdmSubscriptionResponder.cpp                         \
										   MockWdmNodeOptions.cpp                                   \
                                           MockLoggingManager.cpp                                   \
                                           MockEvents.cpp

if WEAVE_BUILD_LEGACY_WDM
mock_device_SOURCES                      += \
                                           MockDMPublisher.cpp                                      \
                                           TestProfile.cpp
endif

TestErrorStr_SOURCES                     = TestErrorStr.cpp
TestErrorStr_LDADD                       = $(COMMON_LDADD)

TestStatusReportStr_SOURCES              = TestStatusReportStr.cpp
TestStatusReportStr_LDADD                = $(COMMON_LDADD)

TestThermostatStatus_SOURCES             = TestThermostatStatus.cpp
TestThermostatStatus_LDADD               = $(COMMON_LDADD)

TestWoble_SOURCES                        = TestWoble.cpp
TestWoble_LDADD                          = libWeaveTestCommon.a $(COMMON_LDADD)

TestPairingCodeUtils_SOURCES             = TestPairingCodeUtils.cpp
TestPairingCodeUtils_LDADD               = $(COMMON_LDADD)

TestResourceIdentifier_SOURCES           = TestResourceIdentifier.cpp
TestResourceIdentifier_LDADD             = $(COMMON_LDADD) $(TEST_PLATFORM_LDADD)

TestInetLayerDNS_SOURCES                = TestInetLayerDNS.cpp
TestInetLayerDNS_LDFLAGS                = $(AM_CPPFLAGS)
TestInetLayerDNS_LDADD                  = libWeaveTestCommon.a $(COMMON_LDADD)

mock_device_CPPFLAGS                     = $(AM_CPPFLAGS) -I$(top_srcdir)/src/test-apps/schema
mock_device_LDADD                        = libWeaveTestCommon.a $(COMMON_LDADD)

if CONFIG_BLE_PLATFORM_BLUEZ
mock_device_LDADD                       +=  @GLIB_LIBS@ @DBUS_LIBS@ -ldl -lrt
endif

mock_device_LDFLAGS                      = $(AM_CPPFLAGS)

mock_weave_bg_SOURCES                    = mock-weave-bg.cpp
mock_weave_bg_LDFLAGS                    = $(AM_CPPFLAGS)
mock_weave_bg_LDADD                      = libWeaveTestCommon.a $(COMMON_LDADD)

wdmtest_SOURCES                          = wdmtest.cpp
wdmtest_LDFLAGS                          = $(AM_CPPFLAGS)
wdmtest_LDADD                            = libWeaveTestCommon.a $(COMMON_LDADD)

weave_bdx_client_development_SOURCES     = weave-bdx-client-development.cpp  \
                                           weave-bdx-common-development.cpp
weave_bdx_client_development_LDFLAGS     = $(AM_CPPFLAGS)
weave_bdx_client_development_LDADD       = libWeaveTestCommon.a $(COMMON_LDADD)

weave_bdx_server_development_SOURCES     = weave-bdx-server-development.cpp  \
                                           weave-bdx-common-development.cpp
weave_bdx_server_development_LDFLAGS     = $(AM_CPPFLAGS)

weave_bdx_server_development_LDADD       = libWeaveTestCommon.a $(COMMON_LDADD)

if WEAVE_WITH_CURL
weave_bdx_client_development_LDADD      += $(CURL_LIBS)
weave_bdx_server_development_LDADD      += $(CURL_LIBS)
endif # WEAVE_WITH_CURL

weave_bdx_client_v0_SOURCES              = weave-bdx-client-v0.cpp
weave_bdx_client_v0_LDFLAGS              = ${AM_CPPFLAGS}
weave_bdx_client_v0_LDADD                = libWeaveTestCommon.a $(COMMON_LDADD)

weave_bdx_server_v0_SOURCES              = weave-bdx-server-v0.cpp              \
                                           nlweavebdxserver.cpp
weave_bdx_server_v0_LDFLAGS              = ${AM_CPPFLAGS}
weave_bdx_server_v0_LDADD                = libWeaveTestCommon.a $(COMMON_LDADD)

weave_connection_tunnel_SOURCES          = weave-connection-tunnel.cpp
weave_connection_tunnel_LDFLAGS          = ${AM_CPPFLAGS}
weave_connection_tunnel_LDADD            = libWeaveTestCommon.a $(COMMON_LDADD)

weave_dd_client_SOURCES                  = weave-dd-client.cpp
weave_dd_client_LDFLAGS                  = ${AM_CPPFLAGS}
weave_dd_client_LDADD                    = libWeaveTestCommon.a $(COMMON_LDADD)

weave_device_descriptor_SOURCES          = weave-device-descriptor.cpp
weave_device_descriptor_LDFLAGS          = ${AM_CPPFLAGS}
weave_device_descriptor_LDADD            = libWeaveTestCommon.a $(COMMON_LDADD)

weave_heartbeat_SOURCES                  = weave-heartbeat.cpp
weave_heartbeat_LDFLAGS                  = ${AM_CPPFLAGS}
weave_heartbeat_LDADD                    = libWeaveTestCommon.a  $(COMMON_LDADD)

weave_key_export_SOURCES                 = weave-key-export.cpp
weave_key_export_LDFLAGS                 = ${AM_CPPFLAGS}
weave_key_export_LDADD                   = libWeaveTestCommon.a $(COMMON_LDADD)

weave_ping_SOURCES                       = weave-ping.cpp
weave_ping_LDFLAGS                       = ${AM_CPPFLAGS}
weave_ping_LDADD                         = libWeaveTestCommon.a $(COMMON_LDADD)

weave_service_dir_SOURCES                = weave-service-dir.cpp \
                                           MockSDServer.cpp
weave_service_dir_LDFLAGS                = ${AM_CPPFLAGS}
weave_service_dir_LDADD                  = libWeaveTestCommon.a $(COMMON_LDADD)

weave_swu_client_SOURCES                 = weave-swu-client.cpp  \
                                           nlweaveswuclient.cpp  \
                                           MockIAServer.cpp
weave_swu_client_LDFLAGS                 = ${AM_CPPFLAGS}
weave_swu_client_LDADD                   = libWeaveTestCommon.a $(COMMON_LDADD)

weave_swu_server_SOURCES                 = weave-swu-server.cpp  \
                                           MockSWUServer.cpp
weave_swu_server_LDFLAGS                 = ${AM_CPPFLAGS}
weave_swu_server_LDADD                   = libWeaveTestCommon.a $(COMMON_LDADD)

if WEAVE_BUILD_COVERAGE
CLEANFILES                               = $(wildcard *.gcda *.gcno)

if WEAVE_BUILD_COVERAGE_REPORTS
# The bundle should positively be qualified with the absolute build
# path. Otherwise, VPATH will get auto-prefixed to it if there is
# already such a directory in the non-colocated source tree.

WEAVE_COVERAGE_BUNDLE                    = ${abs_builddir}/${PACKAGE}${NL_COVERAGE_BUNDLE_SUFFIX}
WEAVE_COVERAGE_INFO                      = ${WEAVE_COVERAGE_BUNDLE}/${PACKAGE}${NL_COVERAGE_INFO_SUFFIX}

WEAVE_LIBS_COVERAGE_BUNDLE               = ${abs_builddir}/${PACKAGE}-libs${NL_COVERAGE_BUNDLE_SUFFIX}
WEAVE_LIBS_COVERAGE_SOURCE               = ${abs_builddir}/${PACKAGE}-libs
WEAVE_LIBS_COVERAGE_INFO                 = ${WEAVE_LIBS_COVERAGE_BUNDLE}/${PACKAGE}-libs${NL_COVERAGE_INFO_SUFFIX}

$(WEAVE_COVERAGE_BUNDLE):
	$(call create-directory)

$(WEAVE_LIBS_COVERAGE_SOURCE):
	$(call create-directory)

$(WEAVE_LIBS_COVERAGE_BUNDLE):
	$(call create-directory)

$(WEAVE_COVERAGE_INFO): check-local | $(WEAVE_COVERAGE_BUNDLE)
	$(call generate-coverage-report,${abs_top_builddir})

# collect all the *.gcno & *gcda files of libWeave.a for Weave Library coverage analysis, rename the *h file paths to make it a clean report
$(WEAVE_LIBS_COVERAGE_INFO): $(WEAVE_COVERAGE_INFO) | $(WEAVE_LIBS_COVERAGE_BUNDLE) $(WEAVE_LIBS_COVERAGE_SOURCE)
	$(AM_V_at)find ${abs_top_builddir} -name "libWeave_a*.gc*" ! -path "${WEAVE_LIBS_COVERAGE_SOURCE}/*" | xargs -i cp {} ${WEAVE_LIBS_COVERAGE_SOURCE}
	$(call generate-coverage-report,${WEAVE_LIBS_COVERAGE_SOURCE})
	$(AM_V_at)$(SED) \
	    -e 's,${abs_top_builddir},$(abspath ${abs_top_srcdir}),g' \
	    -e 's,include/BleLayer/,ble/,g' \
	    -e 's,include/InetLayer/,inet/,g' \
	    -e 's,include/SystemLayer/,system/,g' \
	    -e 's,include/Warm/,warm/,g' \
	    -e 's,include/Weave/Core/,lib/core/,g' \
	    -e 's,include/Weave/Profiles/,lib/profiles/,g' \
	    -e 's,include/Weave/Support/,lib/support/,g' \
	    -e '/\/nlio/,/end_of_record/'d \
	    < $(@) \
	    > $(@).clean
	$(NL_V_GENHTML)$(GENHTML) $(NL_V_GENHTML_FLAGS) --config-file="$(abs_top_nlbuild_autotools_dir)/etc/lcov.config" $(WEAVE_LIBS_COVERAGE_INFO).clean --output-directory $(WEAVE_LIBS_COVERAGE_BUNDLE)
	$(AM_V_at)rm -rf $(WEAVE_LIBS_COVERAGE_SOURCE)

coverage-local: $(WEAVE_LIBS_COVERAGE_INFO)

clean-local: clean-local-coverage

.PHONY: clean-local-coverage
clean-local-coverage:
	-$(AM_V_at)rm -rf $(WEAVE_COVERAGE_BUNDLE)
	-$(AM_V_at)rm -rf $(WEAVE_LIBS_COVERAGE_BUNDLE)
endif # WEAVE_BUILD_COVERAGE_REPORTS
endif # WEAVE_BUILD_COVERAGE

# Targets and commands for installing and uninstalling the bin_LINKS
# programs as symbolic links which are trampolined through an
# execution script.

install-exec-local: install-exec-binLINKS

uninstall-local: uninstall-exec-binLINKS

install-exec-binLINKS: $(bin_LINKS)
	@$(NORMAL_INSTALL)
	@list='$(bin_LINKS)'; test -n "$(bindir)" || list=; \
	if test -n "$$list"; then \
          echo "  MKDIR    $(DESTDIR)$(bindir)"; \
	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
	fi; \
	for link in $${list}; do \
            echo "  LN       $${link}"; \
	    $(LN_S) -f "../`echo ${libexecdir} | sed -e 's,${exec_prefix}/,,g'`/weave-run" "$(DESTDIR)$(bindir)/$${link}"; \
        done

uninstall-exec-binLINKS: $(bin_LINKS)
	@$(NORMAL_UNINSTALL)
	@list='$(bin_LINKS)'; test -n "$(bindir)" || exit 0; \
	files=`for p in $$list; do echo "$$p"; done | \
	       sed -e 's,.*/,,;$(transform)'`; \
	dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
endif # WEAVE_BUILD_TESTS

include $(abs_top_nlbuild_autotools_dir)/automake/post.am
