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.
5 #ifndef MOJO_PUBLIC_CPP_TEST_SUPPORT_TEST_UTILS_H_
6 #define MOJO_PUBLIC_CPP_TEST_SUPPORT_TEST_UTILS_H_
10 #include "mojo/public/cpp/system/core.h"
15 // Writes a message to |handle| with message data |text|. Returns true on
17 bool WriteTextMessage(const MessagePipeHandle
& handle
, const std::string
& text
);
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
);
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
);
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
,
39 #endif // MOJO_PUBLIC_CPP_TEST_SUPPORT_TEST_UTILS_H_