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