From ee1c7fffdbbf6ef9f1f1a661dda12e9dbc3869b6 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Mon, 19 Feb 2024 16:19:21 +0000 Subject: [PATCH] [Minor] Build tests with CTest in Cmake --- CMakeLists.txt | 1 + test/CMakeLists.txt | 94 ++++++++++++++++++++++++--------------------- 2 files changed, 51 insertions(+), 44 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 75455aae8..0671072a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -679,6 +679,7 @@ IF (ENABLE_CLANG_PLUGIN MATCHES "ON") ENDIF () ADD_SUBDIRECTORY(src) +enable_testing() ADD_SUBDIRECTORY(test) ADD_SUBDIRECTORY(utils) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 08e9556f3..67ff98050 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,50 +1,56 @@ -SET(TESTSRC rspamd_mem_pool_test.c - rspamd_statfile_test.c - rspamd_url_test.c - rspamd_dns_test.c - rspamd_dkim_test.c - rspamd_rrd_test.c - rspamd_radix_test.c - rspamd_shingles_test.c - rspamd_upstream_test.c - rspamd_lua_pcall_vs_resume_test.c - rspamd_lua_test.c - rspamd_cryptobox_test.c - rspamd_heap_test.c - rspamd_test_suite.c) +include(CTest) -ADD_EXECUTABLE(rspamd-test EXCLUDE_FROM_ALL ${TESTSRC}) -SET_TARGET_PROPERTIES(rspamd-test PROPERTIES COMPILE_FLAGS "-DRSPAMD_TEST") -ADD_DEPENDENCIES(rspamd-test rspamd-server) -SET_TARGET_PROPERTIES(rspamd-test PROPERTIES LINKER_LANGUAGE CXX) -TARGET_LINK_LIBRARIES(rspamd-test rspamd-server) +IF(BUILD_TESTING MATCHES "ON") + SET(TESTSRC rspamd_mem_pool_test.c + rspamd_statfile_test.c + rspamd_url_test.c + rspamd_dns_test.c + rspamd_dkim_test.c + rspamd_rrd_test.c + rspamd_radix_test.c + rspamd_shingles_test.c + rspamd_upstream_test.c + rspamd_lua_pcall_vs_resume_test.c + rspamd_lua_test.c + rspamd_cryptobox_test.c + rspamd_heap_test.c + rspamd_test_suite.c) -SET(CXXTESTSSRC rspamd_cxx_unit.cxx) + ADD_EXECUTABLE(rspamd-test ${TESTSRC}) + SET_TARGET_PROPERTIES(rspamd-test PROPERTIES COMPILE_FLAGS "-DRSPAMD_TEST") + ADD_DEPENDENCIES(rspamd-test rspamd-server) + SET_TARGET_PROPERTIES(rspamd-test PROPERTIES LINKER_LANGUAGE CXX) + TARGET_LINK_LIBRARIES(rspamd-test rspamd-server) + ADD_TEST(NAME rspamd-test COMMAND rspamd-test "-p" "/rspamd/lua") -ADD_EXECUTABLE(rspamd-test-cxx EXCLUDE_FROM_ALL ${CXXTESTSSRC}) -SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX) -ADD_DEPENDENCIES(rspamd-test-cxx rspamd-server) -TARGET_LINK_LIBRARIES(rspamd-test-cxx PRIVATE rspamd-server) -SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX) + SET(CXXTESTSSRC rspamd_cxx_unit.cxx) -IF(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") - # Also add dependencies for convenience - FILE(GLOB_RECURSE LUA_TESTS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/lua/*.*") - ADD_CUSTOM_TARGET(units-dir COMMAND - ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/lua/unit" - ) - ADD_DEPENDENCIES(rspamd-test units-dir) - FOREACH(_LF IN LISTS LUA_TESTS) - GET_FILENAME_COMPONENT(_NM "${_LF}" NAME) - IF("${_LF}" MATCHES "^.*/unit/.*$") - SET(_DS "${CMAKE_CURRENT_BINARY_DIR}/lua/unit/${_NM}") - ELSE() - SET(_DS "${CMAKE_CURRENT_BINARY_DIR}/lua/${_NM}") - ENDIF() - ADD_CUSTOM_TARGET("${_NM}" COMMAND - ${CMAKE_COMMAND} -E copy_if_different ${_LF} ${_DS} - SOURCES "${_LF}" + ADD_EXECUTABLE(rspamd-test-cxx ${CXXTESTSSRC}) + SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX) + ADD_DEPENDENCIES(rspamd-test-cxx rspamd-server) + TARGET_LINK_LIBRARIES(rspamd-test-cxx PRIVATE rspamd-server) + SET_TARGET_PROPERTIES(rspamd-test-cxx PROPERTIES LINKER_LANGUAGE CXX) + ADD_TEST(NAME rspamd-test-cxx COMMAND rspamd-test-cxx) + + IF(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}") + # Also add dependencies for convenience + FILE(GLOB_RECURSE LUA_TESTS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/lua/*.*") + ADD_CUSTOM_TARGET(units-dir COMMAND + ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/lua/unit" ) - ADD_DEPENDENCIES(rspamd-test "${_NM}") - ENDFOREACH() + ADD_DEPENDENCIES(rspamd-test units-dir) + FOREACH(_LF IN LISTS LUA_TESTS) + GET_FILENAME_COMPONENT(_NM "${_LF}" NAME) + IF("${_LF}" MATCHES "^.*/unit/.*$") + SET(_DS "${CMAKE_CURRENT_BINARY_DIR}/lua/unit/${_NM}") + ELSE() + SET(_DS "${CMAKE_CURRENT_BINARY_DIR}/lua/${_NM}") + ENDIF() + ADD_CUSTOM_TARGET("${_NM}" COMMAND + ${CMAKE_COMMAND} -E copy_if_different ${_LF} ${_DS} + SOURCES "${_LF}" + ) + ADD_DEPENDENCIES(rspamd-test "${_NM}") + ENDFOREACH() + ENDIF() ENDIF() \ No newline at end of file -- 2.39.5