// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MOJO_PUBLIC_TESTS_TEST_SUPPORT_H_
#define MOJO_PUBLIC_TESTS_TEST_SUPPORT_H_

#include <string>

#include "base/callback.h"
#include "mojo/public/system/core_cpp.h"

namespace mojo {
namespace test {

struct MessagePipe {
  MessagePipe();
  ~MessagePipe();

  ScopedMessagePipeHandle handle_0;
  ScopedMessagePipeHandle handle_1;

  DISALLOW_COPY_AND_ASSIGN(MessagePipe);
};

bool WriteTextMessage(MessagePipeHandle handle, const std::string& text);
bool ReadTextMessage(MessagePipeHandle handle, std::string* text);

// Run |single_iteration| an appropriate number of times and report its
// performance appropriately. (This actually runs |single_iteration| for a fixed
// amount of time and reports the number of iterations per unit time.)
void IterateAndReportPerf(const char* test_name,
                          base::Callback<void()> single_iteration);

MojoResult WriteEmptyMessage(const MessagePipeHandle& handle);
MojoResult ReadEmptyMessage(const MessagePipeHandle& handle);

}  // namespace test
}  // namespace mojo

#endif  // MOJO_PUBLIC_TESTS_TEST_SUPPORT_H_
