text: //===-- GDBRemoteTestUtils.h ------------------------------------*- C++ -*-===//
  //
  // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  // See https://llvm.org/LICENSE.txt for license information.
  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  //
  //===----------------------------------------------------------------------===//
  #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();
  };
  
  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
  