diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2014-12-17 23:14:01 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2014-12-17 23:14:01 +0000 |
commit | 431f94ddeb10a33af9ce0fd22bda1ff31ae59502 (patch) | |
tree | fc53889127b4d654028dc05674073f2aa096f6a7 /test/asan/CMakeLists.txt | |
parent | 296f4b520813ea846c3711102bfd33739913000d (diff) |
[ASan] Always build shared ASan runtime on Linux.
This commit changes the strategy for building shared ASan runtime
and the way we test it:
- COMPILER_RT_BUILD_SHARED_ASAN CMake option is removed. We now
always build shared ASan runtime (it is the default on Android,
Windows and Mac, and not the default on Linux and FreeBSD).
- Platforms, which use static runtime by default now have
"check-asan-dynamic" testsuite. This testsuite contains instrumented
unit tests, and ASan lit tests, and runs them with shared ASan
runtime. This testsuite is *not* a part of "check-asan" and
*not* a part of "check-all", as adding 1000 more test cases, which
duplicate existing ones is costly. However, you're welcome to
add this command to your buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@224470 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/asan/CMakeLists.txt')
-rw-r--r-- | test/asan/CMakeLists.txt | 61 |
1 files changed, 45 insertions, 16 deletions
diff --git a/test/asan/CMakeLists.txt b/test/asan/CMakeLists.txt index 14f7f506d..78725d42f 100644 --- a/test/asan/CMakeLists.txt +++ b/test/asan/CMakeLists.txt @@ -1,6 +1,7 @@ set(ASAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(ASAN_TESTSUITES) +set(ASAN_DYNAMIC_TESTSUITES) macro(get_bits_for_arch arch bits) if (${arch} STREQUAL "arm" OR @@ -78,13 +79,14 @@ else() # Not Android ${CMAKE_CURRENT_BINARY_DIR}/64bitConfig/lit.site.cfg ) list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/64bitConfig) - if(COMPILER_RT_BUILD_SHARED_ASAN) + if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME) set(ASAN_TEST_CONFIG_SUFFIX "64-Dynamic") set(ASAN_TEST_DYNAMIC True) configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/64bitConfig-dynamic/lit.site.cfg) - list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/64bitConfig-dynamic) + list(APPEND ASAN_DYNAMIC_TESTSUITES + ${CMAKE_CURRENT_BINARY_DIR}/64bitConfig-dynamic) endif() endif() @@ -99,13 +101,14 @@ else() # Not Android ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig/lit.site.cfg ) list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig) - if(COMPILER_RT_BUILD_SHARED_ASAN) + if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME) set(ASAN_TEST_CONFIG_SUFFIX "32-Dynamic") set(ASAN_TEST_DYNAMIC True) configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig-dynamic/lit.site.cfg) - list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig-dynamic) + list(APPEND ASAN_DYNAMIC_TESTSUITES + ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig-dynamic) endif() endif() @@ -119,23 +122,18 @@ else() # Not Android ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig/lit.site.cfg ) list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig) - if(COMPILER_RT_BUILD_SHARED_ASAN) + if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME) set(ASAN_TEST_CONFIG_SUFFIX "32-Dynamic") set(ASAN_TEST_DYNAMIC True) configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig-dynamic/lit.site.cfg) - list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig-dynamic) + list(APPEND ASAN_DYNAMIC_TESTSUITES + ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig-dynamic) endif() endif() endif() # Not Android -if(COMPILER_RT_INCLUDE_TESTS) - configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg) -endif() - set(ASAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) if(COMPILER_RT_STANDALONE_BUILD) add_executable(FileCheck IMPORTED GLOBAL) @@ -144,13 +142,44 @@ if(COMPILER_RT_STANDALONE_BUILD) else() list(APPEND ASAN_TEST_DEPS asan) endif() +set(ASAN_DYNAMIC_TEST_DEPS ${ASAN_TEST_DEPS}) -# FIXME: support unit test in the android test runner -if(COMPILER_RT_INCLUDE_TESTS AND NOT ANDROID) - list(APPEND ASAN_TEST_DEPS AsanUnitTests) - list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit) +# Add unit tests. +if(COMPILER_RT_INCLUDE_TESTS) + set(ASAN_TEST_DYNAMIC False) + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg) + if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME) + set(ASAN_TEST_DYNAMIC True) + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/Unit/dynamic/lit.site.cfg) + endif() + # FIXME: support unit test in the android test runner + if (NOT ANDROID) + list(APPEND ASAN_TEST_DEPS AsanUnitTests) + list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit) + if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME) + list(APPEND ASAN_DYNAMIC_TEST_DEPS AsanDynamicUnitTests) + list(APPEND ASAN_DYNAMIC_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/dynamic) + endif() + endif() endif() + add_lit_testsuite(check-asan "Running the AddressSanitizer tests" ${ASAN_TESTSUITES} DEPENDS ${ASAN_TEST_DEPS}) set_target_properties(check-asan PROPERTIES FOLDER "ASan tests") + +if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME) + # Add check-dynamic-asan target (not included in check-all) + set(EXCLUDE_FROM_ALL TRUE) + add_lit_testsuite(check-asan-dynamic + "Running the AddressSanitizer tests with dynamic runtime" + ${ASAN_DYNAMIC_TESTSUITES} + DEPENDS ${ASAN_DYNAMIC_TEST_DEPS}) + set_target_properties(check-asan-dynamic + PROPERTIES FOLDER "ASan dynamic tests") + set(EXCLUDE_FROM_ALL FALSE) +endif() |