1import lldb
2import binascii
3import os
4from lldbsuite.test.lldbtest import *
5from lldbsuite.test.decorators import *
6from gdbclientutils import *
7
8
9class TestProcessConnect(GDBRemoteTestBase):
10
11    NO_DEBUG_INFO_TESTCASE = True
12
13    @skipIfWindows
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 %d" % self.server.port,
19                        substrs=['Process', 'stopped'])
20        finally:
21            self.dbg.GetSelectedPlatform().DisconnectRemote()
22
23    @skipIfWindows
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 %d" % self.server.port,
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://localhost:%d" %
42                        self.server.port,
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("process connect connect://localhost:%d" %
53                        self.server.port,
54                        matching=False,
55                        substrs=['Process', 'stopped'])
56            lldbutil.expect_state_changes(self, self.dbg.GetListener(),
57                                          self.process(), [lldb.eStateStopped])
58        finally:
59            self.dbg.GetSelectedPlatform().DisconnectRemote()
60