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 10*2238dcc3SJonas 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() 19*2238dcc3SJonas Devlieghere lldbutil.run_to_source_breakpoint( 20*2238dcc3SJonas Devlieghere self, "// break here", lldb.SBFileSpec("main.cpp") 21*2238dcc3SJonas Devlieghere ) 2299451b44SJordan Rupprecht 2399451b44SJordan Rupprecht lldbutil.run_break_set_by_file_and_line( 2499451b44SJordan Rupprecht self, 2599451b44SJordan Rupprecht "main.cpp", 26*2238dcc3SJonas Devlieghere line_number("main.cpp", '{5, "five"}'), 2799451b44SJordan Rupprecht num_expected_locations=-1, 28*2238dcc3SJonas Devlieghere loc_exact=True, 29*2238dcc3SJonas Devlieghere ) 3099451b44SJordan Rupprecht 31*2238dcc3SJonas Devlieghere self.expect( 32*2238dcc3SJonas Devlieghere "expr -i false -- returnsFive()", 33*2238dcc3SJonas Devlieghere error=True, 34*2238dcc3SJonas Devlieghere substrs=["Execution was interrupted, reason: breakpoint"], 35*2238dcc3SJonas Devlieghere ) 3699451b44SJordan Rupprecht 3799451b44SJordan Rupprecht self.runCmd("continue", "Continue completed") 3899451b44SJordan Rupprecht self.expect( 3999451b44SJordan Rupprecht "thread list", 4099451b44SJordan Rupprecht substrs=[ 41*2238dcc3SJonas Devlieghere "stop reason = User Expression thread plan", 42*2238dcc3SJonas Devlieghere r'Completed expression: (Five) $0 = (number = 5, name = "five")', 43*2238dcc3SJonas Devlieghere ], 44*2238dcc3SJonas Devlieghere ) 45