Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[lsan] Run the tests for each supported arch and suffix each one to d…
…istinguish them. Summary: Previously, the tests only ran for the 64-bit equivalent of the default target (see -m64). Given the supported architecture list only contains 64-bit targets, this happens to work out the same as the supported targets in most cases but may matter for X86_64/X86_64h on Darwin. For other targets, the practical effect is that the test names contain the architecture. This resolves some confusion when lsan tests fail since their name no longer implies that they are trying to test the default target. Reviewers: samsonov Subscribers: tberghammer, danalbert, llvm-commits, srhines Differential Revision: http://reviews.llvm.org/D16859 llvm-svn: 260232
- Loading branch information
1 parent
922f95c
commit f6678a6
Showing
3 changed files
with
43 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,47 @@ | ||
set(LSAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) | ||
|
||
set(LSAN_LIT_TEST_MODE "Standalone") | ||
configure_lit_site_cfg( | ||
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in | ||
${CMAKE_CURRENT_BINARY_DIR}/LsanConfig/lit.site.cfg) | ||
set(LSAN_TESTSUITES) | ||
|
||
set(LSAN_TEST_ARCH ${LSAN_SUPPORTED_ARCH}) | ||
if(APPLE) | ||
darwin_filter_host_archs(LSAN_SUPPORTED_ARCH LSAN_TEST_ARCH) | ||
endif() | ||
|
||
foreach(arch ${LSAN_TEST_ARCH}) | ||
string(TOLOWER "-${arch}" LSAN_TEST_CONFIG_SUFFIX) | ||
if(ANDROID OR ${arch} MATCHES "arm|aarch64") | ||
# This is only true if we are cross-compiling. | ||
# Build all tests with host compiler and use host tools. | ||
set(LSAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER}) | ||
set(LSAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS}) | ||
else() | ||
get_target_flags_for_arch(${arch} LSAN_TEST_TARGET_CFLAGS) | ||
string(REPLACE ";" " " LSAN_TEST_TARGET_CFLAGS "${LSAN_TEST_TARGET_CFLAGS}") | ||
endif() | ||
|
||
string(TOUPPER ${arch} ARCH_UPPER_CASE) | ||
set(LSAN_LIT_TEST_MODE "Standalone") | ||
set(CONFIG_NAME ${ARCH_UPPER_CASE}LsanConfig) | ||
|
||
configure_lit_site_cfg( | ||
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in | ||
${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg) | ||
list(APPEND LSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) | ||
|
||
set(CONFIG_NAME ${ARCH_UPPER_CASE}AsanConfig) | ||
set(LSAN_LIT_TEST_MODE "AddressSanitizer") | ||
|
||
set(LSAN_LIT_TEST_MODE "AddressSanitizer") | ||
configure_lit_site_cfg( | ||
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in | ||
${CMAKE_CURRENT_BINARY_DIR}/AsanConfig/lit.site.cfg) | ||
configure_lit_site_cfg( | ||
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in | ||
${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg) | ||
list(APPEND LSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) | ||
endforeach() | ||
|
||
set(LSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) | ||
if(NOT COMPILER_RT_STANDALONE_BUILD) | ||
list(APPEND LSAN_TEST_DEPS lsan asan) | ||
endif() | ||
add_lit_testsuite(check-lsan "Running the LeakSanitizer tests" | ||
${CMAKE_CURRENT_BINARY_DIR}/LsanConfig | ||
${CMAKE_CURRENT_BINARY_DIR}/AsanConfig | ||
${LSAN_TESTSUITES} | ||
DEPENDS ${LSAN_TEST_DEPS}) | ||
set_target_properties(check-lsan PROPERTIES FOLDER "LSan tests") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters