From bf7602b261c7167966c6ae5cf153f6e4847ace3b Mon Sep 17 00:00:00 2001 From: Sterling Augustine Date: Thu, 5 Sep 2019 20:44:08 +0000 Subject: [PATCH] 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 llvm-svn: 371120 --- libcxx/test/CMakeLists.txt | 9 ++++++++- libcxx/test/lit.site.cfg.in | 1 + libcxx/utils/libcxx/test/config.py | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/libcxx/test/CMakeLists.txt b/libcxx/test/CMakeLists.txt index 8a2114f..e6ef628 100644 --- a/libcxx/test/CMakeLists.txt +++ b/libcxx/test/CMakeLists.txt @@ -60,6 +60,14 @@ if (NOT DEFINED LIBCXX_TEST_DEPS) 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 @@ if (LIBCXX_GENERATE_COVERAGE) 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/libcxx/test/lit.site.cfg.in b/libcxx/test/lit.site.cfg.in index fd3d7d8..fafc8fe 100644 --- a/libcxx/test/lit.site.cfg.in +++ b/libcxx/test/lit.site.cfg.in @@ -35,6 +35,7 @@ config.libcxxabi_shared = @LIBCXXABI_ENABLE_SHARED@ 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/libcxx/utils/libcxx/test/config.py b/libcxx/utils/libcxx/test/config.py index f353432..3be1aa1 100644 --- a/libcxx/utils/libcxx/test/config.py +++ b/libcxx/utils/libcxx/test/config.py @@ -490,6 +490,10 @@ class Configuration(object): 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 @@ class Configuration(object): 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. -- 2.7.4