//===-- GDBRemoteTestUtils.h ------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef lldb_unittests_Process_gdb_remote_GDBRemoteTestUtils_h #define lldb_unittests_Process_gdb_remote_GDBRemoteTestUtils_h #include "gtest/gtest.h" #include "Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h" namespace lldb_private { namespace process_gdb_remote { class GDBRemoteTest : public testing::Test { public: static void SetUpTestCase(); static void TearDownTestCase(); }; void Connect(GDBRemoteCommunication &client, GDBRemoteCommunication &server); struct MockServer : public GDBRemoteCommunicationServer { MockServer() : GDBRemoteCommunicationServer("mock-server", "mock-server.listener") { m_send_acks = false; } PacketResult SendPacket(llvm::StringRef payload) { return GDBRemoteCommunicationServer::SendPacketNoLock(payload); } PacketResult GetPacket(StringExtractorGDBRemote &response) { const unsigned timeout_usec = 1000000; // 1s const bool sync_on_timeout = false; return WaitForPacketWithTimeoutMicroSecondsNoLock(response, timeout_usec, sync_on_timeout); } using GDBRemoteCommunicationServer::SendOKResponse; using GDBRemoteCommunicationServer::SendUnimplementedResponse; }; } // namespace process_gdb_remote } // namespace lldb_private #endif // lldb_unittests_Process_gdb_remote_GDBRemoteTestUtils_h