199451b44SJordan Rupprecht
299451b44SJordan Rupprecht# lldb test suite imports
399451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
499451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import TestBase
599451b44SJordan Rupprecht
699451b44SJordan Rupprecht# gdb-remote-specific imports
799451b44SJordan Rupprechtimport lldbgdbserverutils
899451b44SJordan Rupprechtfrom gdbremote_testcase import GdbRemoteTestCaseBase
999451b44SJordan Rupprecht
1099451b44SJordan Rupprecht
1199451b44SJordan Rupprechtclass TestGdbRemoteExitCode(GdbRemoteTestCaseBase):
1299451b44SJordan Rupprecht
13*0a8a2453SPavel Labath    def _test_inferior_exit(self, retval):
1499451b44SJordan Rupprecht        self.build()
1599451b44SJordan Rupprecht
16ce279e0cSPavel Labath        procs = self.prep_debug_monitor_and_inferior(
17*0a8a2453SPavel Labath            inferior_args=["retval:%d" % retval])
1899451b44SJordan Rupprecht
1999451b44SJordan Rupprecht        self.test_sequence.add_log_lines(
2099451b44SJordan Rupprecht            ["read packet: $vCont;c#a8",
21*0a8a2453SPavel Labath             "send packet: $W{0:02x}#00".format(retval)],
2299451b44SJordan Rupprecht            True)
2399451b44SJordan Rupprecht
2499451b44SJordan Rupprecht        self.expect_gdbremote_sequence()
2599451b44SJordan Rupprecht
26*0a8a2453SPavel Labath    def test_inferior_exit_0(self):
27*0a8a2453SPavel Labath        self._test_inferior_exit(0)
2899451b44SJordan Rupprecht
29*0a8a2453SPavel Labath    def test_inferior_exit_42(self):
30*0a8a2453SPavel Labath        self._test_inferior_exit(42)
31