summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test')
-rw-r--r--lldb/packages/Python/lldbsuite/test/linux/buildidcase/Makefile20
-rw-r--r--lldb/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py21
-rw-r--r--lldb/packages/Python/lldbsuite/test/linux/buildidcase/main.c3
3 files changed, 44 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/linux/buildidcase/Makefile b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/Makefile
new file mode 100644
index 00000000000..31a33f0156f
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/Makefile
@@ -0,0 +1,20 @@
+LEVEL = ../../make
+C_SOURCES := main.c
+LD_EXTRAS += -Wl,--build-id=sha1
+
+all: stripped.out
+
+.PHONY: .build-id
+stripped.out .build-id: a.out
+ $(OBJCOPY) -j .note.gnu.build-id -O binary $< tmp
+ rm -rf .build-id
+ fn=`od -An -tx1 <tmp|tr -d ' \n'|sed -e 's/^.\{32\}//' -e 's#^..#.build-id/&/#' -e 's#$$#.debug#'` && \
+ mkdir -p `dirname $$fn` && \
+ $(OBJCOPY) --only-keep-debug $< $$fn && \
+ $(OBJCOPY) --strip-all --add-gnu-debuglink=$$fn $< stripped.out
+ $(RM) tmp
+
+clean::
+ $(RM) -r stripped.out .build-id
+
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py
new file mode 100644
index 00000000000..f4c965eba31
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/TestTargetSymbolsBuildidCase.py
@@ -0,0 +1,21 @@
+""" Testing separate debug info loading by its .build-id. """
+import os
+import time
+import lldb
+import sys
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class TestTargetSymbolsBuildidCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @no_debug_info_test # Prevent the genaration of the dwarf version of this test
+ @skipUnlessPlatform(['linux'])
+ def test_target_symbols_buildid_case(self):
+ self.build(clean=True)
+ exe = self.getBuildArtifact("stripped.out")
+
+ lldbutil.run_to_name_breakpoint(self, "main", exe_name = exe)
diff --git a/lldb/packages/Python/lldbsuite/test/linux/buildidcase/main.c b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/main.c
new file mode 100644
index 00000000000..4cce7f667ff
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/linux/buildidcase/main.c
@@ -0,0 +1,3 @@
+int main() {
+ return 0;
+}
OpenPOWER on IntegriCloud