xref: /llvm-project/lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py (revision 8fa2394bad433558f3083cee158043e2fb66d781)
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    def test_gdb_remote_async(self):
24        """Test the gdb-remote command in asynchronous mode"""
25        try:
26            self.dbg.SetAsync(True)
27            self.expect("gdb-remote " + self.server.get_connect_address(),
28                        matching=False,
29                        substrs=['Process', 'stopped'])
30            lldbutil.expect_state_changes(self, self.dbg.GetListener(),
31                                          self.process(), [lldb.eStateStopped])
32        finally:
33            self.dbg.GetSelectedPlatform().DisconnectRemote()
34
35    @skipIfWindows
36    def test_process_connect_sync(self):
37        """Test the gdb-remote command in synchronous mode"""
38        try:
39            self.dbg.SetAsync(False)
40            self.expect("platform select remote-gdb-server",
41                        substrs=['Platform: remote-gdb-server', 'Connected: no'])
42            self.expect("process connect " + self.server.get_connect_url(),
43                        substrs=['Process', 'stopped'])
44        finally:
45            self.dbg.GetSelectedPlatform().DisconnectRemote()
46
47    @skipIfWindows
48    def test_process_connect_async(self):
49        """Test the gdb-remote command in asynchronous mode"""
50        try:
51            self.dbg.SetAsync(True)
52            self.expect("platform select remote-gdb-server",
53                        substrs=['Platform: remote-gdb-server', 'Connected: no'])
54            self.expect("process connect " + self.server.get_connect_url(),
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