#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include <stddef.h>
#include <utility>
#include "base/functional/bind.h"
#include "base/memory/raw_ptr.h"
#include "base/run_loop.h"
#include "base/task/single_thread_task_runner.h"
#include "base/test/task_environment.h"
#include "base/time/time.h"
#include "mojo/public/cpp/bindings/interface_endpoint_client.h"
#include "mojo/public/cpp/bindings/lib/multiplex_router.h"
#include "mojo/public/cpp/bindings/message.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/test_support/test_support.h"
#include "mojo/public/cpp/test_support/test_utils.h"
#include "mojo/public/interfaces/bindings/tests/ping_service.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace mojo {
namespace {
const double kMojoTicksPerSecond = …;
const char kTestInterfaceName[] = …;
IPCStableHashFunction MessageToMethodInfo(Message& message) { … }
const char* MessageToMethodName(Message& message) { … }
double MojoTicksToSeconds(MojoTimeTicks ticks) { … }
class PingServiceImpl : public test::PingService { … };
class PingPongTest { … };
struct BoundPingService { … };
class MojoBindingsPerftest : public testing::Test { … };
TEST_F(MojoBindingsPerftest, InProcessPingPong) { … }
class PingPongPaddle : public MessageReceiverWithResponderStatus { … };
TEST_F(MojoBindingsPerftest, MultiplexRouterPingPong) { … }
class CounterReceiver : public MessageReceiverWithResponderStatus { … };
TEST_F(MojoBindingsPerftest, MultiplexRouterDispatchCost) { … }
}
}