The new FreeBSDRemote plugin has reached feature parity on i386 and amd64 targets. Use it by default on these architectures, while allowing the use of the legacy plugin via FREEBSD_LEGACY_PLUGIN envvar. Revisit the method of switching plugins. Apparently, the return value of PlatformFreeBSD::CanDebugProcess() is what really decides whether the legacy or the new plugin is used. Update the test status. Reenable the tests that were previously disabled on FreeBSD and do not cause hangs or are irrelevant to FreeBSD. Mark all tests that fail reliably as expectedFailure. For now, tests that are flaky (i.e. produce unstable results) are left enabled and cause unpredictable test failures. Differential Revision: https://reviews.llvm.org/D90757
65 lines
2.4 KiB
Python
65 lines
2.4 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
|
|
|
|
@skipIfWindows
|
|
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.GetSelectedPlatform().DisconnectRemote()
|
|
|
|
@skipIfWindows
|
|
@skipIfReproducer # Reproducer don't support async.
|
|
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.GetSelectedPlatform().DisconnectRemote()
|
|
|
|
@skipIfWindows
|
|
@expectedFailureAll(oslist=["freebsd"])
|
|
def test_process_connect_sync(self):
|
|
"""Test the gdb-remote command in synchronous mode"""
|
|
try:
|
|
self.dbg.SetAsync(False)
|
|
self.expect("process connect connect://" +
|
|
self.server.get_connect_address(),
|
|
substrs=['Process', 'stopped'])
|
|
finally:
|
|
self.dbg.GetSelectedPlatform().DisconnectRemote()
|
|
|
|
@skipIfWindows
|
|
@expectedFailureAll(oslist=["freebsd"])
|
|
@skipIfReproducer # Reproducer don't support async.
|
|
def test_process_connect_async(self):
|
|
"""Test the gdb-remote command in asynchronous mode"""
|
|
try:
|
|
self.dbg.SetAsync(True)
|
|
self.expect("process connect connect://" +
|
|
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.GetSelectedPlatform().DisconnectRemote()
|