xref: /llvm-project/lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py (revision a8f6f4e8733cd601246ddc3e391cd82236231846)
1import lldb
2import binascii
3import os
4from lldbsuite.test.lldbtest import *
5from lldbsuite.test.decorators import *
6from gdbclientutils import *
7
8
9@skipIfRemote
10class TestProcessConnect(GDBRemoteTestBase):
11
12    NO_DEBUG_INFO_TESTCASE = True
13
14    def test_gdb_remote_sync(self):
15        """Test the gdb-remote command in synchronous mode"""
16        try:
17            self.dbg.SetAsync(False)
18            self.expect("gdb-remote " + self.server.get_connect_address(),
19                        substrs=['Process', 'stopped'])
20        finally:
21            self.dbg.GetSelectedPlatform().DisconnectRemote()
22
23    @skipIfReproducer # Reproducer don't support async.
24    def test_gdb_remote_async(self):
25        """Test the gdb-remote command in asynchronous mode"""
26        try:
27            self.dbg.SetAsync(True)
28            self.expect("gdb-remote " + self.server.get_connect_address(),
29                        matching=False,
30                        substrs=['Process', 'stopped'])
31            lldbutil.expect_state_changes(self, self.dbg.GetListener(),
32                                          self.process(), [lldb.eStateStopped])
33        finally:
34            self.dbg.GetSelectedPlatform().DisconnectRemote()
35
36    @skipIfWindows
37    def test_process_connect_sync(self):
38        """Test the gdb-remote command in synchronous mode"""
39        try:
40            self.dbg.SetAsync(False)
41            self.expect("process connect connect://" +
42                        self.server.get_connect_address(),
43                        substrs=['Process', 'stopped'])
44        finally:
45            self.dbg.GetSelectedPlatform().DisconnectRemote()
46
47    @skipIfWindows
48    @skipIfReproducer # Reproducer don't support async.
49    def test_process_connect_async(self):
50        """Test the gdb-remote command in asynchronous mode"""
51        try:
52            self.dbg.SetAsync(True)
53            self.expect("process connect connect://" +
54                        self.server.get_connect_address(),
55                        matching=False,
56                        substrs=['Process', 'stopped'])
57            lldbutil.expect_state_changes(self, self.dbg.GetListener(),
58                                          self.process(), [lldb.eStateStopped])
59        finally:
60            self.dbg.GetSelectedPlatform().DisconnectRemote()
61