Files
clang-p2996/lldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py
Michał Górny 45f9795085 [lldb] [test] Terminate "process connect" connections via kill
Fix the termination of "process connect" (and "gdb-remote") to kill
the process rather than attempting to disconnect the platform.
The latter only results in an error since we did not use "platform
connect", and apparently process-level connections (at least via
gdb-remote) do not really support disconnecting.

Differential Revision: https://reviews.llvm.org/D110996
2021-10-04 12:29:06 +02:00

65 lines
2.6 KiB
Python

import lldb
import binascii
import os
from lldbsuite.test.lldbtest import *
from lldbsuite.test.decorators import *
from gdbclientutils import *
@skipIfRemote
class TestProcessConnect(GDBRemoteTestBase):
NO_DEBUG_INFO_TESTCASE = True
def test_gdb_remote_sync(self):
"""Test the gdb-remote command in synchronous mode"""
try:
self.dbg.SetAsync(False)
self.expect("gdb-remote " + self.server.get_connect_address(),
substrs=['Process', 'stopped'])
finally:
self.dbg.GetSelectedTarget().GetProcess().Kill()
def test_gdb_remote_async(self):
"""Test the gdb-remote command in asynchronous mode"""
try:
self.dbg.SetAsync(True)
self.expect("gdb-remote " + self.server.get_connect_address(),
matching=False,
substrs=['Process', 'stopped'])
lldbutil.expect_state_changes(self, self.dbg.GetListener(),
self.process(), [lldb.eStateStopped])
finally:
self.dbg.GetSelectedTarget().GetProcess().Kill()
lldbutil.expect_state_changes(self, self.dbg.GetListener(),
self.process(), [lldb.eStateExited])
@skipIfWindows
def test_process_connect_sync(self):
"""Test the gdb-remote command in synchronous mode"""
try:
self.dbg.SetAsync(False)
self.expect("platform select remote-gdb-server",
substrs=['Platform: remote-gdb-server', 'Connected: no'])
self.expect("process connect " + self.server.get_connect_url(),
substrs=['Process', 'stopped'])
finally:
self.dbg.GetSelectedTarget().GetProcess().Kill()
@skipIfWindows
def test_process_connect_async(self):
"""Test the gdb-remote command in asynchronous mode"""
try:
self.dbg.SetAsync(True)
self.expect("platform select remote-gdb-server",
substrs=['Platform: remote-gdb-server', 'Connected: no'])
self.expect("process connect " + self.server.get_connect_url(),
matching=False,
substrs=['Process', 'stopped'])
lldbutil.expect_state_changes(self, self.dbg.GetListener(),
self.process(), [lldb.eStateStopped])
finally:
self.dbg.GetSelectedTarget().GetProcess().Kill()
lldbutil.expect_state_changes(self, self.dbg.GetListener(),
self.process(), [lldb.eStateExited])