summaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/arm
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-07-28 11:09:23 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-07-28 11:09:23 +0000
commitf73363f1dd94996356cefbf24388f561891acf0b (patch)
treee3c31248bdb36eaec5fd833490d4278162dba2a0 /packages/Python/lldbsuite/test/arm
parent160ee69dd7ae18978f4068116777639ea98dc951 (diff)
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/arm')
-rw-r--r--packages/Python/lldbsuite/test/arm/breakpoint-it/TestBreakpointIt.py4
-rw-r--r--packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile6
-rw-r--r--packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py35
-rw-r--r--packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c8
-rw-r--r--packages/Python/lldbsuite/test/arm/emulation/TestEmulations.py6
5 files changed, 53 insertions, 6 deletions
diff --git a/packages/Python/lldbsuite/test/arm/breakpoint-it/TestBreakpointIt.py b/packages/Python/lldbsuite/test/arm/breakpoint-it/TestBreakpointIt.py
index 1abab39b1da3..30510638f096 100644
--- a/packages/Python/lldbsuite/test/arm/breakpoint-it/TestBreakpointIt.py
+++ b/packages/Python/lldbsuite/test/arm/breakpoint-it/TestBreakpointIt.py
@@ -21,7 +21,7 @@ class TestBreakpointIt(TestBase):
@skipIf(archs=no_match(["arm"]))
def test_false(self):
self.build()
- exe = os.path.join(os.getcwd(), "a.out")
+ exe = self.getBuildArtifact("a.out")
self.runCmd("target create %s" % exe)
lldbutil.run_break_set_by_symbol(self, "bkpt_false",
@@ -34,7 +34,7 @@ class TestBreakpointIt(TestBase):
@skipIf(archs=no_match(["arm"]))
def test_true(self):
self.build()
- exe = os.path.join(os.getcwd(), "a.out")
+ exe = self.getBuildArtifact("a.out")
self.runCmd("target create %s" % exe)
bpid = lldbutil.run_break_set_by_symbol(self, "bkpt_true",
diff --git a/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile b/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile
new file mode 100644
index 000000000000..ea79c55cd4a9
--- /dev/null
+++ b/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/Makefile
@@ -0,0 +1,6 @@
+LEVEL = ../../make
+
+C_SOURCES := main.c
+CFLAGS_EXTRAS = -mthumb
+
+include $(LEVEL)/Makefile.rules \ No newline at end of file
diff --git a/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py b/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py
new file mode 100644
index 000000000000..f020a6538525
--- /dev/null
+++ b/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/TestBreakpointThumbCodesection.py
@@ -0,0 +1,35 @@
+"""
+Test that breakpoints correctly work in an thumb function in an arbitrary
+named codesection.
+"""
+from __future__ import print_function
+
+
+import lldb
+import os
+import time
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+
+class TestBreakpointThumbCodesection(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ @skipIf(archs=no_match(["arm"]))
+ def test_breakpoint(self):
+ self.build()
+ exe = self.getBuildArtifact("a.out")
+ line = line_number('main.c', '// Set break point at this line.')
+
+ self.runCmd("target create %s" % exe)
+ bpid = lldbutil.run_break_set_by_file_and_line(self, "main.c", line)
+
+ self.runCmd("run")
+
+ self.assertIsNotNone(lldbutil.get_one_thread_stopped_at_breakpoint_id(
+ self.process(), bpid), "Process is not stopped at breakpoint")
+
+ self.process().Continue()
+ self.assertEqual(self.process().GetState(), lldb.eStateExited, PROCESS_EXITED)
diff --git a/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c b/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c
new file mode 100644
index 000000000000..38ea7be6bfcd
--- /dev/null
+++ b/packages/Python/lldbsuite/test/arm/breakpoint-thumb-codesection/main.c
@@ -0,0 +1,8 @@
+__attribute__((section("__codesection")))
+int f(int a) {
+ return a + 1; // Set break point at this line.
+}
+
+int main() {
+ return f(10);
+}
diff --git a/packages/Python/lldbsuite/test/arm/emulation/TestEmulations.py b/packages/Python/lldbsuite/test/arm/emulation/TestEmulations.py
index 4ddda525537c..8e9244f3a3e9 100644
--- a/packages/Python/lldbsuite/test/arm/emulation/TestEmulations.py
+++ b/packages/Python/lldbsuite/test/arm/emulation/TestEmulations.py
@@ -19,8 +19,7 @@ class ARMEmulationTestCase(TestBase):
@no_debug_info_test
def test_thumb_emulations(self):
- current_dir = os.getcwd()
- test_dir = os.path.join(current_dir, "new-test-files")
+ test_dir = os.path.join(self.getSourceDir(), "new-test-files")
files = os.listdir(test_dir)
thumb_files = list()
for f in files:
@@ -33,8 +32,7 @@ class ARMEmulationTestCase(TestBase):
@no_debug_info_test
def test_arm_emulations(self):
- current_dir = os.getcwd()
- test_dir = os.path.join(current_dir, "new-test-files")
+ test_dir = os.path.join(self.getSourceDir(), "new-test-files")
files = os.listdir(test_dir)
arm_files = list()
for f in files: