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 connect://" +
43                        self.server.get_connect_address(),
44                        substrs=['Process', 'stopped'])
45        finally:
46            self.dbg.GetSelectedPlatform().DisconnectRemote()
47
48    @skipIfWindows
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("platform select remote-gdb-server",
54                        substrs=['Platform: remote-gdb-server', 'Connected: no'])
55            self.expect("process connect connect://" +
56                        self.server.get_connect_address(),
57                        matching=False,
58                        substrs=['Process', 'stopped'])
59            lldbutil.expect_state_changes(self, self.dbg.GetListener(),
60                                          self.process(), [lldb.eStateStopped])
61        finally:
62            self.dbg.GetSelectedPlatform().DisconnectRemote()
63