From 5811f0e1e955866b76b0d9ebeccd2e4755c1dac8 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Fri, 14 Feb 2014 13:02:58 +0000 Subject: [PATCH] Move MSan lit-tests under test/msan git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@201412 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 8 +++ lib/msan/CMakeLists.txt | 17 ++--- lib/msan/lit_tests/CMakeLists.txt | 31 --------- lib/msan/lit_tests/lit.cfg | 74 ---------------------- lib/msan/tests/CMakeLists.txt | 19 +++--- test/CMakeLists.txt | 3 + test/lsan/CMakeLists.txt | 2 +- test/msan/CMakeLists.txt | 22 +++++++ .../msan/lit_tests => test/msan}/Linux/getresid.cc | 0 {lib/msan/lit_tests => test/msan}/Linux/glob.cc | 0 .../msan}/Linux/glob_altdirfunc.cc | 0 .../lit_tests => test/msan}/Linux/glob_nomatch.cc | 0 .../msan}/Linux/glob_test_root/aa | 0 .../msan}/Linux/glob_test_root/ab | 0 .../msan}/Linux/glob_test_root/ba | 0 .../lit_tests => test/msan}/Linux/lit.local.cfg | 0 .../msan/lit_tests => test/msan}/Linux/syscalls.cc | 0 .../lit_tests => test/msan}/Linux/tcgetattr.cc | 0 {lib/msan/lit_tests => test/msan}/Linux/xattr.cc | 0 .../msan}/Linux/xattr_test_root/a | 0 .../msan}/SharedLibs/dso-origin-so.cc | 0 .../msan}/SharedLibs/dso-origin.h | 0 .../msan}/SharedLibs/lit.local.cfg | 0 .../lit_tests => test/msan}/Unit/lit.site.cfg.in | 3 +- .../msan}/allocator_returns_null.cc | 0 {lib/msan/lit_tests => test/msan}/backtrace.cc | 0 {lib/msan/lit_tests => test/msan}/c-strdup.c | 0 {lib/msan/lit_tests => test/msan}/cxa_atexit.cc | 0 .../lit_tests => test/msan}/default_blacklist.cc | 0 {lib/msan/lit_tests => test/msan}/dlerror.cc | 0 {lib/msan/lit_tests => test/msan}/dso-origin.cc | 0 {lib/msan/lit_tests => test/msan}/dtls_test.c | 0 {lib/msan/lit_tests => test/msan}/errno.cc | 0 .../msan}/getaddrinfo-positive.cc | 0 {lib/msan/lit_tests => test/msan}/getaddrinfo.cc | 0 {lib/msan/lit_tests => test/msan}/getline.cc | 0 .../msan/lit_tests => test/msan}/getline_test_data | 0 {lib/msan/lit_tests => test/msan}/heap-origin.cc | 0 {lib/msan/lit_tests => test/msan}/iconv.cc | 0 .../msan/lit_tests => test/msan}/if_indextoname.cc | 0 {lib/msan/lit_tests => test/msan}/ifaddrs.cc | 0 {lib/msan/lit_tests => test/msan}/initgroups.cc | 0 {lib/msan/lit_tests => test/msan}/inline.cc | 0 .../lit_tests => test/msan}/insertvalue_origin.cc | 0 {lib/msan/lit_tests => test/msan}/ioctl.cc | 0 {lib/msan/lit_tests => test/msan}/ioctl_custom.cc | 0 {lib/msan/lit_tests => test/msan}/ioctl_sound.cc | 0 .../msan/lit_tests => test/msan}/keep-going-dso.cc | 0 {lib/msan/lit_tests => test/msan}/keep-going.cc | 0 test/msan/lit.cfg | 31 +++++++++ {lib/msan/lit_tests => test/msan}/lit.site.cfg.in | 2 +- {lib/msan/lit_tests => test/msan}/malloc_hook.cc | 0 .../lit_tests => test/msan}/mmap_below_shadow.cc | 0 .../lit_tests => test/msan}/no_sanitize_memory.cc | 0 .../msan}/no_sanitize_memory_prop.cc | 0 .../msan/lit_tests => test/msan}/poison_in_free.cc | 0 .../msan}/pthread_getattr_np_deadlock.cc | 0 {lib/msan/lit_tests => test/msan}/ptrace.cc | 0 {lib/msan/lit_tests => test/msan}/readdir64.cc | 0 {lib/msan/lit_tests => test/msan}/scandir.cc | 0 {lib/msan/lit_tests => test/msan}/scandir_null.cc | 0 .../lit_tests => test/msan}/scandir_test_root/aaa | 0 .../lit_tests => test/msan}/scandir_test_root/aab | 0 .../lit_tests => test/msan}/scandir_test_root/bbb | 0 {lib/msan/lit_tests => test/msan}/select.cc | 0 {lib/msan/lit_tests => test/msan}/select_origin.cc | 0 {lib/msan/lit_tests => test/msan}/setlocale.cc | 0 .../lit_tests => test/msan}/signal_stress_test.cc | 0 {lib/msan/lit_tests => test/msan}/sigwait.cc | 0 {lib/msan/lit_tests => test/msan}/sigwaitinfo.cc | 0 {lib/msan/lit_tests => test/msan}/stack-origin.cc | 0 .../lit_tests => test/msan}/strerror_r-non-gnu.c | 0 .../lit_tests => test/msan}/strlen_of_shadow.cc | 0 .../msan}/sync_lock_set_and_test.cc | 0 {lib/msan/lit_tests => test/msan}/textdomain.cc | 0 {lib/msan/lit_tests => test/msan}/times.cc | 0 {lib/msan/lit_tests => test/msan}/tls_reuse.cc | 0 {lib/msan/lit_tests => test/msan}/tzset.cc | 0 .../msan}/unaligned_read_origin.cc | 0 .../msan/lit_tests => test/msan}/use-after-free.cc | 0 {lib/msan/lit_tests => test/msan}/vector_cvt.cc | 0 {lib/msan/lit_tests => test/msan}/vector_select.cc | 0 .../lit_tests => test/msan}/wrap_indirect_calls.cc | 0 .../msan}/wrap_indirect_calls/caller.cc | 0 .../msan}/wrap_indirect_calls/lit.local.cfg | 0 .../msan}/wrap_indirect_calls/one.cc | 0 .../msan}/wrap_indirect_calls/two.cc | 0 .../msan}/wrap_indirect_calls/wrapper.cc | 0 .../msan}/wrap_indirect_calls2.cc | 0 .../msan}/wrap_indirect_calls_in_rtl.cc | 0 90 files changed, 82 insertions(+), 130 deletions(-) delete mode 100644 lib/msan/lit_tests/CMakeLists.txt delete mode 100644 lib/msan/lit_tests/lit.cfg create mode 100644 test/msan/CMakeLists.txt rename {lib/msan/lit_tests => test/msan}/Linux/getresid.cc (100%) rename {lib/msan/lit_tests => test/msan}/Linux/glob.cc (100%) rename {lib/msan/lit_tests => test/msan}/Linux/glob_altdirfunc.cc (100%) rename {lib/msan/lit_tests => test/msan}/Linux/glob_nomatch.cc (100%) rename {lib/msan/lit_tests => test/msan}/Linux/glob_test_root/aa (100%) rename {lib/msan/lit_tests => test/msan}/Linux/glob_test_root/ab (100%) rename {lib/msan/lit_tests => test/msan}/Linux/glob_test_root/ba (100%) rename {lib/msan/lit_tests => test/msan}/Linux/lit.local.cfg (100%) rename {lib/msan/lit_tests => test/msan}/Linux/syscalls.cc (100%) rename {lib/msan/lit_tests => test/msan}/Linux/tcgetattr.cc (100%) rename {lib/msan/lit_tests => test/msan}/Linux/xattr.cc (100%) rename {lib/msan/lit_tests => test/msan}/Linux/xattr_test_root/a (100%) rename {lib/msan/lit_tests => test/msan}/SharedLibs/dso-origin-so.cc (100%) rename {lib/msan/lit_tests => test/msan}/SharedLibs/dso-origin.h (100%) rename {lib/msan/lit_tests => test/msan}/SharedLibs/lit.local.cfg (100%) rename {lib/msan/lit_tests => test/msan}/Unit/lit.site.cfg.in (78%) rename {lib/msan/lit_tests => test/msan}/allocator_returns_null.cc (100%) rename {lib/msan/lit_tests => test/msan}/backtrace.cc (100%) rename {lib/msan/lit_tests => test/msan}/c-strdup.c (100%) rename {lib/msan/lit_tests => test/msan}/cxa_atexit.cc (100%) rename {lib/msan/lit_tests => test/msan}/default_blacklist.cc (100%) rename {lib/msan/lit_tests => test/msan}/dlerror.cc (100%) rename {lib/msan/lit_tests => test/msan}/dso-origin.cc (100%) rename {lib/msan/lit_tests => test/msan}/dtls_test.c (100%) rename {lib/msan/lit_tests => test/msan}/errno.cc (100%) rename {lib/msan/lit_tests => test/msan}/getaddrinfo-positive.cc (100%) rename {lib/msan/lit_tests => test/msan}/getaddrinfo.cc (100%) rename {lib/msan/lit_tests => test/msan}/getline.cc (100%) rename {lib/msan/lit_tests => test/msan}/getline_test_data (100%) rename {lib/msan/lit_tests => test/msan}/heap-origin.cc (100%) rename {lib/msan/lit_tests => test/msan}/iconv.cc (100%) rename {lib/msan/lit_tests => test/msan}/if_indextoname.cc (100%) rename {lib/msan/lit_tests => test/msan}/ifaddrs.cc (100%) rename {lib/msan/lit_tests => test/msan}/initgroups.cc (100%) rename {lib/msan/lit_tests => test/msan}/inline.cc (100%) rename {lib/msan/lit_tests => test/msan}/insertvalue_origin.cc (100%) rename {lib/msan/lit_tests => test/msan}/ioctl.cc (100%) rename {lib/msan/lit_tests => test/msan}/ioctl_custom.cc (100%) rename {lib/msan/lit_tests => test/msan}/ioctl_sound.cc (100%) rename {lib/msan/lit_tests => test/msan}/keep-going-dso.cc (100%) rename {lib/msan/lit_tests => test/msan}/keep-going.cc (100%) create mode 100644 test/msan/lit.cfg rename {lib/msan/lit_tests => test/msan}/lit.site.cfg.in (73%) rename {lib/msan/lit_tests => test/msan}/malloc_hook.cc (100%) rename {lib/msan/lit_tests => test/msan}/mmap_below_shadow.cc (100%) rename {lib/msan/lit_tests => test/msan}/no_sanitize_memory.cc (100%) rename {lib/msan/lit_tests => test/msan}/no_sanitize_memory_prop.cc (100%) rename {lib/msan/lit_tests => test/msan}/poison_in_free.cc (100%) rename {lib/msan/lit_tests => test/msan}/pthread_getattr_np_deadlock.cc (100%) rename {lib/msan/lit_tests => test/msan}/ptrace.cc (100%) rename {lib/msan/lit_tests => test/msan}/readdir64.cc (100%) rename {lib/msan/lit_tests => test/msan}/scandir.cc (100%) rename {lib/msan/lit_tests => test/msan}/scandir_null.cc (100%) rename {lib/msan/lit_tests => test/msan}/scandir_test_root/aaa (100%) rename {lib/msan/lit_tests => test/msan}/scandir_test_root/aab (100%) rename {lib/msan/lit_tests => test/msan}/scandir_test_root/bbb (100%) rename {lib/msan/lit_tests => test/msan}/select.cc (100%) rename {lib/msan/lit_tests => test/msan}/select_origin.cc (100%) rename {lib/msan/lit_tests => test/msan}/setlocale.cc (100%) rename {lib/msan/lit_tests => test/msan}/signal_stress_test.cc (100%) rename {lib/msan/lit_tests => test/msan}/sigwait.cc (100%) rename {lib/msan/lit_tests => test/msan}/sigwaitinfo.cc (100%) rename {lib/msan/lit_tests => test/msan}/stack-origin.cc (100%) rename {lib/msan/lit_tests => test/msan}/strerror_r-non-gnu.c (100%) rename {lib/msan/lit_tests => test/msan}/strlen_of_shadow.cc (100%) rename {lib/msan/lit_tests => test/msan}/sync_lock_set_and_test.cc (100%) rename {lib/msan/lit_tests => test/msan}/textdomain.cc (100%) rename {lib/msan/lit_tests => test/msan}/times.cc (100%) rename {lib/msan/lit_tests => test/msan}/tls_reuse.cc (100%) rename {lib/msan/lit_tests => test/msan}/tzset.cc (100%) rename {lib/msan/lit_tests => test/msan}/unaligned_read_origin.cc (100%) rename {lib/msan/lit_tests => test/msan}/use-after-free.cc (100%) rename {lib/msan/lit_tests => test/msan}/vector_cvt.cc (100%) rename {lib/msan/lit_tests => test/msan}/vector_select.cc (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls.cc (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls/caller.cc (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls/lit.local.cfg (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls/one.cc (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls/two.cc (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls/wrapper.cc (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls2.cc (100%) rename {lib/msan/lit_tests => test/msan}/wrap_indirect_calls_in_rtl.cc (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 211d91714..3bbcf0af2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -233,6 +233,7 @@ filter_available_targets(SANITIZER_COMMON_SUPPORTED_ARCH x86_64 i386 powerpc64 arm) filter_available_targets(DFSAN_SUPPORTED_ARCH x86_64) filter_available_targets(LSAN_SUPPORTED_ARCH x86_64) +filter_available_targets(MSAN_SUPPORTED_ARCH x86_64) filter_available_targets(UBSAN_SUPPORTED_ARCH x86_64 i386) add_subdirectory(include) @@ -248,6 +249,13 @@ if (NOT ANDROID) endif() endif() +set(COMPILER_RT_LIBCXX_PATH ${LLVM_MAIN_SRC_DIR}/projects/libcxx) +if(EXISTS ${COMPILER_RT_LIBCXX_PATH}/) + set(COMPILER_RT_HAS_LIBCXX_SOURCES TRUE) +else() + set(COMPILER_RT_HAS_LIBCXX_SOURCES FALSE) +endif() + add_subdirectory(lib) if(LLVM_INCLUDE_TESTS) diff --git a/lib/msan/CMakeLists.txt b/lib/msan/CMakeLists.txt index 06f3f65d8..d876a73b3 100644 --- a/lib/msan/CMakeLists.txt +++ b/lib/msan/CMakeLists.txt @@ -17,7 +17,7 @@ set(MSAN_RTL_CFLAGS -ffreestanding) # Static runtime library. -set(MSAN_RUNTIME_LIBRARIES) +add_custom_target(msan) set(arch "x86_64") if(CAN_TARGET_${arch}) add_compiler_rt_static_runtime(clang_rt.msan-${arch} ${arch} @@ -26,25 +26,16 @@ if(CAN_TARGET_${arch}) $ $ CFLAGS ${MSAN_RTL_CFLAGS}) - list(APPEND MSAN_RUNTIME_LIBRARIES clang_rt.msan-${arch}) + add_dependencies(msan clang_rt.msan-${arch}) if(UNIX) add_sanitizer_rt_symbols(clang_rt.msan-${arch} msan.syms.extra) - list(APPEND MSAN_RUNTIME_LIBRARIES clang_rt.msan-${arch}-symbols) + add_dependencies(msan clang_rt.msan-${arch}-symbols) endif() endif() add_compiler_rt_resource_file(msan_blacklist msan_blacklist.txt) - -# We should only build MSan unit tests if we can build instrumented libcxx. -set(MSAN_LIBCXX_PATH ${LLVM_MAIN_SRC_DIR}/projects/libcxx) -if(EXISTS ${MSAN_LIBCXX_PATH}/) - set(MSAN_CAN_INSTRUMENT_LIBCXX TRUE) -else() - set(MSAN_CAN_INSTRUMENT_LIBCXX FALSE) -endif() +add_dependencies(msan msan_blacklist) if(LLVM_INCLUDE_TESTS) add_subdirectory(tests) endif() - -add_subdirectory(lit_tests) diff --git a/lib/msan/lit_tests/CMakeLists.txt b/lib/msan/lit_tests/CMakeLists.txt deleted file mode 100644 index 38d1e59e7..000000000 --- a/lib/msan/lit_tests/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -set(MSAN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..) -set(MSAN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/..) - -configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg) - -if(MSAN_CAN_INSTRUMENT_LIBCXX) - configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg) -endif() - -if(COMPILER_RT_CAN_EXECUTE_TESTS AND CAN_TARGET_x86_64) - # Run MSan tests only if we're sure we may produce working binaries. - set(MSAN_TEST_DEPS - ${SANITIZER_COMMON_LIT_TEST_DEPS} - ${MSAN_RUNTIME_LIBRARIES} - msan_blacklist) - set(MSAN_TEST_PARAMS - msan_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg) - if(LLVM_INCLUDE_TESTS AND MSAN_CAN_INSTRUMENT_LIBCXX) - list(APPEND MSAN_TEST_DEPS MsanUnitTests) - endif() - add_lit_testsuite(check-msan "Running the MemorySanitizer tests" - ${CMAKE_CURRENT_BINARY_DIR} - PARAMS ${MSAN_TEST_PARAMS} - DEPENDS ${MSAN_TEST_DEPS} - ) - set_target_properties(check-msan PROPERTIES FOLDER "MSan tests") -endif() diff --git a/lib/msan/lit_tests/lit.cfg b/lib/msan/lit_tests/lit.cfg deleted file mode 100644 index da1bde6dd..000000000 --- a/lib/msan/lit_tests/lit.cfg +++ /dev/null @@ -1,74 +0,0 @@ -# -*- Python -*- - -import os - -import lit.util - -def get_required_attr(config, attr_name): - attr_value = getattr(config, attr_name, None) - if not attr_value: - lit_config.fatal( - "No attribute %r in test configuration! You may need to run " - "tests from your build directory or add this attribute " - "to lit.site.cfg " % attr_name) - return attr_value - -# Setup config name. -config.name = 'MemorySanitizer' - -# Setup source root. -config.test_source_root = os.path.dirname(__file__) - -def DisplayNoConfigMessage(): - lit_config.fatal("No site specific configuration available! " + - "Try running your test from the build tree or running " + - "make check-msan") - -# Figure out LLVM source root. -llvm_src_root = getattr(config, 'llvm_src_root', None) -if llvm_src_root is None: - # We probably haven't loaded the site-specific configuration: the user - # is likely trying to run a test file directly, and the site configuration - # wasn't created by the build system. - msan_site_cfg = lit_config.params.get('msan_site_config', None) - if (msan_site_cfg) and (os.path.exists(msan_site_cfg)): - lit_config.load_config(config, msan_site_cfg) - raise SystemExit - - # Try to guess the location of site-specific configuration using llvm-config - # util that can point where the build tree is. - llvm_config = lit.util.which("llvm-config", config.environment["PATH"]) - if not llvm_config: - DisplayNoConfigMessage() - - # Find out the presumed location of generated site config. - llvm_obj_root = lit.util.capture(["llvm-config", "--obj-root"]).strip() - msan_site_cfg = os.path.join(llvm_obj_root, "projects", "compiler-rt", - "lib", "msan", "lit_tests", "lit.site.cfg") - if (not msan_site_cfg) or (not os.path.exists(msan_site_cfg)): - DisplayNoConfigMessage() - - lit_config.load_config(config, msan_site_cfg) - raise SystemExit - -# Setup default compiler flags used with -fsanitize=memory option. -clang_msan_cflags = ["-fsanitize=memory", - "-mno-omit-leaf-frame-pointer", - "-fno-omit-frame-pointer", - "-fno-optimize-sibling-calls", - "-g", - "-m64"] -clang_msan_cxxflags = ["--driver-mode=g++ "] + clang_msan_cflags -config.substitutions.append( ("%clang_msan ", - " ".join([config.clang] + clang_msan_cflags) + - " ") ) -config.substitutions.append( ("%clangxx_msan ", - " ".join([config.clang] + clang_msan_cxxflags) + - " ") ) - -# Default test suffixes. -config.suffixes = ['.c', '.cc', '.cpp'] - -# MemorySanitizer tests are currently supported on Linux only. -if config.host_os not in ['Linux']: - config.unsupported = True diff --git a/lib/msan/tests/CMakeLists.txt b/lib/msan/tests/CMakeLists.txt index 9c49f167f..d67952422 100644 --- a/lib/msan/tests/CMakeLists.txt +++ b/lib/msan/tests/CMakeLists.txt @@ -6,9 +6,9 @@ include_directories(..) include_directories(../..) # Instrumented libcxx sources and build flags. -file(GLOB MSAN_LIBCXX_SOURCES ${MSAN_LIBCXX_PATH}/src/*.cpp) +file(GLOB MSAN_LIBCXX_SOURCES ${COMPILER_RT_LIBCXX_PATH}/src/*.cpp) set(MSAN_LIBCXX_CFLAGS - -I${MSAN_LIBCXX_PATH}/include + -I${COMPILER_RT_LIBCXX_PATH}/include -fsanitize=memory -fsanitize-memory-track-origins -fPIC @@ -39,7 +39,7 @@ set(MSAN_UNITTEST_HEADERS ) set(MSANDR_UNITTEST_SOURCE msandr_test_so.cc) set(MSAN_UNITTEST_COMMON_CFLAGS - -I${MSAN_LIBCXX_PATH}/include + -I${COMPILER_RT_LIBCXX_PATH}/include ${COMPILER_RT_GTEST_INCLUDE_CFLAGS} -I${COMPILER_RT_SOURCE_DIR}/include -I${COMPILER_RT_SOURCE_DIR}/lib @@ -78,7 +78,7 @@ macro(msan_compile obj_list source arch) get_target_flags_for_arch(${arch} TARGET_CFLAGS) clang_compile(${output_obj} ${source} CFLAGS ${ARGN} ${TARGET_CFLAGS} - DEPS gtest ${MSAN_RUNTIME_LIBRARIES} ${MSAN_UNITTEST_HEADERS}) + DEPS gtest msan ${MSAN_UNITTEST_HEADERS}) list(APPEND ${obj_list} ${output_obj}) endmacro() @@ -99,7 +99,7 @@ macro(add_msan_test test_suite test_name arch) get_target_flags_for_arch(${arch} TARGET_LINK_FLAGS) add_compiler_rt_test(${test_suite} ${test_name} OBJECTS ${ARGN} - DEPS ${MSAN_RUNTIME_LIBRARIES} ${ARGN} + DEPS msan ${ARGN} ${MSAN_LOADABLE_SO} LINK_FLAGS ${MSAN_UNITTEST_LINK_FLAGS} ${TARGET_LINK_FLAGS} @@ -128,7 +128,7 @@ macro(add_msan_tests_for_arch arch) msan_link_shared(MSAN_INST_LIBCXX "libcxx" ${arch} OBJECTS ${MSAN_INST_LIBCXX_OBJECTS} LINKFLAGS ${MSAN_LIBCXX_LINK_FLAGS} - DEPS ${MSAN_INST_LIBCXX_OBJECTS} ${MSAN_RUNTIME_LIBRARIES}) + DEPS ${MSAN_INST_LIBCXX_OBJECTS} msan) # Instrumented tests. set(MSAN_INST_TEST_OBJECTS) @@ -151,13 +151,13 @@ macro(add_msan_tests_for_arch arch) set(MSAN_LOADABLE_SO) msan_link_shared(MSAN_LOADABLE_SO "libmsan_loadable" ${arch} OBJECTS ${MSAN_INST_LOADABLE_OBJECTS} - DEPS ${MSAN_INST_LOADABLE_OBJECTS} ${MSAN_RUNTIME_LIBRARIES}) + DEPS ${MSAN_INST_LOADABLE_OBJECTS} msan) # Uninstrumented shared library tests. set(MSANDR_TEST_SO) msan_link_shared(MSANDR_TEST_SO "libmsandr_test" ${arch} OBJECTS ${MSANDR_TEST_OBJECTS} - DEPS ${MSANDR_TEST_OBJECTS} ${MSAN_RUNTIME_LIBRARIES}) + DEPS ${MSANDR_TEST_OBJECTS} msan) # Link everything together. add_msan_test(MsanUnitTests "Msan-${arch}-Test" ${arch} @@ -165,7 +165,8 @@ macro(add_msan_tests_for_arch arch) ${MSAN_INST_LIBCXX} ${MSANDR_TEST_SO}) endmacro() -if(COMPILER_RT_CAN_EXECUTE_TESTS AND MSAN_CAN_INSTRUMENT_LIBCXX) +# We should only build MSan unit tests if we can build instrumented libcxx. +if(COMPILER_RT_CAN_EXECUTE_TESTS AND COMPILER_RT_HAS_LIBCXX_SOURCES) if(CAN_TARGET_x86_64) add_msan_tests_for_arch(x86_64) endif() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6c9b08f6d..4b8401e62 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -15,6 +15,9 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS) if(LSAN_SUPPORTED_ARCH) add_subdirectory(lsan) endif() + if(MSAN_SUPPORTED_ARCH) + add_subdirectory(msan) + endif() if(UBSAN_SUPPORTED_ARCH) add_subdirectory(ubsan) endif() diff --git a/test/lsan/CMakeLists.txt b/test/lsan/CMakeLists.txt index 6b1fb0695..d84b18255 100644 --- a/test/lsan/CMakeLists.txt +++ b/test/lsan/CMakeLists.txt @@ -10,7 +10,7 @@ configure_lit_site_cfg( ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig/lit.site.cfg ) -if(COMPILER_RT_CAN_EXECUTE_TESTS AND NOT APPLE AND NOT ANDROID) +if(NOT APPLE AND NOT ANDROID) set(LSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS} lsan diff --git a/test/msan/CMakeLists.txt b/test/msan/CMakeLists.txt new file mode 100644 index 000000000..3387f8291 --- /dev/null +++ b/test/msan/CMakeLists.txt @@ -0,0 +1,22 @@ +set(MSAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg) + +set(MSAN_TEST_DEPS + ${SANITIZER_COMMON_LIT_TEST_DEPS} + msan) + +if(LLVM_INCLUDE_TESTS AND COMPILER_RT_HAS_LIBCXX_SOURCES) + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg) + list(APPEND MSAN_TEST_DEPS MsanUnitTests) +endif() + +add_lit_testsuite(check-msan "Running the MemorySanitizer tests" + ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS ${MSAN_TEST_DEPS} + ) +set_target_properties(check-msan PROPERTIES FOLDER "MSan tests") diff --git a/lib/msan/lit_tests/Linux/getresid.cc b/test/msan/Linux/getresid.cc similarity index 100% rename from lib/msan/lit_tests/Linux/getresid.cc rename to test/msan/Linux/getresid.cc diff --git a/lib/msan/lit_tests/Linux/glob.cc b/test/msan/Linux/glob.cc similarity index 100% rename from lib/msan/lit_tests/Linux/glob.cc rename to test/msan/Linux/glob.cc diff --git a/lib/msan/lit_tests/Linux/glob_altdirfunc.cc b/test/msan/Linux/glob_altdirfunc.cc similarity index 100% rename from lib/msan/lit_tests/Linux/glob_altdirfunc.cc rename to test/msan/Linux/glob_altdirfunc.cc diff --git a/lib/msan/lit_tests/Linux/glob_nomatch.cc b/test/msan/Linux/glob_nomatch.cc similarity index 100% rename from lib/msan/lit_tests/Linux/glob_nomatch.cc rename to test/msan/Linux/glob_nomatch.cc diff --git a/lib/msan/lit_tests/Linux/glob_test_root/aa b/test/msan/Linux/glob_test_root/aa similarity index 100% rename from lib/msan/lit_tests/Linux/glob_test_root/aa rename to test/msan/Linux/glob_test_root/aa diff --git a/lib/msan/lit_tests/Linux/glob_test_root/ab b/test/msan/Linux/glob_test_root/ab similarity index 100% rename from lib/msan/lit_tests/Linux/glob_test_root/ab rename to test/msan/Linux/glob_test_root/ab diff --git a/lib/msan/lit_tests/Linux/glob_test_root/ba b/test/msan/Linux/glob_test_root/ba similarity index 100% rename from lib/msan/lit_tests/Linux/glob_test_root/ba rename to test/msan/Linux/glob_test_root/ba diff --git a/lib/msan/lit_tests/Linux/lit.local.cfg b/test/msan/Linux/lit.local.cfg similarity index 100% rename from lib/msan/lit_tests/Linux/lit.local.cfg rename to test/msan/Linux/lit.local.cfg diff --git a/lib/msan/lit_tests/Linux/syscalls.cc b/test/msan/Linux/syscalls.cc similarity index 100% rename from lib/msan/lit_tests/Linux/syscalls.cc rename to test/msan/Linux/syscalls.cc diff --git a/lib/msan/lit_tests/Linux/tcgetattr.cc b/test/msan/Linux/tcgetattr.cc similarity index 100% rename from lib/msan/lit_tests/Linux/tcgetattr.cc rename to test/msan/Linux/tcgetattr.cc diff --git a/lib/msan/lit_tests/Linux/xattr.cc b/test/msan/Linux/xattr.cc similarity index 100% rename from lib/msan/lit_tests/Linux/xattr.cc rename to test/msan/Linux/xattr.cc diff --git a/lib/msan/lit_tests/Linux/xattr_test_root/a b/test/msan/Linux/xattr_test_root/a similarity index 100% rename from lib/msan/lit_tests/Linux/xattr_test_root/a rename to test/msan/Linux/xattr_test_root/a diff --git a/lib/msan/lit_tests/SharedLibs/dso-origin-so.cc b/test/msan/SharedLibs/dso-origin-so.cc similarity index 100% rename from lib/msan/lit_tests/SharedLibs/dso-origin-so.cc rename to test/msan/SharedLibs/dso-origin-so.cc diff --git a/lib/msan/lit_tests/SharedLibs/dso-origin.h b/test/msan/SharedLibs/dso-origin.h similarity index 100% rename from lib/msan/lit_tests/SharedLibs/dso-origin.h rename to test/msan/SharedLibs/dso-origin.h diff --git a/lib/msan/lit_tests/SharedLibs/lit.local.cfg b/test/msan/SharedLibs/lit.local.cfg similarity index 100% rename from lib/msan/lit_tests/SharedLibs/lit.local.cfg rename to test/msan/SharedLibs/lit.local.cfg diff --git a/lib/msan/lit_tests/Unit/lit.site.cfg.in b/test/msan/Unit/lit.site.cfg.in similarity index 78% rename from lib/msan/lit_tests/Unit/lit.site.cfg.in rename to test/msan/Unit/lit.site.cfg.in index 34ae3c0e0..dc0e9613d 100644 --- a/lib/msan/lit_tests/Unit/lit.site.cfg.in +++ b/test/msan/Unit/lit.site.cfg.in @@ -9,5 +9,6 @@ config.name = 'MemorySanitizer-Unit' # Setup test source and exec root. For unit tests, we define # it as build directory with MSan unit tests. -config.test_exec_root = "@MSAN_BINARY_DIR@/tests" +# FIXME: Don't use hardcoded path to MSan unit tests. +config.test_exec_root = "@COMPILER_RT_BINARY_DIR@/lib/msan/tests" config.test_source_root = config.test_exec_root diff --git a/lib/msan/lit_tests/allocator_returns_null.cc b/test/msan/allocator_returns_null.cc similarity index 100% rename from lib/msan/lit_tests/allocator_returns_null.cc rename to test/msan/allocator_returns_null.cc diff --git a/lib/msan/lit_tests/backtrace.cc b/test/msan/backtrace.cc similarity index 100% rename from lib/msan/lit_tests/backtrace.cc rename to test/msan/backtrace.cc diff --git a/lib/msan/lit_tests/c-strdup.c b/test/msan/c-strdup.c similarity index 100% rename from lib/msan/lit_tests/c-strdup.c rename to test/msan/c-strdup.c diff --git a/lib/msan/lit_tests/cxa_atexit.cc b/test/msan/cxa_atexit.cc similarity index 100% rename from lib/msan/lit_tests/cxa_atexit.cc rename to test/msan/cxa_atexit.cc diff --git a/lib/msan/lit_tests/default_blacklist.cc b/test/msan/default_blacklist.cc similarity index 100% rename from lib/msan/lit_tests/default_blacklist.cc rename to test/msan/default_blacklist.cc diff --git a/lib/msan/lit_tests/dlerror.cc b/test/msan/dlerror.cc similarity index 100% rename from lib/msan/lit_tests/dlerror.cc rename to test/msan/dlerror.cc diff --git a/lib/msan/lit_tests/dso-origin.cc b/test/msan/dso-origin.cc similarity index 100% rename from lib/msan/lit_tests/dso-origin.cc rename to test/msan/dso-origin.cc diff --git a/lib/msan/lit_tests/dtls_test.c b/test/msan/dtls_test.c similarity index 100% rename from lib/msan/lit_tests/dtls_test.c rename to test/msan/dtls_test.c diff --git a/lib/msan/lit_tests/errno.cc b/test/msan/errno.cc similarity index 100% rename from lib/msan/lit_tests/errno.cc rename to test/msan/errno.cc diff --git a/lib/msan/lit_tests/getaddrinfo-positive.cc b/test/msan/getaddrinfo-positive.cc similarity index 100% rename from lib/msan/lit_tests/getaddrinfo-positive.cc rename to test/msan/getaddrinfo-positive.cc diff --git a/lib/msan/lit_tests/getaddrinfo.cc b/test/msan/getaddrinfo.cc similarity index 100% rename from lib/msan/lit_tests/getaddrinfo.cc rename to test/msan/getaddrinfo.cc diff --git a/lib/msan/lit_tests/getline.cc b/test/msan/getline.cc similarity index 100% rename from lib/msan/lit_tests/getline.cc rename to test/msan/getline.cc diff --git a/lib/msan/lit_tests/getline_test_data b/test/msan/getline_test_data similarity index 100% rename from lib/msan/lit_tests/getline_test_data rename to test/msan/getline_test_data diff --git a/lib/msan/lit_tests/heap-origin.cc b/test/msan/heap-origin.cc similarity index 100% rename from lib/msan/lit_tests/heap-origin.cc rename to test/msan/heap-origin.cc diff --git a/lib/msan/lit_tests/iconv.cc b/test/msan/iconv.cc similarity index 100% rename from lib/msan/lit_tests/iconv.cc rename to test/msan/iconv.cc diff --git a/lib/msan/lit_tests/if_indextoname.cc b/test/msan/if_indextoname.cc similarity index 100% rename from lib/msan/lit_tests/if_indextoname.cc rename to test/msan/if_indextoname.cc diff --git a/lib/msan/lit_tests/ifaddrs.cc b/test/msan/ifaddrs.cc similarity index 100% rename from lib/msan/lit_tests/ifaddrs.cc rename to test/msan/ifaddrs.cc diff --git a/lib/msan/lit_tests/initgroups.cc b/test/msan/initgroups.cc similarity index 100% rename from lib/msan/lit_tests/initgroups.cc rename to test/msan/initgroups.cc diff --git a/lib/msan/lit_tests/inline.cc b/test/msan/inline.cc similarity index 100% rename from lib/msan/lit_tests/inline.cc rename to test/msan/inline.cc diff --git a/lib/msan/lit_tests/insertvalue_origin.cc b/test/msan/insertvalue_origin.cc similarity index 100% rename from lib/msan/lit_tests/insertvalue_origin.cc rename to test/msan/insertvalue_origin.cc diff --git a/lib/msan/lit_tests/ioctl.cc b/test/msan/ioctl.cc similarity index 100% rename from lib/msan/lit_tests/ioctl.cc rename to test/msan/ioctl.cc diff --git a/lib/msan/lit_tests/ioctl_custom.cc b/test/msan/ioctl_custom.cc similarity index 100% rename from lib/msan/lit_tests/ioctl_custom.cc rename to test/msan/ioctl_custom.cc diff --git a/lib/msan/lit_tests/ioctl_sound.cc b/test/msan/ioctl_sound.cc similarity index 100% rename from lib/msan/lit_tests/ioctl_sound.cc rename to test/msan/ioctl_sound.cc diff --git a/lib/msan/lit_tests/keep-going-dso.cc b/test/msan/keep-going-dso.cc similarity index 100% rename from lib/msan/lit_tests/keep-going-dso.cc rename to test/msan/keep-going-dso.cc diff --git a/lib/msan/lit_tests/keep-going.cc b/test/msan/keep-going.cc similarity index 100% rename from lib/msan/lit_tests/keep-going.cc rename to test/msan/keep-going.cc diff --git a/test/msan/lit.cfg b/test/msan/lit.cfg new file mode 100644 index 000000000..3031e6aed --- /dev/null +++ b/test/msan/lit.cfg @@ -0,0 +1,31 @@ +# -*- Python -*- + +import os + +# Setup config name. +config.name = 'MemorySanitizer' + +# Setup source root. +config.test_source_root = os.path.dirname(__file__) + +# Setup default compiler flags used with -fsanitize=memory option. +clang_msan_cflags = ["-fsanitize=memory", + "-mno-omit-leaf-frame-pointer", + "-fno-omit-frame-pointer", + "-fno-optimize-sibling-calls", + "-g", + "-m64"] +clang_msan_cxxflags = ["--driver-mode=g++ "] + clang_msan_cflags +config.substitutions.append( ("%clang_msan ", + " ".join([config.clang] + clang_msan_cflags) + + " ") ) +config.substitutions.append( ("%clangxx_msan ", + " ".join([config.clang] + clang_msan_cxxflags) + + " ") ) + +# Default test suffixes. +config.suffixes = ['.c', '.cc', '.cpp'] + +# MemorySanitizer tests are currently supported on Linux only. +if config.host_os not in ['Linux']: + config.unsupported = True diff --git a/lib/msan/lit_tests/lit.site.cfg.in b/test/msan/lit.site.cfg.in similarity index 73% rename from lib/msan/lit_tests/lit.site.cfg.in rename to test/msan/lit.site.cfg.in index 6d1eccc01..fb22a57a9 100644 --- a/lib/msan/lit_tests/lit.site.cfg.in +++ b/test/msan/lit.site.cfg.in @@ -2,4 +2,4 @@ lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured") # Load tool-specific config that would do the real work. -lit_config.load_config(config, "@MSAN_SOURCE_DIR@/lit_tests/lit.cfg") +lit_config.load_config(config, "@MSAN_LIT_SOURCE_DIR@/lit.cfg") diff --git a/lib/msan/lit_tests/malloc_hook.cc b/test/msan/malloc_hook.cc similarity index 100% rename from lib/msan/lit_tests/malloc_hook.cc rename to test/msan/malloc_hook.cc diff --git a/lib/msan/lit_tests/mmap_below_shadow.cc b/test/msan/mmap_below_shadow.cc similarity index 100% rename from lib/msan/lit_tests/mmap_below_shadow.cc rename to test/msan/mmap_below_shadow.cc diff --git a/lib/msan/lit_tests/no_sanitize_memory.cc b/test/msan/no_sanitize_memory.cc similarity index 100% rename from lib/msan/lit_tests/no_sanitize_memory.cc rename to test/msan/no_sanitize_memory.cc diff --git a/lib/msan/lit_tests/no_sanitize_memory_prop.cc b/test/msan/no_sanitize_memory_prop.cc similarity index 100% rename from lib/msan/lit_tests/no_sanitize_memory_prop.cc rename to test/msan/no_sanitize_memory_prop.cc diff --git a/lib/msan/lit_tests/poison_in_free.cc b/test/msan/poison_in_free.cc similarity index 100% rename from lib/msan/lit_tests/poison_in_free.cc rename to test/msan/poison_in_free.cc diff --git a/lib/msan/lit_tests/pthread_getattr_np_deadlock.cc b/test/msan/pthread_getattr_np_deadlock.cc similarity index 100% rename from lib/msan/lit_tests/pthread_getattr_np_deadlock.cc rename to test/msan/pthread_getattr_np_deadlock.cc diff --git a/lib/msan/lit_tests/ptrace.cc b/test/msan/ptrace.cc similarity index 100% rename from lib/msan/lit_tests/ptrace.cc rename to test/msan/ptrace.cc diff --git a/lib/msan/lit_tests/readdir64.cc b/test/msan/readdir64.cc similarity index 100% rename from lib/msan/lit_tests/readdir64.cc rename to test/msan/readdir64.cc diff --git a/lib/msan/lit_tests/scandir.cc b/test/msan/scandir.cc similarity index 100% rename from lib/msan/lit_tests/scandir.cc rename to test/msan/scandir.cc diff --git a/lib/msan/lit_tests/scandir_null.cc b/test/msan/scandir_null.cc similarity index 100% rename from lib/msan/lit_tests/scandir_null.cc rename to test/msan/scandir_null.cc diff --git a/lib/msan/lit_tests/scandir_test_root/aaa b/test/msan/scandir_test_root/aaa similarity index 100% rename from lib/msan/lit_tests/scandir_test_root/aaa rename to test/msan/scandir_test_root/aaa diff --git a/lib/msan/lit_tests/scandir_test_root/aab b/test/msan/scandir_test_root/aab similarity index 100% rename from lib/msan/lit_tests/scandir_test_root/aab rename to test/msan/scandir_test_root/aab diff --git a/lib/msan/lit_tests/scandir_test_root/bbb b/test/msan/scandir_test_root/bbb similarity index 100% rename from lib/msan/lit_tests/scandir_test_root/bbb rename to test/msan/scandir_test_root/bbb diff --git a/lib/msan/lit_tests/select.cc b/test/msan/select.cc similarity index 100% rename from lib/msan/lit_tests/select.cc rename to test/msan/select.cc diff --git a/lib/msan/lit_tests/select_origin.cc b/test/msan/select_origin.cc similarity index 100% rename from lib/msan/lit_tests/select_origin.cc rename to test/msan/select_origin.cc diff --git a/lib/msan/lit_tests/setlocale.cc b/test/msan/setlocale.cc similarity index 100% rename from lib/msan/lit_tests/setlocale.cc rename to test/msan/setlocale.cc diff --git a/lib/msan/lit_tests/signal_stress_test.cc b/test/msan/signal_stress_test.cc similarity index 100% rename from lib/msan/lit_tests/signal_stress_test.cc rename to test/msan/signal_stress_test.cc diff --git a/lib/msan/lit_tests/sigwait.cc b/test/msan/sigwait.cc similarity index 100% rename from lib/msan/lit_tests/sigwait.cc rename to test/msan/sigwait.cc diff --git a/lib/msan/lit_tests/sigwaitinfo.cc b/test/msan/sigwaitinfo.cc similarity index 100% rename from lib/msan/lit_tests/sigwaitinfo.cc rename to test/msan/sigwaitinfo.cc diff --git a/lib/msan/lit_tests/stack-origin.cc b/test/msan/stack-origin.cc similarity index 100% rename from lib/msan/lit_tests/stack-origin.cc rename to test/msan/stack-origin.cc diff --git a/lib/msan/lit_tests/strerror_r-non-gnu.c b/test/msan/strerror_r-non-gnu.c similarity index 100% rename from lib/msan/lit_tests/strerror_r-non-gnu.c rename to test/msan/strerror_r-non-gnu.c diff --git a/lib/msan/lit_tests/strlen_of_shadow.cc b/test/msan/strlen_of_shadow.cc similarity index 100% rename from lib/msan/lit_tests/strlen_of_shadow.cc rename to test/msan/strlen_of_shadow.cc diff --git a/lib/msan/lit_tests/sync_lock_set_and_test.cc b/test/msan/sync_lock_set_and_test.cc similarity index 100% rename from lib/msan/lit_tests/sync_lock_set_and_test.cc rename to test/msan/sync_lock_set_and_test.cc diff --git a/lib/msan/lit_tests/textdomain.cc b/test/msan/textdomain.cc similarity index 100% rename from lib/msan/lit_tests/textdomain.cc rename to test/msan/textdomain.cc diff --git a/lib/msan/lit_tests/times.cc b/test/msan/times.cc similarity index 100% rename from lib/msan/lit_tests/times.cc rename to test/msan/times.cc diff --git a/lib/msan/lit_tests/tls_reuse.cc b/test/msan/tls_reuse.cc similarity index 100% rename from lib/msan/lit_tests/tls_reuse.cc rename to test/msan/tls_reuse.cc diff --git a/lib/msan/lit_tests/tzset.cc b/test/msan/tzset.cc similarity index 100% rename from lib/msan/lit_tests/tzset.cc rename to test/msan/tzset.cc diff --git a/lib/msan/lit_tests/unaligned_read_origin.cc b/test/msan/unaligned_read_origin.cc similarity index 100% rename from lib/msan/lit_tests/unaligned_read_origin.cc rename to test/msan/unaligned_read_origin.cc diff --git a/lib/msan/lit_tests/use-after-free.cc b/test/msan/use-after-free.cc similarity index 100% rename from lib/msan/lit_tests/use-after-free.cc rename to test/msan/use-after-free.cc diff --git a/lib/msan/lit_tests/vector_cvt.cc b/test/msan/vector_cvt.cc similarity index 100% rename from lib/msan/lit_tests/vector_cvt.cc rename to test/msan/vector_cvt.cc diff --git a/lib/msan/lit_tests/vector_select.cc b/test/msan/vector_select.cc similarity index 100% rename from lib/msan/lit_tests/vector_select.cc rename to test/msan/vector_select.cc diff --git a/lib/msan/lit_tests/wrap_indirect_calls.cc b/test/msan/wrap_indirect_calls.cc similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls.cc rename to test/msan/wrap_indirect_calls.cc diff --git a/lib/msan/lit_tests/wrap_indirect_calls/caller.cc b/test/msan/wrap_indirect_calls/caller.cc similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls/caller.cc rename to test/msan/wrap_indirect_calls/caller.cc diff --git a/lib/msan/lit_tests/wrap_indirect_calls/lit.local.cfg b/test/msan/wrap_indirect_calls/lit.local.cfg similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls/lit.local.cfg rename to test/msan/wrap_indirect_calls/lit.local.cfg diff --git a/lib/msan/lit_tests/wrap_indirect_calls/one.cc b/test/msan/wrap_indirect_calls/one.cc similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls/one.cc rename to test/msan/wrap_indirect_calls/one.cc diff --git a/lib/msan/lit_tests/wrap_indirect_calls/two.cc b/test/msan/wrap_indirect_calls/two.cc similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls/two.cc rename to test/msan/wrap_indirect_calls/two.cc diff --git a/lib/msan/lit_tests/wrap_indirect_calls/wrapper.cc b/test/msan/wrap_indirect_calls/wrapper.cc similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls/wrapper.cc rename to test/msan/wrap_indirect_calls/wrapper.cc diff --git a/lib/msan/lit_tests/wrap_indirect_calls2.cc b/test/msan/wrap_indirect_calls2.cc similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls2.cc rename to test/msan/wrap_indirect_calls2.cc diff --git a/lib/msan/lit_tests/wrap_indirect_calls_in_rtl.cc b/test/msan/wrap_indirect_calls_in_rtl.cc similarity index 100% rename from lib/msan/lit_tests/wrap_indirect_calls_in_rtl.cc rename to test/msan/wrap_indirect_calls_in_rtl.cc -- 2.11.4.GIT