Unverified Commit dd64c82c authored by Haowei's avatar Haowei Committed by GitHub
Browse files

[unittest] Allow LLVM unit test to run under a wrapper program. (#66821)

This patch add CMake option "LLVM_GTEST_RUN_UNDER" to LLVM unittest
configuration. When specified, LLVM unittest will be run under the
wrapper program specified by this option. This feature can simplify the
setup to run LLVM unittest on a target platform that is different than
host.
parent b3372371
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1219,6 +1219,9 @@ if( LLVM_INCLUDE_EXAMPLES )
endif()

if( LLVM_INCLUDE_TESTS )
  set(LLVM_GTEST_RUN_UNDER
    "" CACHE STRING
    "Define the wrapper program that LLVM unit tests should be run under.")
  if(EXISTS ${LLVM_MAIN_SRC_DIR}/projects/test-suite AND TARGET clang)
    include(LLVMExternalProjectUtils)
    llvm_ExternalProject_Add(test-suite ${LLVM_MAIN_SRC_DIR}/projects/test-suite
+5 −1
Original line number Diff line number Diff line
@@ -19,7 +19,11 @@ config.test_exec_root = os.path.join(config.llvm_obj_root, "unittests")
config.test_source_root = config.test_exec_root

# testFormat: The test format to use to interpret tests.
config.test_format = lit.formats.GoogleTest(config.llvm_build_mode, "Tests")
config.test_format = lit.formats.GoogleTest(
    config.llvm_build_mode,
    "Tests",
    run_under=config.gtest_run_under,
)

# Propagate the temp directory. Windows requires this because it uses \Windows\
# if none of these are present.
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ config.llvm_obj_root = path(r"@LLVM_BINARY_DIR@")
config.llvm_tools_dir = lit_config.substitute(path(r"@LLVM_TOOLS_DIR@"))
config.llvm_build_mode = lit_config.substitute("@LLVM_BUILD_MODE@")
config.shlibdir = lit_config.substitute(path(r"@SHLIBDIR@"))
config.gtest_run_under = lit_config.substitute(r"@LLVM_GTEST_RUN_UNDER@")

# Let the main config do the real work.
lit_config.load_config(