• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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                           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