2016-08-17 16:53:31 +08:00
|
|
|
//===-- 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
|
|
|
|
|
2016-08-17 17:17:08 +08:00
|
|
|
#include "gtest/gtest.h"
|
2016-08-17 16:53:31 +08:00
|
|
|
#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)
|
|
|
|
{
|
2016-08-27 23:52:29 +08:00
|
|
|
return GDBRemoteCommunicationServer::SendPacketNoLock(payload);
|
2016-08-17 16:53:31 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
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
|