OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MOJO_EDK_TEST_MOJO_TEST_BASE_H_ | 5 #ifndef MOJO_EDK_TEST_MOJO_TEST_BASE_H_ |
6 #define MOJO_EDK_TEST_MOJO_TEST_BASE_H_ | 6 #define MOJO_EDK_TEST_MOJO_TEST_BASE_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
11 #include "base/bind.h" | 11 #include "base/bind.h" |
12 #include "base/callback.h" | 12 #include "base/callback.h" |
13 #include "base/logging.h" | 13 #include "base/logging.h" |
14 #include "base/macros.h" | 14 #include "base/macros.h" |
15 #include "base/memory/ref_counted.h" | 15 #include "base/memory/ref_counted.h" |
16 #include "base/memory/scoped_ptr.h" | 16 #include "base/memory/scoped_ptr.h" |
17 #include "base/message_loop/message_loop.h" | |
18 #include "base/run_loop.h" | |
19 #include "base/task_runner.h" | |
20 #include "base/thread_task_runner_handle.h" | |
21 #include "mojo/edk/embedder/embedder.h" | 17 #include "mojo/edk/embedder/embedder.h" |
22 #include "mojo/edk/test/multiprocess_test_helper.h" | 18 #include "mojo/edk/test/multiprocess_test_helper.h" |
23 #include "mojo/public/c/system/types.h" | 19 #include "mojo/public/c/system/types.h" |
24 #include "mojo/public/cpp/system/message_pipe.h" | 20 #include "mojo/public/cpp/system/message_pipe.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
26 | 22 |
27 namespace mojo { | 23 namespace mojo { |
28 namespace edk { | 24 namespace edk { |
29 namespace test { | 25 namespace test { |
30 | 26 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 // Maps a buffer, writes some data into it, and unmaps it. | 120 // Maps a buffer, writes some data into it, and unmaps it. |
125 static void WriteToBuffer(MojoHandle h, | 121 static void WriteToBuffer(MojoHandle h, |
126 size_t offset, | 122 size_t offset, |
127 const base::StringPiece& s); | 123 const base::StringPiece& s); |
128 | 124 |
129 // Maps a buffer, tests the value of some of its contents, and unmaps it. | 125 // Maps a buffer, tests the value of some of its contents, and unmaps it. |
130 static void ExpectBufferContents(MojoHandle h, | 126 static void ExpectBufferContents(MojoHandle h, |
131 size_t offset, | 127 size_t offset, |
132 const base::StringPiece& s); | 128 const base::StringPiece& s); |
133 | 129 |
| 130 //////// Data pipe test utilities ///////// |
| 131 |
| 132 // Creates a new data pipe. |
| 133 static void CreateDataPipe(MojoHandle* producer, |
| 134 MojoHandle* consumer, |
| 135 size_t capacity); |
| 136 |
| 137 // Writes data to a data pipe. |
| 138 static void WriteData(MojoHandle producer, const std::string& data); |
| 139 |
| 140 // Reads data from a data pipe. |
| 141 static std::string ReadData(MojoHandle consumer, size_t size); |
| 142 |
134 private: | 143 private: |
135 friend class ClientController; | 144 friend class ClientController; |
136 | 145 |
137 base::MessageLoop message_loop_; | |
138 std::vector<scoped_ptr<ClientController>> clients_; | 146 std::vector<scoped_ptr<ClientController>> clients_; |
139 | 147 |
140 DISALLOW_COPY_AND_ASSIGN(MojoTestBase); | 148 DISALLOW_COPY_AND_ASSIGN(MojoTestBase); |
141 }; | 149 }; |
142 | 150 |
143 // Launches a new child process running the test client |client_name| connected | 151 // Launches a new child process running the test client |client_name| connected |
144 // to a new message pipe bound to |pipe_name|. |pipe_name| is automatically | 152 // to a new message pipe bound to |pipe_name|. |pipe_name| is automatically |
145 // closed on test teardown. | 153 // closed on test teardown. |
146 #define RUN_CHILD_ON_PIPE(client_name, pipe_name) \ | 154 #define RUN_CHILD_ON_PIPE(client_name, pipe_name) \ |
147 StartClientWithHandler( \ | 155 StartClientWithHandler( \ |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 #else // !defined(OS_IOS) | 217 #else // !defined(OS_IOS) |
210 #define DEFINE_TEST_CLIENT_WITH_PIPE(client_name, test_base, pipe_name) | 218 #define DEFINE_TEST_CLIENT_WITH_PIPE(client_name, test_base, pipe_name) |
211 #define DEFINE_TEST_CLIENT_TEST_WITH_PIPE(client_name, test_base, pipe_name) | 219 #define DEFINE_TEST_CLIENT_TEST_WITH_PIPE(client_name, test_base, pipe_name) |
212 #endif // !defined(OS_IOS) | 220 #endif // !defined(OS_IOS) |
213 | 221 |
214 } // namespace test | 222 } // namespace test |
215 } // namespace edk | 223 } // namespace edk |
216 } // namespace mojo | 224 } // namespace mojo |
217 | 225 |
218 #endif // MOJO_EDK_TEST_MOJO_TEST_BASE_H_ | 226 #endif // MOJO_EDK_TEST_MOJO_TEST_BASE_H_ |
OLD | NEW |