summaryrefslogtreecommitdiff
path: root/debuginfo-tests
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-11-16 18:26:20 +0000
committerZachary Turner <zturner@google.com>2017-11-16 18:26:20 +0000
commit96740558b1dab3abc5ac6682a255314adf0ffe45 (patch)
tree2bae2be97be3dcd0903329ae5a3d2fe6d5e902e9 /debuginfo-tests
parent84cfbd57f41c5305f873f2b2a33b87b1002db3f5 (diff)
Resubmit "Refactor debuginfo-tests"
This was reverted due to some failures on specific darwin buildbots, the issue being that the new lit configuration was not setting the SDKROOT environment variable. We've tested a fix locally and confirmed that it works, so this patch resubmits everything with the fix applied.
Diffstat (limited to 'debuginfo-tests')
-rw-r--r--debuginfo-tests/CMakeLists.txt36
-rw-r--r--debuginfo-tests/lit.cfg.py59
-rw-r--r--debuginfo-tests/lit.site.cfg.py.in25
-rw-r--r--debuginfo-tests/tests/aggregate-indirect-arg.cpp (renamed from debuginfo-tests/aggregate-indirect-arg.cpp)2
-rw-r--r--debuginfo-tests/tests/asan-blocks.c (renamed from debuginfo-tests/asan-blocks.c)0
-rw-r--r--debuginfo-tests/tests/asan.c (renamed from debuginfo-tests/asan.c)0
-rw-r--r--debuginfo-tests/tests/block_var.m (renamed from debuginfo-tests/block_var.m)2
-rw-r--r--debuginfo-tests/tests/blocks.m (renamed from debuginfo-tests/blocks.m)8
-rw-r--r--debuginfo-tests/tests/ctor.cpp (renamed from debuginfo-tests/ctor.cpp)4
-rw-r--r--debuginfo-tests/tests/dbg-arg.c (renamed from debuginfo-tests/dbg-arg.c)0
-rw-r--r--debuginfo-tests/tests/foreach.m (renamed from debuginfo-tests/foreach.m)4
-rw-r--r--debuginfo-tests/tests/forward-declare-class.cpp (renamed from debuginfo-tests/forward-declare-class.cpp)0
-rw-r--r--debuginfo-tests/tests/lit.local.cfg (renamed from debuginfo-tests/lit.local.cfg)0
-rw-r--r--debuginfo-tests/tests/llgdb.py (renamed from debuginfo-tests/llgdb.py)0
-rw-r--r--debuginfo-tests/tests/nested-struct.cpp (renamed from debuginfo-tests/nested-struct.cpp)0
-rw-r--r--debuginfo-tests/tests/nrvo-string.cpp (renamed from debuginfo-tests/nrvo-string.cpp)0
-rw-r--r--debuginfo-tests/tests/safestack.c (renamed from debuginfo-tests/safestack.c)0
-rw-r--r--debuginfo-tests/tests/sret.cpp (renamed from debuginfo-tests/sret.cpp)10
-rw-r--r--debuginfo-tests/tests/stack-var.c (renamed from debuginfo-tests/stack-var.c)0
-rw-r--r--debuginfo-tests/tests/static-member-2.cpp (renamed from debuginfo-tests/static-member-2.cpp)0
-rw-r--r--debuginfo-tests/tests/static-member.cpp (renamed from debuginfo-tests/static-member.cpp)0
-rw-r--r--debuginfo-tests/tests/vla.c (renamed from debuginfo-tests/vla.c)2
22 files changed, 136 insertions, 16 deletions
diff --git a/debuginfo-tests/CMakeLists.txt b/debuginfo-tests/CMakeLists.txt
new file mode 100644
index 00000000000..60a467fec85
--- /dev/null
+++ b/debuginfo-tests/CMakeLists.txt
@@ -0,0 +1,36 @@
+# 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/lit.cfg.py b/debuginfo-tests/lit.cfg.py
new file mode 100644
index 00000000000..f754cef8459
--- /dev/null
+++ b/debuginfo-tests/lit.cfg.py
@@ -0,0 +1,59 @@
+# -*- 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)
+
+lit.util.usePlatformSdkOnDarwin(config, lit_config)
diff --git a/debuginfo-tests/lit.site.cfg.py.in b/debuginfo-tests/lit.site.cfg.py.in
new file mode 100644
index 00000000000..8c4481a9f94
--- /dev/null
+++ b/debuginfo-tests/lit.site.cfg.py.in
@@ -0,0 +1,25 @@
+@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/aggregate-indirect-arg.cpp b/debuginfo-tests/tests/aggregate-indirect-arg.cpp
index 86c7caf9618..eb2fd665cf6 100644
--- a/debuginfo-tests/aggregate-indirect-arg.cpp
+++ b/debuginfo-tests/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/asan-blocks.c b/debuginfo-tests/tests/asan-blocks.c
index b919a291eba..b919a291eba 100644
--- a/debuginfo-tests/asan-blocks.c
+++ b/debuginfo-tests/tests/asan-blocks.c
diff --git a/debuginfo-tests/asan.c b/debuginfo-tests/tests/asan.c
index a2df7545722..a2df7545722 100644
--- a/debuginfo-tests/asan.c
+++ b/debuginfo-tests/tests/asan.c
diff --git a/debuginfo-tests/block_var.m b/debuginfo-tests/tests/block_var.m
index 7ec786f1798..32862172c57 100644
--- a/debuginfo-tests/block_var.m
+++ b/debuginfo-tests/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/blocks.m b/debuginfo-tests/tests/blocks.m
index 8e5a2121320..12c99774a31 100644
--- a/debuginfo-tests/blocks.m
+++ b/debuginfo-tests/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/ctor.cpp b/debuginfo-tests/tests/ctor.cpp
index 92cdbcd7e0b..364401a2d5c 100644
--- a/debuginfo-tests/ctor.cpp
+++ b/debuginfo-tests/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/dbg-arg.c b/debuginfo-tests/tests/dbg-arg.c
index a65dc910b8b..a65dc910b8b 100644
--- a/debuginfo-tests/dbg-arg.c
+++ b/debuginfo-tests/tests/dbg-arg.c
diff --git a/debuginfo-tests/foreach.m b/debuginfo-tests/tests/foreach.m
index 2e3c312c877..ccdc2827fd1 100644
--- a/debuginfo-tests/foreach.m
+++ b/debuginfo-tests/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/forward-declare-class.cpp b/debuginfo-tests/tests/forward-declare-class.cpp
index 132420009bd..132420009bd 100644
--- a/debuginfo-tests/forward-declare-class.cpp
+++ b/debuginfo-tests/tests/forward-declare-class.cpp
diff --git a/debuginfo-tests/lit.local.cfg b/debuginfo-tests/tests/lit.local.cfg
index ce0175cf7f9..ce0175cf7f9 100644
--- a/debuginfo-tests/lit.local.cfg
+++ b/debuginfo-tests/tests/lit.local.cfg
diff --git a/debuginfo-tests/llgdb.py b/debuginfo-tests/tests/llgdb.py
index 7d4fdd64fd1..7d4fdd64fd1 100644
--- a/debuginfo-tests/llgdb.py
+++ b/debuginfo-tests/tests/llgdb.py
diff --git a/debuginfo-tests/nested-struct.cpp b/debuginfo-tests/tests/nested-struct.cpp
index 7533e6a8151..7533e6a8151 100644
--- a/debuginfo-tests/nested-struct.cpp
+++ b/debuginfo-tests/tests/nested-struct.cpp
diff --git a/debuginfo-tests/nrvo-string.cpp b/debuginfo-tests/tests/nrvo-string.cpp
index 18acebb0e6d..18acebb0e6d 100644
--- a/debuginfo-tests/nrvo-string.cpp
+++ b/debuginfo-tests/tests/nrvo-string.cpp
diff --git a/debuginfo-tests/safestack.c b/debuginfo-tests/tests/safestack.c
index 01c5f7ede92..01c5f7ede92 100644
--- a/debuginfo-tests/safestack.c
+++ b/debuginfo-tests/tests/safestack.c
diff --git a/debuginfo-tests/sret.cpp b/debuginfo-tests/tests/sret.cpp
index 3c304e2f04a..640015fab40 100644
--- a/debuginfo-tests/sret.cpp
+++ b/debuginfo-tests/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/stack-var.c b/debuginfo-tests/tests/stack-var.c
index 372139c59b0..372139c59b0 100644
--- a/debuginfo-tests/stack-var.c
+++ b/debuginfo-tests/tests/stack-var.c
diff --git a/debuginfo-tests/static-member-2.cpp b/debuginfo-tests/tests/static-member-2.cpp
index 4edb2b060f1..4edb2b060f1 100644
--- a/debuginfo-tests/static-member-2.cpp
+++ b/debuginfo-tests/tests/static-member-2.cpp
diff --git a/debuginfo-tests/static-member.cpp b/debuginfo-tests/tests/static-member.cpp
index 1d8ad62c5b8..1d8ad62c5b8 100644
--- a/debuginfo-tests/static-member.cpp
+++ b/debuginfo-tests/tests/static-member.cpp
diff --git a/debuginfo-tests/vla.c b/debuginfo-tests/tests/vla.c
index 9c8e2771533..e6ea1ef4ac2 100644
--- a/debuginfo-tests/vla.c
+++ b/debuginfo-tests/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