diff options
author | Reid Kleckner <rnk@google.com> | 2017-08-02 17:16:25 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2017-08-02 17:16:25 +0000 |
commit | 5db8114aeaaf977fa3b58dbb494f5c09a1a57199 (patch) | |
tree | afac1014d6009e5fb082fdb56d40363fe06329bc | |
parent | 981b5410cc12240db4414a206822795a4ac524fe (diff) |
Revert "[lit] Avoid copying llvm/utils/lit/tests/Inputs with lit site configs"
This reverts r309602, check-lit still leaves Output directories in the
source directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309833 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | utils/lit/CMakeLists.txt | 27 | ||||
-rw-r--r-- | utils/lit/tests/CMakeLists.txt | 24 | ||||
-rw-r--r-- | utils/lit/tests/Inputs/lit.site.cfg.in | 3 | ||||
-rw-r--r-- | utils/lit/tests/lit.site.cfg.in | 4 |
5 files changed, 29 insertions, 31 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 647dbc007a2..c2ce41761b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -897,7 +897,7 @@ if( LLVM_INCLUDE_TESTS ) NO_INSTALL ALWAYS_CLEAN) endif() - add_subdirectory(utils/lit/tests) + add_subdirectory(utils/lit) add_subdirectory(test) add_subdirectory(unittests) if( LLVM_INCLUDE_UTILS ) diff --git a/utils/lit/CMakeLists.txt b/utils/lit/CMakeLists.txt new file mode 100644 index 00000000000..d1b91a0c8d1 --- /dev/null +++ b/utils/lit/CMakeLists.txt @@ -0,0 +1,27 @@ +# The configured file is not placed in the correct location +# until the tests are run as we need to copy it into +# a copy of the tests folder +configure_file("tests/lit.site.cfg.in" "lit.site.cfg" @ONLY) + +# Lit's test suite creates output files next to the sources which makes the +# source tree dirty. This is undesirable because we do out of source builds. +# To work around this the tests and the configuration file are copied into the +# build directory just before running them. The tests are not copied over at +# configure time (i.e. `file(COPY ...)`) because this could lead to stale +# tests being run. +add_custom_target(prepare-check-lit + COMMAND ${CMAKE_COMMAND} -E remove_directory "${CMAKE_CURRENT_BINARY_DIR}/tests" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/tests" "${CMAKE_CURRENT_BINARY_DIR}/tests" + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg" "${CMAKE_CURRENT_BINARY_DIR}/tests" + COMMENT "Preparing lit tests" +) + +# Add rules for lit's own test suite +add_lit_testsuite(check-lit "Running lit's tests" + ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS "FileCheck" "not" "prepare-check-lit" +) + +# For IDEs +set_target_properties(check-lit PROPERTIES FOLDER "Tests") +set_target_properties(prepare-check-lit PROPERTIES FOLDER "Tests") diff --git a/utils/lit/tests/CMakeLists.txt b/utils/lit/tests/CMakeLists.txt deleted file mode 100644 index f63fd90277e..00000000000 --- a/utils/lit/tests/CMakeLists.txt +++ /dev/null @@ -1,24 +0,0 @@ -# The configured file is not placed in the correct location -# until the tests are run as we need to copy it into -# a copy of the tests folder -configure_file("lit.site.cfg.in" "lit.site.cfg" @ONLY) - -# For every lit.cfg in the Inputs tree, create a lit.site.cfg that points at -# the tests back in the source directory. Running the tests this way keeps the -# temporary output files in the build directory. -file(GLOB inputs_suites "Inputs/*/lit.cfg") -foreach(lit_cfg ${inputs_suites}) - get_filename_component(LIT_TEST_SRC_DIR "${lit_cfg}" DIRECTORY) - file(RELATIVE_PATH LIT_TEST_BIN_DIR "${CMAKE_CURRENT_SOURCE_DIR}" "${LIT_TEST_SRC_DIR}") - set(LIT_TEST_BIN_DIR "${CMAKE_CURRENT_BINARY_DIR}/${LIT_TEST_BIN_DIR}") - configure_file("Inputs/lit.site.cfg.in" "${LIT_TEST_BIN_DIR}/lit.site.cfg" @ONLY) -endforeach() - -# Add rules for lit's own test suite -add_lit_testsuite(check-lit "Running lit's tests" - ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS "FileCheck" "not" -) - -# For IDEs -set_target_properties(check-lit PROPERTIES FOLDER "Tests") diff --git a/utils/lit/tests/Inputs/lit.site.cfg.in b/utils/lit/tests/Inputs/lit.site.cfg.in deleted file mode 100644 index f6cd31cf640..00000000000 --- a/utils/lit/tests/Inputs/lit.site.cfg.in +++ /dev/null @@ -1,3 +0,0 @@ -lit_config.load_config(config, "@LIT_TEST_SRC_DIR@/lit.cfg") -config.test_source_root = "@LIT_TEST_SRC_DIR@" -config.test_exec_root = "@LIT_TEST_BIN_DIR@" diff --git a/utils/lit/tests/lit.site.cfg.in b/utils/lit/tests/lit.site.cfg.in index 745c528759e..bdc1f58575e 100644 --- a/utils/lit/tests/lit.site.cfg.in +++ b/utils/lit/tests/lit.site.cfg.in @@ -5,6 +5,4 @@ config.llvm_obj_root = "@LLVM_BINARY_DIR@" config.llvm_tools_dir = "@LLVM_TOOLS_BINARY_DIR@" # Let the main config do the real work. -lit_config.load_config(config, "@LLVM_SOURCE_DIR@/utils/lit/tests/lit.cfg") -config.test_source_root = "@CMAKE_CURRENT_SOURCE_DIR@" -config.test_exec_root = "@CMAKE_CURRENT_BINARY_DIR@" +lit_config.load_config(config, "@LLVM_BINARY_DIR@/utils/lit/tests/lit.cfg") |