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 NO_DEBUG_INFO_TESTCASE = True 16 17 def test_sample_rename_this(self): 18 self.build() 19 self.main_source_file = lldb.SBFileSpec("main.c") 20 self.do_numbering_test() 21 22 def do_numbering_test(self): 23 (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, 24 "Set a breakpoint here", self.main_source_file) 25 26 bkpt = target.BreakpointCreateBySourceRegex("Add conditions to this breakpoint", 27 self.main_source_file) 28 self.assertEqual(bkpt.GetNumLocations(), 1, "Set the breakpoint") 29 30 bkpt.SetCondition("call_me(value) < 6") 31 32 # Get the number of the last expression: 33 result = thread.frames[0].EvaluateExpression("call_me(200)") 34 self.assertSuccess(result.GetError(), "Our expression succeeded") 35 name = result.GetName() 36 ordinal = int(name[1:]) 37 38 process.Continue() 39 40 # The condition evaluation had to run a 4 expressions, but we haven't 41 # run any user expressions. 42 result = thread.frames[0].EvaluateExpression("call_me(200)") 43 self.assertSuccess(result.GetError(), "Our expression succeeded the second time") 44 after_name = result.GetName() 45 after_ordinal = int(after_name[1:]) 46 self.assertEqual(ordinal + 1, after_ordinal) 47