1*7c3d14c8STreehugger Robotset(MSAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) 2*7c3d14c8STreehugger Robot 3*7c3d14c8STreehugger Robotset(MSAN_TESTSUITES) 4*7c3d14c8STreehugger Robot 5*7c3d14c8STreehugger Robotset(MSAN_TEST_ARCH ${MSAN_SUPPORTED_ARCH}) 6*7c3d14c8STreehugger Robotif(APPLE) 7*7c3d14c8STreehugger Robot darwin_filter_host_archs(MSAN_SUPPORTED_ARCH MSAN_TEST_ARCH) 8*7c3d14c8STreehugger Robotendif() 9*7c3d14c8STreehugger Robot 10*7c3d14c8STreehugger Robotforeach(arch ${MSAN_TEST_ARCH}) 11*7c3d14c8STreehugger Robot set(MSAN_TEST_TARGET_ARCH ${arch}) 12*7c3d14c8STreehugger Robot string(TOLOWER "-${arch}" MSAN_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(MSAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER}) 17*7c3d14c8STreehugger Robot set(MSAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS}) 18*7c3d14c8STreehugger Robot else() 19*7c3d14c8STreehugger Robot get_target_flags_for_arch(${arch} MSAN_TEST_TARGET_CFLAGS) 20*7c3d14c8STreehugger Robot string(REPLACE ";" " " MSAN_TEST_TARGET_CFLAGS "${MSAN_TEST_TARGET_CFLAGS}") 21*7c3d14c8STreehugger Robot endif() 22*7c3d14c8STreehugger Robot 23*7c3d14c8STreehugger Robot string(TOUPPER ${arch} ARCH_UPPER_CASE) 24*7c3d14c8STreehugger Robot set(CONFIG_NAME ${ARCH_UPPER_CASE}Config) 25*7c3d14c8STreehugger Robot 26*7c3d14c8STreehugger Robot configure_lit_site_cfg( 27*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in 28*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg) 29*7c3d14c8STreehugger Robot list(APPEND MSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) 30*7c3d14c8STreehugger Robotendforeach() 31*7c3d14c8STreehugger Robot 32*7c3d14c8STreehugger Robotset(MSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) 33*7c3d14c8STreehugger Robotif(NOT COMPILER_RT_STANDALONE_BUILD) 34*7c3d14c8STreehugger Robot list(APPEND MSAN_TEST_DEPS msan) 35*7c3d14c8STreehugger Robotendif() 36*7c3d14c8STreehugger Robot 37*7c3d14c8STreehugger Robotif(COMPILER_RT_INCLUDE_TESTS AND COMPILER_RT_HAS_LIBCXX_SOURCES) 38*7c3d14c8STreehugger Robot configure_lit_site_cfg( 39*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in 40*7c3d14c8STreehugger Robot ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg) 41*7c3d14c8STreehugger Robot list(APPEND MSAN_TEST_DEPS MsanUnitTests) 42*7c3d14c8STreehugger Robot list(APPEND MSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit) 43*7c3d14c8STreehugger Robotendif() 44*7c3d14c8STreehugger Robot 45*7c3d14c8STreehugger Robotadd_lit_testsuite(check-msan "Running the MemorySanitizer tests" 46*7c3d14c8STreehugger Robot ${MSAN_TESTSUITES} 47*7c3d14c8STreehugger Robot DEPENDS ${MSAN_TEST_DEPS} 48*7c3d14c8STreehugger Robot ) 49*7c3d14c8STreehugger Robotset_target_properties(check-msan PROPERTIES FOLDER "Compiler-RT Misc") 50