|
@@ -7,11 +7,14 @@ include_directories(${CHECK_INCLUDE_DIRS})
|
|
|
|
|
|
find_package(Check REQUIRED)
|
|
|
find_package(Threads REQUIRED)
|
|
|
+if(UA_ENABLE_VALGRIND_UNIT_TESTS)
|
|
|
+ find_package(Valgrind REQUIRED)
|
|
|
+endif()
|
|
|
|
|
|
set(LIBS ${CHECK_LIBRARIES} ${open62541_LIBRARIES})
|
|
|
if(NOT WIN32)
|
|
|
list(APPEND LIBS pthread m)
|
|
|
- if (NOT APPLE)
|
|
|
+ if(NOT APPLE)
|
|
|
list(APPEND LIBS rt subunit)
|
|
|
endif()
|
|
|
else()
|
|
@@ -25,20 +28,16 @@ if(CMAKE_COMPILER_IS_GNUCC OR "x${CMAKE_C_COMPILER_ID}" STREQUAL "xClang")
|
|
|
add_definitions(-Wno-sign-conversion)
|
|
|
endif()
|
|
|
|
|
|
-# Valgrind definition
|
|
|
-set(UA_TEST_WITH_VALGRIND ON)
|
|
|
-SET(VALGRIND_FLAGS --quiet --trace-children=yes --leak-check=full)
|
|
|
+# Unit Test Definition Macro
|
|
|
+set(VALGRIND_FLAGS --quiet --trace-children=yes --leak-check=full)
|
|
|
macro(add_test_valgrind TEST_NAME)
|
|
|
- IF(UA_TEST_WITH_VALGRIND)
|
|
|
- add_test(${TEST_NAME}
|
|
|
- valgrind --error-exitcode=1 ${VALGRIND_FLAGS} ${ARGN} )
|
|
|
- ELSE()
|
|
|
+ if(UA_ENABLE_VALGRIND_UNIT_TESTS)
|
|
|
+ add_test(${TEST_NAME} valgrind --error-exitcode=1 ${VALGRIND_FLAGS} ${ARGN})
|
|
|
+ else()
|
|
|
add_test(${TEST_NAME} ${ARGN})
|
|
|
- ENDIF()
|
|
|
+ endif()
|
|
|
endmacro()
|
|
|
|
|
|
-
|
|
|
-
|
|
|
# the unit test are built directly on the open62541 object files. so they can
|
|
|
# access symbols that are hidden/not exported to the shared library
|
|
|
|
|
@@ -58,6 +57,12 @@ add_executable(check_chunking check_chunking.c $<TARGET_OBJECTS:open62541-object
|
|
|
target_link_libraries(check_chunking ${LIBS})
|
|
|
add_test_valgrind(chunking ${CMAKE_CURRENT_BINARY_DIR}/check_chunking)
|
|
|
|
|
|
+add_executable(check_utils check_utils.c $<TARGET_OBJECTS:open62541-object>)
|
|
|
+target_link_libraries(check_utils ${LIBS})
|
|
|
+add_test_valgrind(check_utils ${CMAKE_CURRENT_BINARY_DIR}/check_utils)
|
|
|
+
|
|
|
+# Test Server
|
|
|
+
|
|
|
add_executable(check_services_view check_services_view.c $<TARGET_OBJECTS:open62541-object>)
|
|
|
target_link_libraries(check_services_view ${LIBS})
|
|
|
add_test_valgrind(services_view ${CMAKE_CURRENT_BINARY_DIR}/check_services_view)
|
|
@@ -90,7 +95,7 @@ add_executable(check_server_userspace check_server_userspace.c $<TARGET_OBJECTS:
|
|
|
target_link_libraries(check_server_userspace ${LIBS})
|
|
|
add_test_valgrind(check_server_userspace ${CMAKE_CURRENT_BINARY_DIR}/check_server_userspace)
|
|
|
|
|
|
-# test with canned interactions from files
|
|
|
+# Test server with network dumps from files
|
|
|
|
|
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/client_HELOPN.bin
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/client_CLO.bin
|
|
@@ -139,6 +144,8 @@ add_test_valgrind(check_server_binary_messages_write ${CMAKE_CURRENT_BINARY_DIR}
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/client_Write.bin
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/client_CLO.bin)
|
|
|
|
|
|
+# Test Client
|
|
|
+
|
|
|
add_executable(check_client check_client.c $<TARGET_OBJECTS:open62541-object>)
|
|
|
target_link_libraries(check_client ${LIBS})
|
|
|
add_test_valgrind(check_client ${CMAKE_CURRENT_BINARY_DIR}/check_client)
|
|
@@ -146,7 +153,3 @@ add_test_valgrind(check_client ${CMAKE_CURRENT_BINARY_DIR}/check_client)
|
|
|
add_executable(check_client_subscriptions check_client_subscriptions.c $<TARGET_OBJECTS:open62541-object>)
|
|
|
target_link_libraries(check_client_subscriptions ${LIBS})
|
|
|
add_test_valgrind(check_client_subscriptions ${CMAKE_CURRENT_BINARY_DIR}/check_client_subscriptions)
|
|
|
-
|
|
|
-add_executable(check_utils check_utils.c $<TARGET_OBJECTS:open62541-object>)
|
|
|
-target_link_libraries(check_utils ${LIBS})
|
|
|
-add_test_valgrind(check_utils ${CMAKE_CURRENT_BINARY_DIR}/check_utils)
|