[libc++] Add a new target check-cxx-deps to build dependencies of the test suite
authorLouis Dionne <ldionne@apple.com>
Wed, 15 Apr 2020 19:05:14 +0000 (15:05 -0400)
committerLouis Dionne <ldionne@apple.com>
Wed, 15 Apr 2020 19:11:27 +0000 (15:11 -0400)
When running the tests through `lit` directly instead of through `check-cxx`,
it is required to manually build the `cxx` (and often `cxx_experimental`)
targets. Instead of having to do that manually, this commit adds a new
target `check-cxx-deps` that does that for you.

libcxx/docs/TestingLibcxx.rst
libcxx/test/CMakeLists.txt

index 683d5e0..b70cf2e 100644 (file)
@@ -25,11 +25,14 @@ Usage
 -----
 
 After building libc++, you can run parts of the libc++ test suite by simply
-running ``llvm-lit`` on a specified test or directory. For example:
+running ``llvm-lit`` on a specified test or directory. If you're unsure
+whether the required libraries have been built, you can use the
+`check-cxx-deps` target. For example:
 
 .. code-block:: bash
 
   $ cd <monorepo-root>
+  $ make -C <build> check-cxx-deps # If you want to make sure the targets get rebuilt
   $ <build>/bin/llvm-lit -sv libcxx/test/std/re # Run all of the std::regex tests
   $ <build>/bin/llvm-lit -sv libcxx/test/std/depr/depr.c.headers/stdlib_h.pass.cpp # Run a single test
   $ <build>/bin/llvm-lit -sv libcxx/test/std/atomics libcxx/test/std/threads # Test std::thread and std::atomic
index 9b579f7..5068cbd 100644 (file)
@@ -109,10 +109,14 @@ if (LIBCXX_INCLUDE_TESTS)
     ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
     ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
 
+  add_custom_target(check-cxx-deps
+    DEPENDS cxx ${LIBCXX_TEST_DEPS}
+    COMMENT "Builds dependencies required to run the test suite.")
+
   add_lit_testsuite(check-cxx
     "Running libcxx tests"
     ${CMAKE_CURRENT_BINARY_DIR}
-    DEPENDS cxx ${LIBCXX_TEST_DEPS})
+    DEPENDS check-cxx-deps)
 endif()
 
 if (LIBCXX_GENERATE_COVERAGE)