xref: /llvm-project/lldb/test/API/tools/lldb-server/commandline/TestStubSetSID.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
199451b44SJordan Rupprechtimport gdbremote_testcase
299451b44SJordan Rupprechtimport lldbgdbserverutils
399451b44SJordan Rupprechtimport os
499451b44SJordan Rupprechtimport select
599451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
699451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
799451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
899451b44SJordan Rupprecht
999451b44SJordan Rupprecht
10*2238dcc3SJonas Devlieghereclass TestStubSetSIDTestCase(gdbremote_testcase.GdbRemoteTestCaseBase):
1199451b44SJordan Rupprecht    def get_stub_sid(self, extra_stub_args=None):
1299451b44SJordan Rupprecht        # Launch debugserver
1399451b44SJordan Rupprecht        if extra_stub_args:
1499451b44SJordan Rupprecht            self.debug_monitor_extra_args += extra_stub_args
1599451b44SJordan Rupprecht
1699451b44SJordan Rupprecht        server = self.launch_debug_monitor()
1799451b44SJordan Rupprecht        self.assertIsNotNone(server)
18*2238dcc3SJonas Devlieghere        self.assertTrue(lldbgdbserverutils.process_is_running(server.pid, True))
1999451b44SJordan Rupprecht
2099451b44SJordan Rupprecht        # Get the process id for the stub.
2199451b44SJordan Rupprecht        return os.getsid(server.pid)
2299451b44SJordan Rupprecht
2354a1c861SPavel Labath    @skipIfWindows
2454a1c861SPavel Labath    @skipIfRemote  # --setsid not used on remote platform and currently it is also impossible to get the sid of lldb-platform running on a remote target
2554a1c861SPavel Labath    def test_sid_is_same_without_setsid(self):
2654a1c861SPavel Labath        self.set_inferior_startup_launch()
2754a1c861SPavel Labath
2899451b44SJordan Rupprecht        stub_sid = self.get_stub_sid()
2999451b44SJordan Rupprecht        self.assertEqual(stub_sid, os.getsid(0))
3099451b44SJordan Rupprecht
3154a1c861SPavel Labath    @skipIfWindows
3254a1c861SPavel Labath    @skipIfRemote  # --setsid not used on remote platform and currently it is also impossible to get the sid of lldb-platform running on a remote target
3354a1c861SPavel Labath    def test_sid_is_different_with_setsid(self):
3454a1c861SPavel Labath        self.set_inferior_startup_launch()
3554a1c861SPavel Labath
3699451b44SJordan Rupprecht        stub_sid = self.get_stub_sid(["--setsid"])
3799451b44SJordan Rupprecht        self.assertNotEqual(stub_sid, os.getsid(0))
3899451b44SJordan Rupprecht
3999451b44SJordan Rupprecht    @skipIfWindows
4099451b44SJordan Rupprecht    @skipIfRemote  # --setsid not used on remote platform and currently it is also impossible to get the sid of lldb-platform running on a remote target
4199451b44SJordan Rupprecht    def test_sid_is_different_with_S_llgs(self):
4299451b44SJordan Rupprecht        self.set_inferior_startup_launch()
4354a1c861SPavel Labath
4454a1c861SPavel Labath        stub_sid = self.get_stub_sid(["-S"])
4554a1c861SPavel Labath        self.assertNotEqual(stub_sid, os.getsid(0))
46