[Lldb-commits] [lldb] 366fb53 - [lldb] Fix missing dependency on libc++ from LLDB test suite on non-Darwin platforms

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Mon Oct 18 06:59:49 PDT 2021


Author: Raphael Isemann
Date: 2021-10-18T15:59:34+02:00
New Revision: 366fb539485a9753e4a8167fe5140bf4fb00a098

URL: https://github.com/llvm/llvm-project/commit/366fb539485a9753e4a8167fe5140bf4fb00a098
DIFF: https://github.com/llvm/llvm-project/commit/366fb539485a9753e4a8167fe5140bf4fb00a098.diff

LOG: [lldb] Fix missing dependency on libc++ from LLDB test suite on non-Darwin platforms

Right now we only set a dependency on libc++ when the host is Darwin, which
means that libc++ in the build directory is in some undefined state when running
the test suite (it can be fully built, out-of-date or missing). Depending on
whether we have a system libc++ (which LLDB also supports running the libc++
tests against), the outcome is that we sometimes skip the libc++ tests or we run
the tests against a mix of ToT-libc++/system-libc++ (e.g., we compile against
the ToT-libc++ headers and link against the system libc++ library).

This can be demonstrated via `export LIT_FILTER=TestDataFormatterLibcxxSet ninja
check-lldb-api` (or any other libc++ test) and then gradually building parts of
libc++ in the same build (which will slowly change the test behaviour from
`UNSUPPORTED` to various failures to passing depending on how much of libcxx is
built at test time).

Note that this effectively re-enables the (unintentionally) disabled libc++
formatter tests on Linux. Don't revert this if it breaks a libc++ LLDB test,
instead please @skipIf decorate the failing test (as it was probably already
failing before this commit).

Reviewed By: labath

Differential Revision: https://reviews.llvm.org/D111981

Added: 
    

Modified: 
    lldb/test/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/lldb/test/CMakeLists.txt b/lldb/test/CMakeLists.txt
index ca60295a0054..dcb59cfb6c1c 100644
--- a/lldb/test/CMakeLists.txt
+++ b/lldb/test/CMakeLists.txt
@@ -135,9 +135,16 @@ if(TARGET clang)
             "`LLDB_INCLUDE_TESTS=OFF`.")
         endif()
       endif()
-      add_lldb_test_dependency(cxx)
     endif()
   endif()
+
+  # Add libc++ dependency for libc++-specific tests. This is an optional
+  # dependency as it's also possible to run the libc++ tests against the libc++
+  # installed on the system.
+  if (TARGET cxx)
+    add_lldb_test_dependency(cxx)
+  endif()
+
 endif()
 
 if (LLDB_BUILT_STANDALONE)


        


More information about the lldb-commits mailing list