Home | History | Annotate | Download | only in test_support
      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