diff options
author | Andreas Schneider <asn@samba.org> | 2018-05-02 17:05:21 +0200 |
---|---|---|
committer | Andreas Schneider <asn@samba.org> | 2018-05-03 13:15:25 +0200 |
commit | 7b01e29d2c95216c842b56b89c88e900cfb4991b (patch) | |
tree | 00c9020d453e94089e5915b083843d53dc3372db /tests/CMakeLists.txt | |
parent | 1ff35b6bb9a2702c4b0785281f22018b05e549c8 (diff) | |
download | socket_wrapper-7b01e29d2c95216c842b56b89c88e900cfb4991b.tar.gz socket_wrapper-7b01e29d2c95216c842b56b89c88e900cfb4991b.tar.xz socket_wrapper-7b01e29d2c95216c842b56b89c88e900cfb4991b.zip |
cmake: Run threaded tests with helgrind
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'tests/CMakeLists.txt')
-rw-r--r-- | tests/CMakeLists.txt | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 26173bb..58bc732 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -19,6 +19,13 @@ target_link_libraries(${TORTURE_LIBRARY} ${SWRAP_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) +set(SWRAP_THREADED_TESTS + test_thread_sockets + test_thread_echo_tcp_connect + test_thread_echo_tcp_write_read + test_thread_echo_tcp_sendmsg_recvmsg + test_thread_echo_udp_send_recv) + set(SWRAP_TESTS test_ioctl test_tcp_listen @@ -38,12 +45,8 @@ set(SWRAP_TESTS test_max_sockets test_close_failure test_fork_thread_deadlock - test_thread_sockets - test_thread_echo_tcp_connect - test_thread_echo_tcp_write_read - test_thread_echo_tcp_sendmsg_recvmsg - test_thread_echo_udp_send_recv - test_tcp_socket_overwrite) + test_tcp_socket_overwrite + ${SWRAP_THREADED_TESTS}) if (HAVE_STRUCT_MSGHDR_MSG_CONTROL) set(SWRAP_TESTS ${SWRAP_TESTS} test_sendmsg_recvmsg_fd) @@ -67,6 +70,32 @@ foreach(_SWRAP_TEST ${SWRAP_TESTS}) endif() endforeach() +if (HELGRIND_TESTING) + find_program(VALGRIND_EXECUTABLE valgrind) + if (VALGRIND_EXECUTABLE) + set(VALGRIND_HELGRIND_OPTIONS --trace-children=yes --tool=helgrind --xml=yes --read-var-info=yes) + + foreach(_TEST ${SWRAP_THREADED_TESTS}) + set(_HELGRIND_TEST "helgrind_${_TEST}") + + add_test(NAME ${_HELGRIND_TEST} COMMAND ${VALGRIND_EXECUTABLE} ${VALGRIND_HELGRIND_OPTIONS} --xml-file=${CMAKE_CURRENT_BINARY_DIR}/helgrind_${_TEST}.xml ${CMAKE_CURRENT_BINARY_DIR}/${_TEST}) + if (OSX) + set_property( + TEST + ${_HELGRIND_TEST} + PROPERTY + ENVIRONMENT DYLD_FORCE_FLAT_NAMESPACE=1;DYLD_INSERT_LIBRARIES=${SOCKET_WRAPPER_LOCATION}) + else () + set_property( + TEST + ${_HELGRIND_TEST} + PROPERTY + ENVIRONMENT LD_PRELOAD=${SOCKET_WRAPPER_LOCATION}) + endif() + endforeach() + endif() +endif() + # test_fork_pthread add_library(thread_deadlock SHARED thread_deadlock.c) target_link_libraries(thread_deadlock ${CMAKE_THREAD_LIBS_INIT}) |