@@ -78,6 +78,74 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "C51")
7878 endif ()
7979 set (CMOCK_RB "${CMOCK_RB_DEFAULT} " CACHE FILEPATH "Path to CMock lib/cmock.rb used by regen_mock_zw_transport_api" FORCE )
8080 endif ()
81+
82+ set (CMOCK_RUNTIME_C "${CMOCK_ROOT} /src/cmock.c"
83+ CACHE FILEPATH "Path to CMock runtime cmock.c used by unit tests" )
84+ if (NOT EXISTS "${CMOCK_RUNTIME_C} " )
85+ message (FATAL_ERROR "CMock runtime source not found: ${CMOCK_RUNTIME_C} " )
86+ endif ()
87+
88+ set (CMOCK_GEN_DIR "${CMAKE_BINARY_DIR} /cmock_gen" )
89+ set (CMOCK_INPUT_DIR "${CMAKE_BINARY_DIR} /cmock-input" )
90+ set (CMOCK_INPUT_HEADER "${CMOCK_INPUT_DIR} /ZW_transport_api.h" )
91+ set (MOCK_ZW_TRANSPORT_API_C "${CMOCK_GEN_DIR} /MockZW_transport_api.c" )
92+ set (MOCK_ZW_TRANSPORT_API_H "${CMOCK_GEN_DIR} /MockZW_transport_api.h" )
93+
94+ add_custom_command (
95+ OUTPUT "${CMOCK_INPUT_HEADER} "
96+ COMMAND ${CMAKE_COMMAND} -E make_directory "${CMOCK_INPUT_DIR} "
97+ COMMAND "${CMAKE_C_COMPILER} " -E -P
98+ -DZW_CONTROLLER_BRIDGE
99+ -I "${CMAKE_SOURCE_DIR} /Z-Wave/include"
100+ "${CMAKE_SOURCE_DIR} /Z-Wave/include/ZW_transport_api.h"
101+ -o "${CMOCK_INPUT_HEADER} "
102+ DEPENDS "${CMAKE_SOURCE_DIR} /Z-Wave/include/ZW_transport_api.h"
103+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
104+ COMMENT "Preprocessing ZW_transport_api.h for CMock generation" )
105+
106+ add_custom_command (
107+ OUTPUT "${MOCK_ZW_TRANSPORT_API_C} " "${MOCK_ZW_TRANSPORT_API_H} "
108+ COMMAND ${CMAKE_COMMAND} -E make_directory "${CMOCK_GEN_DIR} "
109+ COMMAND ${CMAKE_COMMAND} -E env ruby "${CMOCK_RB} "
110+ -o "${CMAKE_CURRENT_SOURCE_DIR} /cmock/cmock_config.yml"
111+ "${CMOCK_INPUT_HEADER} "
112+ DEPENDS "${CMOCK_INPUT_HEADER} " "${CMAKE_CURRENT_SOURCE_DIR} /cmock/cmock_config.yml"
113+ WORKING_DIRECTORY "${CMAKE_BINARY_DIR} "
114+ COMMENT "Generating MockZW_transport_api in build directory" )
115+ set_source_files_properties ("${MOCK_ZW_TRANSPORT_API_C} " "${MOCK_ZW_TRANSPORT_API_H} " PROPERTIES GENERATED TRUE )
116+
117+ add_custom_target (regen_mock_zw_transport_api
118+ DEPENDS "${MOCK_ZW_TRANSPORT_API_C} " "${MOCK_ZW_TRANSPORT_API_H} " )
119+
120+ add_unity_test (NAME test_t2_zipgw_runtime_nodeid FILES
121+ test_t2_zipgw_runtime_nodeid.c
122+ "${CMOCK_RUNTIME_C} "
123+ "${MOCK_ZW_TRANSPORT_API_C} "
124+ ${CMAKE_CURRENT_SOURCE_DIR} /../transport_service/transport_service2.c
125+ ${CMAKE_CURRENT_SOURCE_DIR} /../transport_service/transport2_fsm.c )
126+ add_dependencies (test_t2_zipgw_runtime_nodeid regen_mock_zw_transport_api )
127+ target_compile_definitions (test_t2_zipgw_runtime_nodeid PRIVATE ZIPGW )
128+
129+ # Explicitly undefine NEW_TEST_T2 here so this regression test follows the
130+ # production TS code path.
131+ target_compile_options (test_t2_zipgw_runtime_nodeid PRIVATE -U NEW_TEST_T2 )
132+ # Generated CMock code may reference legacy Unity detail macros that are
133+ # not available in the Unity variant used by this tree.
134+ target_compile_options (test_t2_zipgw_runtime_nodeid PRIVATE
135+ -include "${CMAKE_CURRENT_SOURCE_DIR} /cmock/cmock_legacy_unity_compat.h" )
136+ target_include_directories (test_t2_zipgw_runtime_nodeid PRIVATE
137+ ${CMAKE_BINARY_DIR}
138+ "${CMOCK_GEN_DIR} "
139+ "${CMOCK_ROOT} /src"
140+ ${CMAKE_CURRENT_SOURCE_DIR} /../transport_service/
141+ ${CMAKE_CURRENT_SOURCE_DIR} /../include/
142+ ${CMAKE_SOURCE_DIR} /src
143+ ${CMAKE_SOURCE_DIR} /src/transport
144+ ${CMAKE_SOURCE_DIR} /src/utls
145+ ${CMAKE_SOURCE_DIR} /contiki/core
146+ ${CMAKE_SOURCE_DIR} /contiki/core/sys
147+ ${CMAKE_SOURCE_DIR} /contiki/platform/linux
148+ ${CMAKE_SOURCE_DIR} /Z-Wave/include )
81149endif ()
82150
83151add_definitions ( -DRANDLEN=64 )
0 commit comments