[llvm-commits] [compiler-rt] r161406 - in /compiler-rt/trunk/lib: asan/lit_tests/CMakeLists.txt asan/lit_tests/Unit/ asan/lit_tests/Unit/lit.cfg asan/lit_tests/Unit/lit.site.cfg.in asan/lit_tests/lit.site.cfg.in asan/tests/CMakeLists.txt lit.comm

Chandler Carruth chandlerc at google.com
Tue Aug 7 02:22:28 PDT 2012


On Tue, Aug 7, 2012 at 1:59 AM, Alexey Samsonov <samsonov at google.com> wrote:

> Author: samsonov
> Date: Tue Aug  7 03:59:15 2012
> New Revision: 161406
>
> URL: http://llvm.org/viewvc/llvm-project?rev=161406&view=rev
> Log:
> [ASan] Add support for running unit tests by lit (as a part of 'make
> check-asan' command)
>
> Added:
>     compiler-rt/trunk/lib/asan/lit_tests/Unit/
>     compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.cfg
>     compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.site.cfg.in
>     compiler-rt/trunk/lib/lit.common.unit.cfg
> Modified:
>     compiler-rt/trunk/lib/asan/lit_tests/CMakeLists.txt
>     compiler-rt/trunk/lib/asan/lit_tests/lit.site.cfg.in
>     compiler-rt/trunk/lib/asan/tests/CMakeLists.txt
>
> Modified: compiler-rt/trunk/lib/asan/lit_tests/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/CMakeLists.txt?rev=161406&r1=161405&r2=161406&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/asan/lit_tests/CMakeLists.txt (original)
> +++ compiler-rt/trunk/lib/asan/lit_tests/CMakeLists.txt Tue Aug  7
> 03:59:15 2012
> @@ -1,15 +1,39 @@
> +set(ASAN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
> +set(ASAN_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
>    )
>
> +configure_lit_site_cfg(
> +  ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in
> +  ${CMAKE_CURRENT_BINARY_DIR}/Unit/lit.site.cfg
> +  )
> +
>  set(ASAN_TEST_DEPS
> -  clang clang-headers FileCheck count not
>    clang-rt.asan-x86_64 clang-rt.asan-i386
>

I don't think you even need the runtime libraries... AsanUnitTests should
bring everything it needs?


>    )
> +if(LLVM_INCLUDE_TESTS)
> +  list(APPEND ASAN_TEST_DEPS AsanUnitTests)
> +endif()
>
> -add_lit_testsuite(check-asan "Running the AddressSanitizer tests"
> -  ${CMAKE_CURRENT_BINARY_DIR}
> -  DEPENDS ${ASAN_TEST_DEPS}
> -  )
> -set_target_properties(check-asan PROPERTIES FOLDER "ASan tests")
> +if("${CMAKE_HOST_SYSTEM}" STREQUAL "${CMAKE_SYSTEM}")
> +  # Run ASan output tests only if we're not cross-compiling,
> +  # and can be sure that clang would produce working binaries.
> +  list(APPEND ASAN_TEST_DEPS
> +    clang clang-headers FileCheck count not
> +    )
> +  add_lit_testsuite(check-asan "Running the AddressSanitizer tests"
> +    ${CMAKE_CURRENT_BINARY_DIR}
> +    DEPENDS ${ASAN_TEST_DEPS}
> +    )
> +  set_target_properties(check-asan PROPERTIES FOLDER "ASan tests")
> +elseif(LLVM_INCLUDE_TESTS)
> +  # Otherwise run only ASan unit tests.
> +  add_lit_testsuite(check-asan "Running the AddressSanitizer unit tests"
> +    ${CMAKE_CURRENT_BINARY_DIR}/Unit
> +    DEPENDS ${ASAN_TEST_DEPS}
> +    )
> +  set_target_properties(check-asan PROPERTIES FOLDER "ASan unit tests")
> +endif()
>
> Added: compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.cfg
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.cfg?rev=161406&view=auto
>
> ==============================================================================
> --- compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.cfg (added)
> +++ compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.cfg Tue Aug  7 03:59:15
> 2012
> @@ -0,0 +1,27 @@
> +# -*- Python -*-
> +
> +import os
> +
> +def get_required_attr(config, attr_name):
> +  attr_value = getattr(config, attr_name, None)
> +  if not attr_value:
> +    lit.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 attributes common for all compiler-rt projects.
> +llvm_src_root = get_required_attr(config, 'llvm_src_root')
> +compiler_rt_lit_unit_cfg = os.path.join(llvm_src_root, "projects",
> +                                        "compiler-rt", "lib",
> +                                        "lit.common.unit.cfg")
> +lit.load_config(config, compiler_rt_lit_unit_cfg)
> +
> +# Setup config name.
> +config.name = 'AddressSanitizer-Unit'
> +
> +# Setup test source and exec root. For unit tests, we define
> +# it as build directory with ASan unit tests.
> +asan_binary_dir = get_required_attr(config, "asan_binary_dir")
> +config.test_exec_root = os.path.join(asan_binary_dir, "tests")
> +config.test_source_root = config.test_exec_root
>
> Added: compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.site.cfg.in
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.site.cfg.in?rev=161406&view=auto
>
> ==============================================================================
> --- compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.site.cfg.in (added)
> +++ compiler-rt/trunk/lib/asan/lit_tests/Unit/lit.site.cfg.in Tue Aug  7
> 03:59:15 2012
> @@ -0,0 +1,10 @@
> +## Autogenerated by LLVM/Clang configuration.
> +# Do not edit!
> +
> +config.target_triple = "@TARGET_TRIPLE@"
> +config.llvm_src_root = "@LLVM_SOURCE_DIR@"
> +config.build_type = "@CMAKE_BUILD_TYPE@"
> +config.asan_binary_dir = "@ASAN_BINARY_DIR@"
> +
> +# Let the main config do the real work.
> +lit.load_config(config, "@ASAN_SOURCE_DIR@/lit_tests/Unit/lit.cfg")
>
> Modified: compiler-rt/trunk/lib/asan/lit_tests/lit.site.cfg.in
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/lit.site.cfg.in?rev=161406&r1=161405&r2=161406&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/asan/lit_tests/lit.site.cfg.in (original)
> +++ compiler-rt/trunk/lib/asan/lit_tests/lit.site.cfg.in Tue Aug  7
> 03:59:15 2012
> @@ -6,4 +6,4 @@
>  config.clang = "@LLVM_BINARY_DIR@/bin/clang"
>
>  # Let the main config do the real work.
> -lit.load_config(config, "@CMAKE_CURRENT_SOURCE_DIR@/lit.cfg")
> +lit.load_config(config, "@ASAN_SOURCE_DIR@/lit_tests/lit.cfg")
>
> Modified: compiler-rt/trunk/lib/asan/tests/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/tests/CMakeLists.txt?rev=161406&r1=161405&r2=161406&view=diff
>
> ==============================================================================
> --- compiler-rt/trunk/lib/asan/tests/CMakeLists.txt (original)
> +++ compiler-rt/trunk/lib/asan/tests/CMakeLists.txt Tue Aug  7 03:59:15
> 2012
> @@ -47,10 +47,10 @@
>    -DASAN_UAR=0
>  )
>
> -add_custom_target(AsanTests)
> -set_target_properties(AsanTests PROPERTIES FOLDER "ASan tests")
> +add_custom_target(AsanUnitTests)
> +set_target_properties(AsanUnitTests PROPERTIES FOLDER "ASan unit tests")
>  function(add_asan_test testname)
> -  add_unittest(AsanTests ${testname} ${ARGN})
> +  add_unittest(AsanUnitTests ${testname} ${ARGN})
>    if(LLVM_BUILD_32_BITS)
>      target_link_libraries(${testname} clang_rt.asan-i386)
>    else()
>
> Added: compiler-rt/trunk/lib/lit.common.unit.cfg
> URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lit.common.unit.cfg?rev=161406&view=auto
>
> ==============================================================================
> --- compiler-rt/trunk/lib/lit.common.unit.cfg (added)
> +++ compiler-rt/trunk/lib/lit.common.unit.cfg Tue Aug  7 03:59:15 2012
> @@ -0,0 +1,21 @@
> +# -*- Python -*-
> +
> +# Configuration file for 'lit' test runner.
> +# This file contains common config setup rules for unit tests in various
> +# compiler-rt testsuites.
> +
> +import os
> +
> +# Setup test format
> +build_type = getattr(config, "build_type", "Debug")
> +config.test_format = lit.formats.GoogleTest(build_type, "Test")
> +
> +# Setup test suffixes.
> +config.suffixes = []
> +
> +# Propagate the temp directory. Windows requires this because it uses
> \Windows\
> +# if none of these are present.
> +if 'TMP' in os.environ:
> +    config.environment['TMP'] = os.environ['TMP']
> +if 'TEMP' in os.environ:
> +    config.environment['TEMP'] = os.environ['TEMP']
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120807/7d477fd2/attachment.html>


More information about the llvm-commits mailing list