#include "src/ipc/host_impl.h"
#include <memory>
#include "perfetto/ext/base/file_utils.h"
#include "perfetto/ext/base/scoped_file.h"
#include "perfetto/ext/base/sys_types.h"
#include "perfetto/ext/base/temp_file.h"
#include "perfetto/ext/base/unix_socket.h"
#include "perfetto/ext/base/utils.h"
#include "perfetto/ext/ipc/service.h"
#include "perfetto/ext/ipc/service_descriptor.h"
#include "src/base/test/test_task_runner.h"
#include "src/ipc/buffered_frame_deserializer.h"
#include "src/ipc/test/test_socket.h"
#include "test/gtest_and_gmock.h"
#include "protos/perfetto/ipc/wire_protocol.gen.h"
#include "src/ipc/test/client_unittest_messages.gen.h"
#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
#include <sys/socket.h>
#endif
namespace perfetto {
namespace ipc {
namespace {
Frame;
using ::perfetto::ipc::gen::ReplyProto;
using ::perfetto::ipc::gen::RequestProto;
_;
Invoke;
InvokeWithoutArgs;
Return;
ipc::TestSocket kTestSocket{"host_impl_unittest"};
class FakeService : public Service { … };
class FakeClient : public base::UnixSocket::EventListener { … };
class HostImplTest : public ::testing::Test { … };
TEST_F(HostImplTest, BindService) { … }
TEST_F(HostImplTest, InvokeNonExistingMethod) { … }
TEST_F(HostImplTest, InvokeMethod) { … }
TEST_F(HostImplTest, InvokeMethodDropReply) { … }
#if !PERFETTO_BUILDFLAG(PERFETTO_OS_WIN) && \
!PERFETTO_BUILDFLAG(PERFETTO_OS_FUCHSIA)
TEST_F(HostImplTest, SendFileDescriptor) { … }
TEST_F(HostImplTest, ReceiveFileDescriptor) { … }
#endif
TEST_F(HostImplTest, OnClientDisconnect) { … }
TEST_F(HostImplTest, MoveReplyObjectAndReplyAsynchronously) { … }
#if PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) || \
PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
TEST_F(HostImplTest, ServiceClientInfo) { … }
TEST_F(HostImplTest, SetPeerIdentityUnixSocket) { … }
TEST(HostImpl, SetPeerIdentityTcpSocket) { … }
#endif
}
}
}