[compiler-rt] r260230 - [msan] Run the tests for each supported arch and suffix each one to distinguish them.

Hans Wennborg via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 10 11:12:43 PST 2016


On Wed, Feb 10, 2016 at 2:46 AM, Daniel Sanders
<Daniel.Sanders at imgtec.com> wrote:
> It works well enough for the 3.8 release. It marks the test unsupported for
> all supported targets if any of them is mips64. This means it will
> incorrectly mark mips (32-bit) unsupported as well but this is ok because
> the whole of msan is unsupported for mips (32-bit) at the moment.
>
>
>
> I'll commit the 'UNSUPPORTED:mips64-supported-target' to the branch since
> that seems like the obvious thing to do and is a safer bet than merging this
> and D17045 this late in the release process.

That sounds good to me.

Thanks,
Hans


> From: Alexey Samsonov [mailto:vonosmas at gmail.com]
> Sent: 10 February 2016 01:01
> To: Daniel Sanders
> Cc: llvm-commits at lists.llvm.org; Hans Wennborg
> Subject: Re: [compiler-rt] r260230 - [msan] Run the tests for each supported
> arch and suffix each one to distinguish them.
>
>
>
> I'm curious if you can use a simpler workaround to disable this test in the
> release branch: will adding
>
> UNSUPPORTED:mips64-supported-target
>
> work there?
>
>
>
> (I agree that http://reviews.llvm.org/D17045 is cleaner fix).
>
>
>
> On Tue, Feb 9, 2016 at 3:15 PM, Daniel Sanders <Daniel.Sanders at imgtec.com>
> wrote:
>
> Hi,
>
> Is it ok to merge this to the 3.8 release? It turns out I need part of it
> (specifically the ${arch} variable from the loop) to fix the hanging test on
> our big-endian target (see http://reviews.llvm.org/D17045).
>
> ________________________________________
> From: llvm-commits [llvm-commits-bounces at lists.llvm.org] on behalf of Daniel
> Sanders via llvm-commits [llvm-commits at lists.llvm.org]
> Sent: 09 February 2016 16:18
> To: llvm-commits at lists.llvm.org
> Subject: [compiler-rt] r260230 - [msan] Run the tests for each supported
> arch and suffix each one to distinguish them.
>
>
> Author: dsanders
> Date: Tue Feb  9 10:18:15 2016
> New Revision: 260230
>
> URL: http://llvm.org/viewvc/llvm-project?rev=260230&view=rev
> Log:
> [msan] Run the tests for each supported arch and suffix each one to
> distinguish 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 msan tests fail since their
> name no longer implies that they are trying to test the default target.
>
> Reviewers: samsonov
>
> Subscribers: tberghammer, danalbert, srhines, llvm-commits
>
> Differential Revision: http://reviews.llvm.org/D16855
>
> Modified:
>     compiler-rt/trunk/test/msan/CMakeLists.txt
>     compiler-rt/trunk/test/msan/lit.cfg
>     compiler-rt/trunk/test/msan/lit.site.cfg.in
>
> Modified: compiler-rt/trunk/test/msan/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/msan/CMakeLists.txt?rev=260230&r1=260229&r2=260230&view=diff
> ==============================================================================
> --- compiler-rt/trunk/test/msan/CMakeLists.txt (original)
> +++ compiler-rt/trunk/test/msan/CMakeLists.txt Tue Feb  9 10:18:15 2016
> @@ -1,8 +1,32 @@
>  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_TESTSUITES)
> +
> +set(MSAN_TEST_ARCH ${MSAN_SUPPORTED_ARCH})
> +if(APPLE)
> +  darwin_filter_host_archs(MSAN_SUPPORTED_ARCH MSAN_TEST_ARCH)
> +endif()
> +
> +foreach(arch ${MSAN_TEST_ARCH})
> +  string(TOLOWER "-${arch}" MSAN_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(MSAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER})
> +    set(MSAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS})
> +  else()
> +    get_target_flags_for_arch(${arch} MSAN_TEST_TARGET_CFLAGS)
> +    string(REPLACE ";" " " MSAN_TEST_TARGET_CFLAGS
> "${MSAN_TEST_TARGET_CFLAGS}")
> +  endif()
> +
> +  string(TOUPPER ${arch} ARCH_UPPER_CASE)
> +  set(CONFIG_NAME ${ARCH_UPPER_CASE}Config)
> +
> +  configure_lit_site_cfg(
> +    ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
> +    ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg)
> +  list(APPEND MSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME})
> +endforeach()
>
>  set(MSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS})
>  if(NOT COMPILER_RT_STANDALONE_BUILD)
> @@ -17,7 +41,7 @@ if(COMPILER_RT_INCLUDE_TESTS AND COMPILE
>  endif()
>
>  add_lit_testsuite(check-msan "Running the MemorySanitizer tests"
> -  ${CMAKE_CURRENT_BINARY_DIR}
> +  ${MSAN_TESTSUITES}
>    DEPENDS ${MSAN_TEST_DEPS}
>    )
>  set_target_properties(check-msan PROPERTIES FOLDER "MSan tests")
>
> Modified: compiler-rt/trunk/test/msan/lit.cfg
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/msan/lit.cfg?rev=260230&r1=260229&r2=260230&view=diff
> ==============================================================================
> --- compiler-rt/trunk/test/msan/lit.cfg (original)
> +++ compiler-rt/trunk/test/msan/lit.cfg Tue Feb  9 10:18:15 2016
> @@ -3,17 +3,18 @@
>  import os
>
>  # Setup config name.
> -config.name = 'MemorySanitizer'
> +config.name = 'MemorySanitizer' + config.name_suffix
>
>  # 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",
> -                     "-m64"] + config.debug_info_flags
> +clang_msan_cflags = (["-fsanitize=memory",
> +                      "-mno-omit-leaf-frame-pointer",
> +                      "-fno-omit-frame-pointer",
> +                      "-fno-optimize-sibling-calls"] +
> +                      [config.target_cflags] +
> +                      config.debug_info_flags)
>  # Some Msan tests leverage backtrace() which requires libexecinfo on
> FreeBSD.
>  if config.host_os == 'FreeBSD':
>    clang_msan_cflags += ["-lexecinfo"]
>
> Modified: compiler-rt/trunk/test/msan/lit.site.cfg.in
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/msan/lit.site.cfg.in?rev=260230&r1=260229&r2=260230&view=diff
> ==============================================================================
> --- compiler-rt/trunk/test/msan/lit.site.cfg.in (original)
> +++ compiler-rt/trunk/test/msan/lit.site.cfg.in Tue Feb  9 10:18:15 2016
> @@ -1,5 +1,11 @@
> +## Autogenerated by LLVM/Clang configuration.
> +# Do not edit!
> +
>  # Load common config for all compiler-rt lit tests.
>  lit_config.load_config(config,
> "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")
>
> +# Tool-specific config options.
> +config.name_suffix = "@MSAN_TEST_CONFIG_SUFFIX@"
> +config.target_cflags = "@MSAN_TEST_TARGET_CFLAGS@"
>  # Load tool-specific config that would do the real work.
>  lit_config.load_config(config, "@MSAN_LIT_SOURCE_DIR@/lit.cfg")
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
>
>
>
> --
>
> Alexey Samsonov
> vonosmas at gmail.com


More information about the llvm-commits mailing list