1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef MOJO_PUBLIC_CPP_TEST_SUPPORT_TEST_UTILS_H_ 6#define MOJO_PUBLIC_CPP_TEST_SUPPORT_TEST_UTILS_H_ 7 8#include <string> 9 10#include "mojo/public/cpp/system/core.h" 11 12namespace mojo { 13namespace test { 14 15// Writes a message to |handle| with message data |text|. Returns true on 16// success. 17bool WriteTextMessage(const MessagePipeHandle& handle, const std::string& text); 18 19// Reads a message from |handle|, putting its contents into |*text|. Returns 20// true on success. (This blocks if necessary and will call |MojoReadMessage()| 21// multiple times, e.g., to query the size of the message.) 22bool ReadTextMessage(const MessagePipeHandle& handle, std::string* text); 23 24// Discards a message from |handle|. Returns true on success. (This does not 25// block. It will fail if no message is available to discard.) 26bool DiscardMessage(const MessagePipeHandle& handle); 27 28// Run |single_iteration| an appropriate number of times and report its 29// performance appropriately. (This actually runs |single_iteration| for a fixed 30// amount of time and reports the number of iterations per unit time.) 31typedef void (*PerfTestSingleIteration)(void* closure); 32void IterateAndReportPerf(const char* test_name, 33 const char* sub_test_name, 34 PerfTestSingleIteration single_iteration, 35 void* closure); 36 37} // namespace test 38} // namespace mojo 39 40#endif // MOJO_PUBLIC_CPP_TEST_SUPPORT_TEST_UTILS_H_ 41