199451b44SJordan Rupprecht""" 299451b44SJordan RupprechtTest calling a function, stopping in the call, continue and gather the result on stop. 399451b44SJordan Rupprecht""" 499451b44SJordan Rupprecht 599451b44SJordan Rupprechtimport lldb 699451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 799451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil 899451b44SJordan Rupprecht 999451b44SJordan Rupprecht 102238dcc3SJonas Devlieghereclass ExprCommandCallStopContinueTestCase(TestBase): 1199451b44SJordan Rupprecht def setUp(self): 1299451b44SJordan Rupprecht # Call super's setUp(). 1399451b44SJordan Rupprecht TestBase.setUp(self) 1499451b44SJordan Rupprecht # Find the line number to break for main.c. 1599451b44SJordan Rupprecht 1699451b44SJordan Rupprecht def test(self): 1799451b44SJordan Rupprecht """Test gathering result from interrupted function call.""" 1899451b44SJordan Rupprecht self.build() 192238dcc3SJonas Devlieghere lldbutil.run_to_source_breakpoint( 202238dcc3SJonas Devlieghere self, "// break here", lldb.SBFileSpec("main.cpp") 212238dcc3SJonas Devlieghere ) 2299451b44SJordan Rupprecht 2399451b44SJordan Rupprecht lldbutil.run_break_set_by_file_and_line( 2499451b44SJordan Rupprecht self, 2599451b44SJordan Rupprecht "main.cpp", 262238dcc3SJonas Devlieghere line_number("main.cpp", '{5, "five"}'), 2799451b44SJordan Rupprecht num_expected_locations=-1, 282238dcc3SJonas Devlieghere loc_exact=True, 292238dcc3SJonas Devlieghere ) 3099451b44SJordan Rupprecht 312238dcc3SJonas Devlieghere self.expect( 322238dcc3SJonas Devlieghere "expr -i false -- returnsFive()", 332238dcc3SJonas Devlieghere error=True, 34*8ac0aaaeSJonas Devlieghere substrs=["Expression execution hit a breakpoint: breakpoint"], 352238dcc3SJonas Devlieghere ) 3699451b44SJordan Rupprecht 3799451b44SJordan Rupprecht self.runCmd("continue", "Continue completed") 3899451b44SJordan Rupprecht self.expect( 3999451b44SJordan Rupprecht "thread list", 4099451b44SJordan Rupprecht substrs=[ 412238dcc3SJonas Devlieghere "stop reason = User Expression thread plan", 422238dcc3SJonas Devlieghere r'Completed expression: (Five) $0 = (number = 5, name = "five")', 432238dcc3SJonas Devlieghere ], 442238dcc3SJonas Devlieghere ) 45