Add testing infrastructure to check if gdb is available for testing.
Reviewers: echristo, EricWF
Subscribers: mgorny, christof, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67194
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@371120 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 8a2114f..e6ef628 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -60,6 +60,14 @@
message(FATAL_ERROR "Expected LIBCXX_TEST_DEPS to be defined")
endif()
+find_program(LIBCXX_GDB gdb)
+if (LIBCXX_GDB)
+ set(LIBCXX_GDB "${LIBCXX_GDB}")
+ message(STATUS "gdb found: ${LIBCXX_GDB}")
+else()
+ message(STATUS "gdb not found. Disabling dependent tests.")
+endif()
+
if (LIBCXX_INCLUDE_TESTS)
include(AddLLVM) # for configure_lit_site_cfg and add_lit_testsuit
@@ -87,7 +95,6 @@
setup_lcov_test_target_coverage("cxx" "${output_dir}" "${capture_dirs}" "${extract_dirs}")
endif()
-
if (LIBCXX_CONFIGURE_IDE)
# Create dummy targets for each of the tests in the test suite, this allows
# IDE's such as CLion to correctly highlight the tests because it knows
diff --git a/test/lit.site.cfg.in b/test/lit.site.cfg.in
index fd3d7d8..fafc8fe 100644
--- a/test/lit.site.cfg.in
+++ b/test/lit.site.cfg.in
@@ -35,6 +35,7 @@
config.cxx_ext_threads = @LIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY@
config.pstl_src_root = "@ParallelSTL_SOURCE_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None
config.pstl_obj_root = "@ParallelSTL_BINARY_DIR@" if @LIBCXX_ENABLE_PARALLEL_ALGORITHMS@ else None
+config.libcxx_gdb = "@LIBCXX_GDB@"
# Let the main config do the real work.
config.loaded_site_config = True
diff --git a/utils/libcxx/test/config.py b/utils/libcxx/test/config.py
index f353432..3be1aa1 100644
--- a/utils/libcxx/test/config.py
+++ b/utils/libcxx/test/config.py
@@ -490,6 +490,10 @@
self.config.available_features.add('glibc-%s' % maj_v)
self.config.available_features.add('glibc-%s.%s' % (maj_v, min_v))
+ if 'NOTFOUND' not in self.get_lit_conf('libcxx_gdb'):
+ self.config.available_features.add('libcxx_gdb')
+ self.cxx.libcxx_gdb = self.get_lit_conf('libcxx_gdb')
+
# Support Objective-C++ only on MacOS and if the compiler supports it.
if self.target_info.platform() == "darwin" and \
self.target_info.is_host_macosx() and \
@@ -1072,6 +1076,8 @@
not_py = os.path.join(self.libcxx_src_root, 'utils', 'not.py')
not_str = '%s %s ' % (pipes.quote(sys.executable), pipes.quote(not_py))
sub.append(('not ', not_str))
+ if self.get_lit_conf('libcxx_gdb'):
+ sub.append(('%libcxx_gdb', self.get_lit_conf('libcxx_gdb')))
def can_use_deployment(self):
# Check if the host is on an Apple platform using clang.