diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt index e00189138475..c1ac9e4f0f95 100644 --- a/clang/test/CMakeLists.txt +++ b/clang/test/CMakeLists.txt @@ -88,13 +88,6 @@ set(CLANG_TEST_PARAMS clang_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg ) -if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests/CMakeLists.txt") - # This is a hack to keep existing build build infrastructure working while we - # can migrate to the new standard workflow of checking out debuginfo-tests into - # llvm/projects or using it in a mono-repo - add_subdirectory(debuginfo-tests) -endif() - if( NOT CLANG_BUILT_STANDALONE ) list(APPEND CLANG_TEST_DEPS llvm-config diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py index d2f0491821de..39bdf36afd11 100644 --- a/clang/test/lit.cfg.py +++ b/clang/test/lit.cfg.py @@ -58,6 +58,8 @@ tool_dirs = [config.clang_tools_dir, config.llvm_tools_dir] tools = [ 'c-index-test', 'clang-check', 'clang-diff', 'clang-format', 'opt', + ToolSubst('%test_debuginfo', command=os.path.join( + config.llvm_src_root, 'utils', 'test_debuginfo.pl')), ToolSubst('%clang_func_map', command=FindTool( 'clang-func-mapping'), unresolved='ignore'), ] diff --git a/debuginfo-tests/CMakeLists.txt b/debuginfo-tests/CMakeLists.txt deleted file mode 100644 index 60a467fec851..000000000000 --- a/debuginfo-tests/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -# Debug Info tests. These tests invoke clang to generate programs with -# various types of debug info, and then run those programs under a debugger -# such as GDB or LLDB to verify the results. - -set(DEBUGINFO_TESTS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -set(DEBUGINFO_TESTS_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) - -set(DEBUGINFO_TEST_DEPS - clang - llvm-config - FileCheck - count - not - ) - -get_target_property(CLANG_SOURCE_DIR clang SOURCE_DIR) - -if (TARGET lld) - set(DEBUGINFO_TESTS_HAS_LLD 1) - list(APPEND DEBUGINFO_TEST_DEPS lld) - get_target_property(LLD_SOURCE_DIR lld SOURCE_DIR) -endif() - -configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in - ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py - MAIN_CONFIG - ${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py - ) - -add_lit_testsuite(check-debuginfo "Running debug info integration tests" - ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS ${DEBUGINFO_TEST_DEPS} - ) - -set_target_properties(check-debuginfo PROPERTIES FOLDER "Debug info tests") \ No newline at end of file diff --git a/debuginfo-tests/tests/aggregate-indirect-arg.cpp b/debuginfo-tests/aggregate-indirect-arg.cpp similarity index 93% rename from debuginfo-tests/tests/aggregate-indirect-arg.cpp rename to debuginfo-tests/aggregate-indirect-arg.cpp index eb2fd665cf61..86c7caf96184 100644 --- a/debuginfo-tests/tests/aggregate-indirect-arg.cpp +++ b/debuginfo-tests/aggregate-indirect-arg.cpp @@ -1,6 +1,6 @@ // RUN: %clangxx %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clangxx %target_itanium_abi_host_triple %t.o -o %t.out -// RUN: %test_debuginfo %s %t.out +// RUN: %test_debuginfo %s %t.out // Radar 8945514 // DEBUGGER: break 22 // DEBUGGER: r diff --git a/debuginfo-tests/tests/asan-blocks.c b/debuginfo-tests/asan-blocks.c similarity index 100% rename from debuginfo-tests/tests/asan-blocks.c rename to debuginfo-tests/asan-blocks.c diff --git a/debuginfo-tests/tests/asan.c b/debuginfo-tests/asan.c similarity index 100% rename from debuginfo-tests/tests/asan.c rename to debuginfo-tests/asan.c diff --git a/debuginfo-tests/tests/block_var.m b/debuginfo-tests/block_var.m similarity index 93% rename from debuginfo-tests/tests/block_var.m rename to debuginfo-tests/block_var.m index 32862172c570..7ec786f17987 100644 --- a/debuginfo-tests/tests/block_var.m +++ b/debuginfo-tests/block_var.m @@ -1,6 +1,6 @@ // RUN: %clang %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clang %target_itanium_abi_host_triple %t.o -o %t.out -framework Foundation -// RUN: %test_debuginfo %s %t.out +// RUN: %test_debuginfo %s %t.out // REQUIRES: system-darwin diff --git a/debuginfo-tests/tests/blocks.m b/debuginfo-tests/blocks.m similarity index 85% rename from debuginfo-tests/tests/blocks.m rename to debuginfo-tests/blocks.m index 12c99774a314..8e5a21213200 100644 --- a/debuginfo-tests/tests/blocks.m +++ b/debuginfo-tests/blocks.m @@ -1,6 +1,6 @@ // RUN: %clang %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clang %target_itanium_abi_host_triple %t.o -o %t.out -framework Foundation -// RUN: %test_debuginfo %s %t.out +// RUN: %test_debuginfo %s %t.out // REQUIRES: system-darwin // Radar 9279956 @@ -24,9 +24,9 @@ extern void foo(void(^)(void)); int master = 0; __block int m2 = 0; __block int dbTransaction = 0; - int (^x)(void) = ^(void) { (void) self; - (void) master; - (void) dbTransaction; + int (^x)(void) = ^(void) { (void) self; + (void) master; + (void) dbTransaction; m2++; return m2; }; diff --git a/debuginfo-tests/tests/ctor.cpp b/debuginfo-tests/ctor.cpp similarity index 78% rename from debuginfo-tests/tests/ctor.cpp rename to debuginfo-tests/ctor.cpp index 364401a2d5cc..92cdbcd7e0b1 100644 --- a/debuginfo-tests/tests/ctor.cpp +++ b/debuginfo-tests/ctor.cpp @@ -1,12 +1,12 @@ // RUN: %clangxx %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clangxx %target_itanium_abi_host_triple %t.o -o %t.out -// RUN: %test_debuginfo %s %t.out +// RUN: %test_debuginfo %s %t.out // DEBUGGER: break 14 // DEBUGGER: r // DEBUGGER: p *this -// CHECK-NEXT-NOT: Cannot access memory at address +// CHECK-NEXT-NOT: Cannot access memory at address class A { public: diff --git a/debuginfo-tests/tests/dbg-arg.c b/debuginfo-tests/dbg-arg.c similarity index 100% rename from debuginfo-tests/tests/dbg-arg.c rename to debuginfo-tests/dbg-arg.c diff --git a/debuginfo-tests/tests/foreach.m b/debuginfo-tests/foreach.m similarity index 94% rename from debuginfo-tests/tests/foreach.m rename to debuginfo-tests/foreach.m index ccdc2827fd10..2e3c312c877c 100644 --- a/debuginfo-tests/tests/foreach.m +++ b/debuginfo-tests/foreach.m @@ -1,6 +1,6 @@ // RUN: %clang %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clang %target_itanium_abi_host_triple %t.o -o %t.out -framework Foundation -// RUN: %test_debuginfo %s %t.out +// RUN: %test_debuginfo %s %t.out // // REQUIRES: system-darwin // Radar 8757124 @@ -19,7 +19,7 @@ int main (int argc, const char * argv[]) { for (NSString *thing in things) { NSLog (@"%@", thing); } - + things = [NSArray arrayWithObjects:@"aaa", @"bbb", @"ccc" , nil]; for (NSString *thing in things) { NSLog (@"%@", thing); diff --git a/debuginfo-tests/tests/forward-declare-class.cpp b/debuginfo-tests/forward-declare-class.cpp similarity index 100% rename from debuginfo-tests/tests/forward-declare-class.cpp rename to debuginfo-tests/forward-declare-class.cpp diff --git a/debuginfo-tests/lit.cfg.py b/debuginfo-tests/lit.cfg.py deleted file mode 100644 index b56aa42d00c7..000000000000 --- a/debuginfo-tests/lit.cfg.py +++ /dev/null @@ -1,57 +0,0 @@ -# -*- Python -*- - -import os -import platform -import re -import subprocess -import tempfile - -import lit.formats -import lit.util - -from lit.llvm import llvm_config -from lit.llvm.subst import ToolSubst -from lit.llvm.subst import FindTool - -# Configuration file for the 'lit' test runner. - -# name: The name of this test suite. -config.name = 'debuginfo-tests' - -# testFormat: The test format to use to interpret tests. -# -# For now we require '&&' between commands, until they get globally killed and -# the test runner updated. -config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell) - -# suffixes: A list of file extensions to treat as test files. -config.suffixes = ['.c', '.cpp', '.m'] - -# excludes: A list of directories to exclude from the testsuite. The 'Inputs' -# subdirectories contain auxiliary inputs for various tests in their parent -# directories. -config.excludes = ['Inputs'] - -# test_source_root: The root path where tests are located. -config.test_source_root = os.path.join(config.debuginfo_tests_src_root, 'tests') - -# test_exec_root: The root path where tests should be run. -config.test_exec_root = config.debuginfo_tests_obj_root - -llvm_config.use_default_substitutions() - -llvm_config.use_clang() - -if config.llvm_use_sanitizer: - # Propagate path to symbolizer for ASan/MSan. - llvm_config.with_system_environment( - ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']) - -tool_dirs = [config.llvm_tools_dir] - -tools = [ - ToolSubst('%test_debuginfo', command=os.path.join( - config.llvm_src_root, 'utils', 'test_debuginfo.pl')), -] - -llvm_config.add_tool_substitutions(tools, tool_dirs) diff --git a/debuginfo-tests/tests/lit.local.cfg b/debuginfo-tests/lit.local.cfg similarity index 100% rename from debuginfo-tests/tests/lit.local.cfg rename to debuginfo-tests/lit.local.cfg diff --git a/debuginfo-tests/lit.site.cfg.py.in b/debuginfo-tests/lit.site.cfg.py.in deleted file mode 100644 index 8c4481a9f949..000000000000 --- a/debuginfo-tests/lit.site.cfg.py.in +++ /dev/null @@ -1,25 +0,0 @@ -@LIT_SITE_CFG_IN_HEADER@ - -import lit.util - -config.test_exec_root = "@CMAKE_BINARY_DIR@" - -config.llvm_src_root = "@LLVM_SOURCE_DIR@" -config.llvm_obj_root = "@LLVM_BINARY_DIR@" -config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" -config.llvm_libs_dir = "@LLVM_LIBS_DIR@" -config.llvm_shlib_dir = "@SHLIBDIR@" -config.llvm_plugin_ext = "@LLVM_PLUGIN_EXT@" -config.debuginfo_tests_obj_root = "@DEBUGINFO_TESTS_BINARY_DIR@" -config.debuginfo_tests_src_root = "@DEBUGINFO_TESTS_SOURCE_DIR@" -config.has_lld = lit.util.pythonize_bool("@DEBUGINFO_TESTS_HAS_LLD@") -config.host_triple = "@LLVM_HOST_TRIPLE@" -config.target_triple = "@TARGET_TRIPLE@" -config.host_arch = "@HOST_ARCH@" - -config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@" - -@LIT_SITE_CFG_IN_FOOTER@ - -# Let the main config do the real work. -lit_config.load_config(config, "@DEBUGINFO_TESTS_SOURCE_DIR@/lit.cfg.py") diff --git a/debuginfo-tests/tests/llgdb.py b/debuginfo-tests/llgdb.py similarity index 100% rename from debuginfo-tests/tests/llgdb.py rename to debuginfo-tests/llgdb.py diff --git a/debuginfo-tests/tests/nested-struct.cpp b/debuginfo-tests/nested-struct.cpp similarity index 100% rename from debuginfo-tests/tests/nested-struct.cpp rename to debuginfo-tests/nested-struct.cpp diff --git a/debuginfo-tests/tests/nrvo-string.cpp b/debuginfo-tests/nrvo-string.cpp similarity index 100% rename from debuginfo-tests/tests/nrvo-string.cpp rename to debuginfo-tests/nrvo-string.cpp diff --git a/debuginfo-tests/tests/safestack.c b/debuginfo-tests/safestack.c similarity index 100% rename from debuginfo-tests/tests/safestack.c rename to debuginfo-tests/safestack.c diff --git a/debuginfo-tests/tests/sret.cpp b/debuginfo-tests/sret.cpp similarity index 93% rename from debuginfo-tests/tests/sret.cpp rename to debuginfo-tests/sret.cpp index 640015fab40b..3c304e2f04a5 100644 --- a/debuginfo-tests/tests/sret.cpp +++ b/debuginfo-tests/sret.cpp @@ -1,6 +1,6 @@ // RUN: %clangxx %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clangxx %target_itanium_abi_host_triple %t.o -o %t.out -// RUN: %test_debuginfo %s %t.out +// RUN: %test_debuginfo %s %t.out // Radar 8775834 // DEBUGGER: break 62 // DEBUGGER: r @@ -24,7 +24,7 @@ protected: int m_int; }; -A::A (int i) : +A::A (int i) : m_int(i) { } @@ -50,11 +50,11 @@ class B { public: B () {} - + A AInstance(); }; -A +A B::AInstance() { A a(12); @@ -65,7 +65,7 @@ int main (int argc, char const *argv[]) { B b; int return_val = b.AInstance().get_int(); - + A a(b.AInstance()); return return_val; } diff --git a/debuginfo-tests/tests/stack-var.c b/debuginfo-tests/stack-var.c similarity index 100% rename from debuginfo-tests/tests/stack-var.c rename to debuginfo-tests/stack-var.c diff --git a/debuginfo-tests/tests/static-member-2.cpp b/debuginfo-tests/static-member-2.cpp similarity index 100% rename from debuginfo-tests/tests/static-member-2.cpp rename to debuginfo-tests/static-member-2.cpp diff --git a/debuginfo-tests/tests/static-member.cpp b/debuginfo-tests/static-member.cpp similarity index 100% rename from debuginfo-tests/tests/static-member.cpp rename to debuginfo-tests/static-member.cpp diff --git a/debuginfo-tests/tests/vla.c b/debuginfo-tests/vla.c similarity index 93% rename from debuginfo-tests/tests/vla.c rename to debuginfo-tests/vla.c index e6ea1ef4ac20..9c8e27715332 100644 --- a/debuginfo-tests/tests/vla.c +++ b/debuginfo-tests/vla.c @@ -1,7 +1,7 @@ // This test case verifies the debug location for variable-length arrays. // RUN: %clang %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o // RUN: %clang %target_itanium_abi_host_triple %t.o -o %t.out -// RUN: %test_debuginfo %s %t.out +// RUN: %test_debuginfo %s %t.out // // DEBUGGER: break 18 // DEBUGGER: r diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 5d1d29edb415..216702eabaf4 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -110,7 +110,7 @@ endif() # LLVM_EXTERNAL_${project}_SOURCE_DIR using LLVM_ALL_PROJECTS # This allows an easy way of setting up a build directory for llvm and another # one for llvm+clang+... using the same sources. -set(LLVM_ALL_PROJECTS "clang;libcxx;libcxxabi;lldb;compiler-rt;debuginfo-tests;lld;polly") +set(LLVM_ALL_PROJECTS "clang;libcxx;libcxxabi;lldb;compiler-rt;lld;polly") set(LLVM_ENABLE_PROJECTS "" CACHE STRING "Semicolon-separated list of projects to build (${LLVM_ALL_PROJECTS}), or \"all\".") if( LLVM_ENABLE_PROJECTS STREQUAL "all" ) @@ -881,18 +881,13 @@ if( LLVM_INCLUDE_EXAMPLES ) endif() if( LLVM_INCLUDE_TESTS ) - if(TARGET clang) + if(EXISTS ${LLVM_MAIN_SRC_DIR}/projects/test-suite AND TARGET clang) include(LLVMExternalProjectUtils) - if (EXISTS ${LLVM_MAIN_SRC_DIR}/projects/test-suite) - llvm_ExternalProject_Add(test-suite ${LLVM_MAIN_SRC_DIR}/projects/test-suite - USE_TOOLCHAIN - TOOLCHAIN_TOOLS clang lld clang-cl - EXCLUDE_FROM_ALL - NO_INSTALL - ALWAYS_CLEAN) - endif() - - add_llvm_external_project(debuginfo-tests projects/debuginfo-tests) + llvm_ExternalProject_Add(test-suite ${LLVM_MAIN_SRC_DIR}/projects/test-suite + USE_TOOLCHAIN + EXCLUDE_FROM_ALL + NO_INSTALL + ALWAYS_CLEAN) endif() add_subdirectory(utils/lit) add_subdirectory(test) diff --git a/llvm/projects/CMakeLists.txt b/llvm/projects/CMakeLists.txt index 11835fa89d24..9102efbdcb46 100644 --- a/llvm/projects/CMakeLists.txt +++ b/llvm/projects/CMakeLists.txt @@ -10,7 +10,6 @@ foreach(entry ${entries}) (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libcxxabi) AND (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/libunwind) AND (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/test-suite) AND - (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/debuginfo-tests) AND (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/parallel-libs) AND (NOT ${entry} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}/openmp)) add_subdirectory(${entry}) diff --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py index d3d8d2288b7e..798f08af1bee 100644 --- a/llvm/utils/lit/lit/llvm/config.py +++ b/llvm/utils/lit/lit/llvm/config.py @@ -27,9 +27,8 @@ class LLVMConfig(object): # For tests that require Windows to run. features.add('system-windows') - lit_tools_dir = getattr(config, 'lit_tools_dir', None) # Seek sane tools in directories and set to $PATH. - path = self.lit_config.getToolsPath(lit_tools_dir, + path = self.lit_config.getToolsPath(config.lit_tools_dir, config.environment['PATH'], ['cmp.exe', 'grep.exe', 'sed.exe']) if path is not None: @@ -414,10 +413,8 @@ class LLVMConfig(object): self.config.substitutions.append( ('%target_itanium_abi_host_triple', '')) - clang_src_dir = getattr(self.config, 'clang_src_dir', None) - if clang_src_dir: - self.config.substitutions.append( - ('%src_include_dir', os.path.join(clang_src_dir, 'include'))) + self.config.substitutions.append( + ('%src_include_dir', self.config.clang_src_dir + '/include')) # FIXME: Find nicer way to prohibit this. self.config.substitutions.append( diff --git a/llvm/utils/test_debuginfo.pl b/llvm/utils/test_debuginfo.pl index d9613d73025d..aaf90d95468c 100755 --- a/llvm/utils/test_debuginfo.pl +++ b/llvm/utils/test_debuginfo.pl @@ -56,7 +56,7 @@ my $my_debugger = $ENV{'DEBUGGER'}; if (!$my_debugger) { if ($use_lldb) { my $path = dirname(Cwd::abs_path($0)); - $my_debugger = "/usr/bin/env python $path/../tools/clang/test/debuginfo-tests/tests/llgdb.py"; + $my_debugger = "/usr/bin/env python $path/../tools/clang/test/debuginfo-tests/llgdb.py"; } else { $my_debugger = "gdb"; }