1""" 2Make sure running internal expressions doesn't 3influence the result variable numbering. 4""" 5 6 7 8import lldb 9import lldbsuite.test.lldbutil as lldbutil 10from lldbsuite.test.lldbtest import * 11 12 13class TestExpressionResultNumbering(TestBase): 14 15 mydir = TestBase.compute_mydir(__file__) 16 17 NO_DEBUG_INFO_TESTCASE = True 18 19 def test_sample_rename_this(self): 20 self.build() 21 self.main_source_file = lldb.SBFileSpec("main.c") 22 self.do_numbering_test() 23 24 def do_numbering_test(self): 25 (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, 26 "Set a breakpoint here", self.main_source_file) 27 28 bkpt = target.BreakpointCreateBySourceRegex("Add conditions to this breakpoint", 29 self.main_source_file) 30 self.assertEqual(bkpt.GetNumLocations(), 1, "Set the breakpoint") 31 32 bkpt.SetCondition("call_me(value) < 6") 33 34 # Get the number of the last expression: 35 result = thread.frames[0].EvaluateExpression("call_me(200)") 36 self.assertSuccess(result.GetError(), "Our expression succeeded") 37 name = result.GetName() 38 ordinal = int(name[1:]) 39 40 process.Continue() 41 42 # The condition evaluation had to run a 4 expressions, but we haven't 43 # run any user expressions. 44 result = thread.frames[0].EvaluateExpression("call_me(200)") 45 self.assertSuccess(result.GetError(), "Our expression succeeded the second time") 46 after_name = result.GetName() 47 after_ordinal = int(after_name[1:]) 48 self.assertEqual(ordinal + 1, after_ordinal) 49