test: make the memory leak checker for tests work again

It turns out that these static constructors declared with
`__declspec(allocate(".CRT$XCU"))` don't work if you try to link them
from a static library. With this patch we go back to passing
'leak-check.c' as an extra source file when compiling a test.
This commit is contained in:
Bert Belder 2020-05-09 09:18:58 +02:00
parent 532d57ed31
commit 126c00944c
No known key found for this signature in database
GPG Key ID: 7A77887B2E2ED461

View File

@ -27,7 +27,8 @@ file(GLOB SOURCES_INCLUDE include/*.h)
file(GLOB SOURCES_SRC src/*.c src/*.h) file(GLOB SOURCES_SRC src/*.c src/*.h)
file(GLOB SOURCES_SRC_C src/*.c) file(GLOB SOURCES_SRC_C src/*.c)
file(GLOB SOURCES_TEST test/*.c) file(GLOB SOURCES_TEST test/*.c)
file(GLOB SOURCES_TEST_SHARED test/shared/*.c test/shared/*.h) file(GLOB SOURCES_TEST_LEAK_CHECK test/shared/leak-check.*)
file(GLOB SOURCES_TEST_UTIL test/shared/test-util.*)
set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY USE_FOLDERS ON)
source_group(doc FILES ${SOURCES_DOC}) source_group(doc FILES ${SOURCES_DOC})
@ -35,7 +36,7 @@ source_group(config FILES ${SOURCES_CONFIG})
source_group(include FILES ${SOURCES_INCLUDE}) source_group(include FILES ${SOURCES_INCLUDE})
source_group(src FILES ${SOURCES_SRC}) source_group(src FILES ${SOURCES_SRC})
source_group("" FILES ${SOURCES_TEST}) source_group("" FILES ${SOURCES_TEST})
source_group(test/shared FILES ${SOURCES_TEST_SHARED}) source_group(test/shared FILES ${SOURCES_TEST_LEAK_CHECK} ${SOURCES_TEST_UTIL})
get_filename_component(LIB_NAME ${SOURCES_INCLUDE} NAME_WE) get_filename_component(LIB_NAME ${SOURCES_INCLUDE} NAME_WE)
@ -132,7 +133,7 @@ set(TESTING_LIB_TARGET "${LIB_NAME}-testing.lib")
add_library( add_library(
${TESTING_LIB_TARGET} STATIC ${TESTING_LIB_TARGET} STATIC
${SOURCES_CONFIG_EXTERNAL_STATIC} ${SOURCES_CONFIG_INTERNAL_DEFAULT} ${SOURCES_CONFIG_EXTERNAL_STATIC} ${SOURCES_CONFIG_INTERNAL_DEFAULT}
${SOURCES_INCLUDE} ${SOURCES_SRC} ${SOURCES_TEST_SHARED} ${SOURCES_INCLUDE} ${SOURCES_SRC} ${SOURCES_TEST_UTIL}
) )
target_include_directories( target_include_directories(
${TESTING_LIB_TARGET} PUBLIC ${TESTING_LIB_TARGET} PUBLIC
@ -145,7 +146,7 @@ set_target_properties(
foreach(TEST_SOURCE ${SOURCES_TEST}) foreach(TEST_SOURCE ${SOURCES_TEST})
get_filename_component(TEST_NAME ${TEST_SOURCE} NAME_WE) get_filename_component(TEST_NAME ${TEST_SOURCE} NAME_WE)
add_executable(${TEST_NAME} ${TEST_SOURCE}) add_executable(${TEST_NAME} ${TEST_SOURCE} ${SOURCES_TEST_LEAK_CHECK})
target_include_directories( target_include_directories(
${TEST_NAME} PUBLIC ${TEST_NAME} PUBLIC
config/external/static config/internal/default include src test/shared config/external/static config/internal/default include src test/shared