blob: cc17422049bc2967ba9a369752aaa07d88cb546b [file] [log] [blame]
//===-- 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();
protected:
llvm::Error 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 bool sync_on_timeout = false;
return WaitForPacketNoLock(response, std::chrono::seconds(1),
sync_on_timeout);
}
using GDBRemoteCommunicationServer::SendOKResponse;
using GDBRemoteCommunicationServer::SendUnimplementedResponse;
};
} // namespace process_gdb_remote
} // namespace lldb_private
#endif // lldb_unittests_Process_gdb_remote_GDBRemoteTestUtils_h