1*7c3d14c8STreehugger Robotset(LSAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) 2*7c3d14c8STreehugger Robot 3*7c3d14c8STreehugger Robotset(LSAN_TESTSUITES) 4*7c3d14c8STreehugger Robot 5*7c3d14c8STreehugger Robotset(LSAN_TEST_ARCH ${LSAN_SUPPORTED_ARCH}) 6*7c3d14c8STreehugger Robotif(APPLE) 7*7c3d14c8STreehugger Robot darwin_filter_host_archs(LSAN_SUPPORTED_ARCH LSAN_TEST_ARCH) 8*7c3d14c8STreehugger Robotendif() 9*7c3d14c8STreehugger Robot 10*7c3d14c8STreehugger Robotforeach(arch ${LSAN_TEST_ARCH}) 11*7c3d14c8STreehugger Robot set(LSAN_TEST_TARGET_ARCH ${arch}) 12*7c3d14c8STreehugger Robot string(TOLOWER "-${arch}" LSAN_TEST_CONFIG_SUFFIX) 13*7c3d14c8STreehugger Robot if(ANDROID OR ${arch} MATCHES "arm|aarch64") 14*7c3d14c8STreehugger Robot # This is only true if we are cross-compiling. 15*7c3d14c8STreehugger Robot # Build all tests with host compiler and use host tools. 16*7c3d14c8STreehugger Robot set(LSAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER}) 17*7c3d14c8STreehugger Robot set(LSAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS}) 18*7c3d14c8STreehugger Robot else() 19*7c3d14c8STreehugger Robot get_target_flags_for_arch(${arch} LSAN_TEST_TARGET_CFLAGS) 20*7c3d14c8STreehugger Robot string(REPLACE ";" " " LSAN_TEST_TARGET_CFLAGS "${LSAN_TEST_TARGET_CFLAGS}") 21*7c3d14c8STreehugger Robot endif() 22*7c3d14c8STreehugger Robot 23*7c3d14c8STreehugger Robot string(TOUPPER ${arch} ARCH_UPPER_CASE) 24*7c3d14c8STreehugger Robot set(LSAN_LIT_TEST_MODE "Standalone") 25*7c3d14c8STreehugger Robot set(CONFIG_NAME ${ARCH_UPPER_CASE}LsanConfig) 26*7c3d14c8STreehugger Robot 27*7c3d14c8STreehugger Robot configure_lit_site_cfg( 28*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in 29*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg) 30*7c3d14c8STreehugger Robot list(APPEND LSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) 31*7c3d14c8STreehugger Robot 32*7c3d14c8STreehugger Robot set(CONFIG_NAME ${ARCH_UPPER_CASE}AsanConfig) 33*7c3d14c8STreehugger Robot set(LSAN_LIT_TEST_MODE "AddressSanitizer") 34*7c3d14c8STreehugger Robot 35*7c3d14c8STreehugger Robot configure_lit_site_cfg( 36*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in 37*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg) 38*7c3d14c8STreehugger Robot list(APPEND LSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) 39*7c3d14c8STreehugger Robotendforeach() 40*7c3d14c8STreehugger Robot 41*7c3d14c8STreehugger Robotset(LSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) 42*7c3d14c8STreehugger Robotif(NOT COMPILER_RT_STANDALONE_BUILD) 43*7c3d14c8STreehugger Robot list(APPEND LSAN_TEST_DEPS lsan asan) 44*7c3d14c8STreehugger Robotendif() 45*7c3d14c8STreehugger Robotadd_lit_testsuite(check-lsan "Running the LeakSanitizer tests" 46*7c3d14c8STreehugger Robot ${LSAN_TESTSUITES} 47*7c3d14c8STreehugger Robot DEPENDS ${LSAN_TEST_DEPS}) 48*7c3d14c8STreehugger Robotset_target_properties(check-lsan PROPERTIES FOLDER "Compiler-RT Misc") 49