summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp')
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/Makefile3
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/TestExprEntryBP.py32
-rw-r--r--gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/main.c10
3 files changed, 45 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/Makefile b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/Makefile
new file mode 100644
index 00000000000..10495940055
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/Makefile
@@ -0,0 +1,3 @@
+C_SOURCES := main.c
+
+include Makefile.rules
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/TestExprEntryBP.py b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/TestExprEntryBP.py
new file mode 100644
index 00000000000..b6e6b8ba051
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/TestExprEntryBP.py
@@ -0,0 +1,32 @@
+"""
+Tests expressions evaluation when the breakpoint on module's entry is set.
+"""
+
+import lldb
+import lldbsuite.test.lldbutil as lldbutil
+from lldbsuite.test.lldbtest import *
+
+class ExprEntryBPTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+
+ NO_DEBUG_INFO_TESTCASE = True
+
+ def test_expr_entry_bp(self):
+ """Tests expressions evaluation when the breakpoint on module's entry is set."""
+ self.build()
+ self.main_source_file = lldb.SBFileSpec("main.c")
+
+ (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, "Set a breakpoint here", self.main_source_file)
+
+ self.assertEqual(1, bkpt.GetNumLocations())
+ entry = bkpt.GetLocationAtIndex(0).GetAddress().GetModule().GetObjectFileEntryPointAddress()
+ self.assertTrue(entry.IsValid(), "Can't get a module entry point")
+
+ entry_bp = target.BreakpointCreateBySBAddress(entry)
+ self.assertTrue(entry_bp.IsValid(), "Can't set a breakpoint on the module entry point")
+
+ result = target.EvaluateExpression("sum(7, 1)")
+ self.assertTrue(result.IsValid(), "Can't evaluate expression")
+ self.assertEqual(8, result.GetValueAsSigned())
+
diff --git a/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/main.c b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/main.c
new file mode 100644
index 00000000000..168fc9c8ccb
--- /dev/null
+++ b/gnu/llvm/lldb/packages/Python/lldbsuite/test/commands/expression/entry-bp/main.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+int sum(int x, int y) {
+ return x + y;
+}
+
+int main() {
+ printf("Set a breakpoint here.\n");
+ return sum(-1, 1);
+}