Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / mojo / public / cpp / test_support / test_utils.h
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
12 namespace mojo {
13 namespace test {
14
15 // Writes a message to |handle| with message data |text|. Returns true on
16 // success.
17 bool 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.)
22 bool 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.)
26 bool 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.)
31 typedef void (*PerfTestSingleIteration)(void* closure);
32 void IterateAndReportPerf(const char* test_name,
33                           PerfTestSingleIteration single_iteration,
34                           void* closure);
35
36 }  // namespace test
37 }  // namespace mojo
38
39 #endif  // MOJO_PUBLIC_CPP_TEST_SUPPORT_TEST_UTILS_H_