Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(852)

Side by Side Diff: mojo/public/cpp/system/tests/core_unittest.cc

Issue 336313007: Mojo: Rename MOJO_WAIT_FLAG_... -> MOJO_HANDLE_SIGNAL_.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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 // This file tests the C++ Mojo system core wrappers. 5 // This file tests the C++ Mojo system core wrappers.
6 // TODO(vtl): Maybe rename "CoreCppTest" -> "CoreTest" if/when this gets 6 // TODO(vtl): Maybe rename "CoreCppTest" -> "CoreTest" if/when this gets
7 // compiled into a different binary from the C API tests. 7 // compiled into a different binary from the C API tests.
8 8
9 #include "mojo/public/cpp/system/core.h" 9 #include "mojo/public/cpp/system/core.h"
10 10
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 92
93 EXPECT_EQ(kInvalidHandleValue, h.get().value()); 93 EXPECT_EQ(kInvalidHandleValue, h.get().value());
94 94
95 // This should be a no-op. 95 // This should be a no-op.
96 Close(h.Pass()); 96 Close(h.Pass());
97 97
98 // It should still be invalid. 98 // It should still be invalid.
99 EXPECT_EQ(kInvalidHandleValue, h.get().value()); 99 EXPECT_EQ(kInvalidHandleValue, h.get().value());
100 100
101 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 101 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
102 Wait(h.get(), MOJO_WAIT_FLAG_EVERYTHING, 1000000)); 102 Wait(h.get(), ~MOJO_HANDLE_SIGNAL_NONE, 1000000));
103 103
104 std::vector<Handle> wh; 104 std::vector<Handle> wh;
105 wh.push_back(h.get()); 105 wh.push_back(h.get());
106 std::vector<MojoHandleSignals> sigs; 106 std::vector<MojoHandleSignals> sigs;
107 sigs.push_back(MOJO_WAIT_FLAG_EVERYTHING); 107 sigs.push_back(~MOJO_HANDLE_SIGNAL_NONE);
108 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 108 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
109 WaitMany(wh, sigs, MOJO_DEADLINE_INDEFINITE)); 109 WaitMany(wh, sigs, MOJO_DEADLINE_INDEFINITE));
110 } 110 }
111 111
112 // |MakeScopedHandle| (just compilation tests): 112 // |MakeScopedHandle| (just compilation tests):
113 { 113 {
114 EXPECT_FALSE(MakeScopedHandle(Handle()).is_valid()); 114 EXPECT_FALSE(MakeScopedHandle(Handle()).is_valid());
115 EXPECT_FALSE(MakeScopedHandle(MessagePipeHandle()).is_valid()); 115 EXPECT_FALSE(MakeScopedHandle(MessagePipeHandle()).is_valid());
116 EXPECT_FALSE(MakeScopedHandle(DataPipeProducerHandle()).is_valid()); 116 EXPECT_FALSE(MakeScopedHandle(DataPipeProducerHandle()).is_valid());
117 EXPECT_FALSE(MakeScopedHandle(DataPipeConsumerHandle()).is_valid()); 117 EXPECT_FALSE(MakeScopedHandle(DataPipeConsumerHandle()).is_valid());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 CreateMessagePipe(NULL, &h0, &h1); 156 CreateMessagePipe(NULL, &h0, &h1);
157 EXPECT_TRUE(h0.get().is_valid()); 157 EXPECT_TRUE(h0.get().is_valid());
158 EXPECT_TRUE(h1.get().is_valid()); 158 EXPECT_TRUE(h1.get().is_valid());
159 EXPECT_NE(h0.get().value(), h1.get().value()); 159 EXPECT_NE(h0.get().value(), h1.get().value());
160 // Save the handle values, so we can check that things got closed 160 // Save the handle values, so we can check that things got closed
161 // correctly. 161 // correctly.
162 hv0 = h0.get().value(); 162 hv0 = h0.get().value();
163 MojoHandle hv1 = h1.get().value(); 163 MojoHandle hv1 = h1.get().value();
164 164
165 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, 165 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
166 Wait(h0.get(), MOJO_WAIT_FLAG_READABLE, 0)); 166 Wait(h0.get(), MOJO_HANDLE_SIGNAL_READABLE, 0));
167 std::vector<Handle> wh; 167 std::vector<Handle> wh;
168 wh.push_back(h0.get()); 168 wh.push_back(h0.get());
169 wh.push_back(h1.get()); 169 wh.push_back(h1.get());
170 std::vector<MojoHandleSignals> sigs; 170 std::vector<MojoHandleSignals> sigs;
171 sigs.push_back(MOJO_WAIT_FLAG_READABLE); 171 sigs.push_back(MOJO_HANDLE_SIGNAL_READABLE);
172 sigs.push_back(MOJO_WAIT_FLAG_WRITABLE); 172 sigs.push_back(MOJO_HANDLE_SIGNAL_WRITABLE);
173 EXPECT_EQ(1, WaitMany(wh, sigs, 1000)); 173 EXPECT_EQ(1, WaitMany(wh, sigs, 1000));
174 174
175 // Test closing |h1| explicitly. 175 // Test closing |h1| explicitly.
176 Close(h1.Pass()); 176 Close(h1.Pass());
177 EXPECT_FALSE(h1.get().is_valid()); 177 EXPECT_FALSE(h1.get().is_valid());
178 178
179 // Make sure |h1| is closed. 179 // Make sure |h1| is closed.
180 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 180 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
181 MojoWait(hv1, MOJO_WAIT_FLAG_EVERYTHING, 181 MojoWait(hv1, ~MOJO_HANDLE_SIGNAL_NONE,
182 MOJO_DEADLINE_INDEFINITE)); 182 MOJO_DEADLINE_INDEFINITE));
183 183
184 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, 184 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION,
185 Wait(h0.get(), MOJO_WAIT_FLAG_READABLE, 185 Wait(h0.get(), MOJO_HANDLE_SIGNAL_READABLE,
186 MOJO_DEADLINE_INDEFINITE)); 186 MOJO_DEADLINE_INDEFINITE));
187 } 187 }
188 // |hv0| should have been closed when |h0| went out of scope, so this close 188 // |hv0| should have been closed when |h0| went out of scope, so this close
189 // should fail. 189 // should fail.
190 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(hv0)); 190 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(hv0));
191 191
192 // Actually test writing/reading messages. 192 // Actually test writing/reading messages.
193 { 193 {
194 ScopedMessagePipeHandle h0; 194 ScopedMessagePipeHandle h0;
195 ScopedMessagePipeHandle h1; 195 ScopedMessagePipeHandle h1;
196 CreateMessagePipe(NULL, &h0, &h1); 196 CreateMessagePipe(NULL, &h0, &h1);
197 197
198 const char kHello[] = "hello"; 198 const char kHello[] = "hello";
199 const uint32_t kHelloSize = static_cast<uint32_t>(sizeof(kHello)); 199 const uint32_t kHelloSize = static_cast<uint32_t>(sizeof(kHello));
200 EXPECT_EQ(MOJO_RESULT_OK, 200 EXPECT_EQ(MOJO_RESULT_OK,
201 WriteMessageRaw(h0.get(), 201 WriteMessageRaw(h0.get(),
202 kHello, kHelloSize, 202 kHello, kHelloSize,
203 NULL, 0, 203 NULL, 0,
204 MOJO_WRITE_MESSAGE_FLAG_NONE)); 204 MOJO_WRITE_MESSAGE_FLAG_NONE));
205 EXPECT_EQ(MOJO_RESULT_OK, 205 EXPECT_EQ(MOJO_RESULT_OK,
206 Wait(h1.get(), MOJO_WAIT_FLAG_READABLE, 206 Wait(h1.get(), MOJO_HANDLE_SIGNAL_READABLE,
207 MOJO_DEADLINE_INDEFINITE)); 207 MOJO_DEADLINE_INDEFINITE));
208 char buffer[10] = { 0 }; 208 char buffer[10] = { 0 };
209 uint32_t buffer_size = static_cast<uint32_t>(sizeof(buffer)); 209 uint32_t buffer_size = static_cast<uint32_t>(sizeof(buffer));
210 EXPECT_EQ(MOJO_RESULT_OK, 210 EXPECT_EQ(MOJO_RESULT_OK,
211 ReadMessageRaw(h1.get(), 211 ReadMessageRaw(h1.get(),
212 buffer, &buffer_size, 212 buffer, &buffer_size,
213 NULL, NULL, 213 NULL, NULL,
214 MOJO_READ_MESSAGE_FLAG_NONE)); 214 MOJO_READ_MESSAGE_FLAG_NONE));
215 EXPECT_EQ(kHelloSize, buffer_size); 215 EXPECT_EQ(kHelloSize, buffer_size);
216 EXPECT_STREQ(kHello, buffer); 216 EXPECT_STREQ(kHello, buffer);
(...skipping 21 matching lines...) Expand all
238 EXPECT_EQ(MOJO_RESULT_OK, 238 EXPECT_EQ(MOJO_RESULT_OK,
239 WriteMessageRaw(h1.get(), 239 WriteMessageRaw(h1.get(),
240 kHello, kHelloSize, 240 kHello, kHelloSize,
241 handles, handles_count, 241 handles, handles_count,
242 MOJO_WRITE_MESSAGE_FLAG_NONE)); 242 MOJO_WRITE_MESSAGE_FLAG_NONE));
243 // |handles[0]| should actually be invalid now. 243 // |handles[0]| should actually be invalid now.
244 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(handles[0])); 244 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, MojoClose(handles[0]));
245 245
246 // Read "hello" and the sent handle. 246 // Read "hello" and the sent handle.
247 EXPECT_EQ(MOJO_RESULT_OK, 247 EXPECT_EQ(MOJO_RESULT_OK,
248 Wait(h0.get(), MOJO_WAIT_FLAG_READABLE, 248 Wait(h0.get(), MOJO_HANDLE_SIGNAL_READABLE,
249 MOJO_DEADLINE_INDEFINITE)); 249 MOJO_DEADLINE_INDEFINITE));
250 memset(buffer, 0, sizeof(buffer)); 250 memset(buffer, 0, sizeof(buffer));
251 buffer_size = static_cast<uint32_t>(sizeof(buffer)); 251 buffer_size = static_cast<uint32_t>(sizeof(buffer));
252 for (size_t i = 0; i < MOJO_ARRAYSIZE(handles); i++) 252 for (size_t i = 0; i < MOJO_ARRAYSIZE(handles); i++)
253 handles[i] = kInvalidHandleValue; 253 handles[i] = kInvalidHandleValue;
254 handles_count = static_cast<uint32_t>(MOJO_ARRAYSIZE(handles)); 254 handles_count = static_cast<uint32_t>(MOJO_ARRAYSIZE(handles));
255 EXPECT_EQ(MOJO_RESULT_OK, 255 EXPECT_EQ(MOJO_RESULT_OK,
256 ReadMessageRaw(h0.get(), 256 ReadMessageRaw(h0.get(),
257 buffer, &buffer_size, 257 buffer, &buffer_size,
258 handles, &handles_count, 258 handles, &handles_count,
259 MOJO_READ_MESSAGE_FLAG_NONE)); 259 MOJO_READ_MESSAGE_FLAG_NONE));
260 EXPECT_EQ(kHelloSize, buffer_size); 260 EXPECT_EQ(kHelloSize, buffer_size);
261 EXPECT_STREQ(kHello, buffer); 261 EXPECT_STREQ(kHello, buffer);
262 EXPECT_EQ(1u, handles_count); 262 EXPECT_EQ(1u, handles_count);
263 EXPECT_NE(kInvalidHandleValue, handles[0]); 263 EXPECT_NE(kInvalidHandleValue, handles[0]);
264 264
265 // Read from the sent/received handle. 265 // Read from the sent/received handle.
266 mp.handle1.reset(MessagePipeHandle(handles[0])); 266 mp.handle1.reset(MessagePipeHandle(handles[0]));
267 // Save |handles[0]| to check that it gets properly closed. 267 // Save |handles[0]| to check that it gets properly closed.
268 hv0 = handles[0]; 268 hv0 = handles[0];
269 EXPECT_EQ(MOJO_RESULT_OK, 269 EXPECT_EQ(MOJO_RESULT_OK,
270 Wait(mp.handle1.get(), MOJO_WAIT_FLAG_READABLE, 270 Wait(mp.handle1.get(), MOJO_HANDLE_SIGNAL_READABLE,
271 MOJO_DEADLINE_INDEFINITE)); 271 MOJO_DEADLINE_INDEFINITE));
272 memset(buffer, 0, sizeof(buffer)); 272 memset(buffer, 0, sizeof(buffer));
273 buffer_size = static_cast<uint32_t>(sizeof(buffer)); 273 buffer_size = static_cast<uint32_t>(sizeof(buffer));
274 for (size_t i = 0; i < MOJO_ARRAYSIZE(handles); i++) 274 for (size_t i = 0; i < MOJO_ARRAYSIZE(handles); i++)
275 handles[i] = kInvalidHandleValue; 275 handles[i] = kInvalidHandleValue;
276 handles_count = static_cast<uint32_t>(MOJO_ARRAYSIZE(handles)); 276 handles_count = static_cast<uint32_t>(MOJO_ARRAYSIZE(handles));
277 EXPECT_EQ(MOJO_RESULT_OK, 277 EXPECT_EQ(MOJO_RESULT_OK,
278 ReadMessageRaw(mp.handle1.get(), 278 ReadMessageRaw(mp.handle1.get(),
279 buffer, &buffer_size, 279 buffer, &buffer_size,
280 handles, &handles_count, 280 handles, &handles_count,
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 410
411 buffer1 = buffer1.Pass(); 411 buffer1 = buffer1.Pass();
412 412
413 EXPECT_TRUE(buffer1.is_valid()); 413 EXPECT_TRUE(buffer1.is_valid());
414 } 414 }
415 415
416 // TODO(vtl): Write data pipe tests. 416 // TODO(vtl): Write data pipe tests.
417 417
418 } // namespace 418 } // namespace
419 } // namespace mojo 419 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/environment/tests/async_waiter_unittest.cc ('k') | mojo/public/cpp/test_support/lib/test_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698