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    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("process connect connect://" +
41                        self.server.get_connect_address(),
42                        substrs=['Process', 'stopped'])
43        finally:
44            self.dbg.GetSelectedPlatform().DisconnectRemote()
45
46    @skipIfReproducer # Reproducer don't support async.
47    def test_process_connect_async(self):
48        """Test the gdb-remote command in asynchronous mode"""
49        try:
50            self.dbg.SetAsync(True)
51            self.expect("process connect connect://" +
52                        self.server.get_connect_address(),
53                        matching=False,
54                        substrs=['Process', 'stopped'])
55            lldbutil.expect_state_changes(self, self.dbg.GetListener(),
56                                          self.process(), [lldb.eStateStopped])
57        finally:
58            self.dbg.GetSelectedPlatform().DisconnectRemote()
59