OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include <stdint.h> | 5 #include <stdint.h> |
6 #include <stdio.h> | 6 #include <stdio.h> |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()), | 190 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()), |
191 scoped_ptr<MessagePipeEndpoint>(new LocalMessagePipeEndpoint()))); | 191 scoped_ptr<MessagePipeEndpoint>(new LocalMessagePipeEndpoint()))); |
192 ConnectMessagePipes(mp0, mp1); | 192 ConnectMessagePipes(mp0, mp1); |
193 | 193 |
194 // Write in one direction: MP 0, port 0 -> ... -> MP 1, port 1. | 194 // Write in one direction: MP 0, port 0 -> ... -> MP 1, port 1. |
195 | 195 |
196 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do | 196 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do |
197 // it later, it might already be readable.) | 197 // it later, it might already be readable.) |
198 waiter.Init(); | 198 waiter.Init(); |
199 EXPECT_EQ(MOJO_RESULT_OK, | 199 EXPECT_EQ(MOJO_RESULT_OK, |
200 mp1->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 123)); | 200 mp1->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123)); |
201 | 201 |
202 // Write to MP 0, port 0. | 202 // Write to MP 0, port 0. |
203 EXPECT_EQ(MOJO_RESULT_OK, | 203 EXPECT_EQ(MOJO_RESULT_OK, |
204 mp0->WriteMessage(0, | 204 mp0->WriteMessage(0, |
205 kHello, sizeof(kHello), | 205 kHello, sizeof(kHello), |
206 NULL, | 206 NULL, |
207 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 207 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
208 | 208 |
209 // Wait. | 209 // Wait. |
210 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 210 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
211 EXPECT_EQ(123u, context); | 211 EXPECT_EQ(123u, context); |
212 mp1->RemoveWaiter(1, &waiter); | 212 mp1->RemoveWaiter(1, &waiter); |
213 | 213 |
214 // Read from MP 1, port 1. | 214 // Read from MP 1, port 1. |
215 EXPECT_EQ(MOJO_RESULT_OK, | 215 EXPECT_EQ(MOJO_RESULT_OK, |
216 mp1->ReadMessage(1, | 216 mp1->ReadMessage(1, |
217 buffer, &buffer_size, | 217 buffer, &buffer_size, |
218 NULL, NULL, | 218 NULL, NULL, |
219 MOJO_READ_MESSAGE_FLAG_NONE)); | 219 MOJO_READ_MESSAGE_FLAG_NONE)); |
220 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(buffer_size)); | 220 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(buffer_size)); |
221 EXPECT_STREQ(kHello, buffer); | 221 EXPECT_STREQ(kHello, buffer); |
222 | 222 |
223 // Write in the other direction: MP 1, port 1 -> ... -> MP 0, port 0. | 223 // Write in the other direction: MP 1, port 1 -> ... -> MP 0, port 0. |
224 | 224 |
225 waiter.Init(); | 225 waiter.Init(); |
226 EXPECT_EQ(MOJO_RESULT_OK, | 226 EXPECT_EQ(MOJO_RESULT_OK, |
227 mp0->AddWaiter(0, &waiter, MOJO_WAIT_FLAG_READABLE, 456)); | 227 mp0->AddWaiter(0, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 456)); |
228 | 228 |
229 EXPECT_EQ(MOJO_RESULT_OK, | 229 EXPECT_EQ(MOJO_RESULT_OK, |
230 mp1->WriteMessage(1, | 230 mp1->WriteMessage(1, |
231 kWorld, sizeof(kWorld), | 231 kWorld, sizeof(kWorld), |
232 NULL, | 232 NULL, |
233 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 233 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
234 | 234 |
235 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 235 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
236 EXPECT_EQ(456u, context); | 236 EXPECT_EQ(456u, context); |
237 mp0->RemoveWaiter(0, &waiter); | 237 mp0->RemoveWaiter(0, &waiter); |
238 | 238 |
239 buffer_size = static_cast<uint32_t>(sizeof(buffer)); | 239 buffer_size = static_cast<uint32_t>(sizeof(buffer)); |
240 EXPECT_EQ(MOJO_RESULT_OK, | 240 EXPECT_EQ(MOJO_RESULT_OK, |
241 mp0->ReadMessage(0, | 241 mp0->ReadMessage(0, |
242 buffer, &buffer_size, | 242 buffer, &buffer_size, |
243 NULL, NULL, | 243 NULL, NULL, |
244 MOJO_READ_MESSAGE_FLAG_NONE)); | 244 MOJO_READ_MESSAGE_FLAG_NONE)); |
245 EXPECT_EQ(sizeof(kWorld), static_cast<size_t>(buffer_size)); | 245 EXPECT_EQ(sizeof(kWorld), static_cast<size_t>(buffer_size)); |
246 EXPECT_STREQ(kWorld, buffer); | 246 EXPECT_STREQ(kWorld, buffer); |
247 | 247 |
248 // Close MP 0, port 0. | 248 // Close MP 0, port 0. |
249 mp0->Close(0); | 249 mp0->Close(0); |
250 | 250 |
251 // Try to wait for MP 1, port 1 to become readable. This will eventually fail | 251 // Try to wait for MP 1, port 1 to become readable. This will eventually fail |
252 // when it realizes that MP 0, port 0 has been closed. (It may also fail | 252 // when it realizes that MP 0, port 0 has been closed. (It may also fail |
253 // immediately.) | 253 // immediately.) |
254 waiter.Init(); | 254 waiter.Init(); |
255 MojoResult result = mp1->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 789); | 255 MojoResult result = |
| 256 mp1->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 789); |
256 if (result == MOJO_RESULT_OK) { | 257 if (result == MOJO_RESULT_OK) { |
257 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, | 258 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, |
258 waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 259 waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
259 EXPECT_EQ(789u, context); | 260 EXPECT_EQ(789u, context); |
260 mp1->RemoveWaiter(1, &waiter); | 261 mp1->RemoveWaiter(1, &waiter); |
261 } else { | 262 } else { |
262 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); | 263 EXPECT_EQ(MOJO_RESULT_FAILED_PRECONDITION, result); |
263 } | 264 } |
264 | 265 |
265 // And MP 1, port 1. | 266 // And MP 1, port 1. |
(...skipping 25 matching lines...) Expand all Loading... |
291 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()))); | 292 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()))); |
292 scoped_refptr<MessagePipe> mp3(new MessagePipe( | 293 scoped_refptr<MessagePipe> mp3(new MessagePipe( |
293 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()), | 294 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()), |
294 scoped_ptr<MessagePipeEndpoint>(new LocalMessagePipeEndpoint()))); | 295 scoped_ptr<MessagePipeEndpoint>(new LocalMessagePipeEndpoint()))); |
295 ConnectMessagePipes(mp2, mp3); | 296 ConnectMessagePipes(mp2, mp3); |
296 | 297 |
297 // Write: MP 2, port 0 -> MP 3, port 1. | 298 // Write: MP 2, port 0 -> MP 3, port 1. |
298 | 299 |
299 waiter.Init(); | 300 waiter.Init(); |
300 EXPECT_EQ(MOJO_RESULT_OK, | 301 EXPECT_EQ(MOJO_RESULT_OK, |
301 mp3->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 789)); | 302 mp3->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 789)); |
302 | 303 |
303 EXPECT_EQ(MOJO_RESULT_OK, | 304 EXPECT_EQ(MOJO_RESULT_OK, |
304 mp2->WriteMessage(0, | 305 mp2->WriteMessage(0, |
305 kHello, sizeof(kHello), | 306 kHello, sizeof(kHello), |
306 NULL, | 307 NULL, |
307 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 308 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
308 | 309 |
309 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 310 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
310 EXPECT_EQ(789u, context); | 311 EXPECT_EQ(789u, context); |
311 mp3->RemoveWaiter(1, &waiter); | 312 mp3->RemoveWaiter(1, &waiter); |
(...skipping 25 matching lines...) Expand all Loading... |
337 buffer, &buffer_size, | 338 buffer, &buffer_size, |
338 NULL, NULL, | 339 NULL, NULL, |
339 MOJO_READ_MESSAGE_FLAG_NONE)); | 340 MOJO_READ_MESSAGE_FLAG_NONE)); |
340 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(buffer_size)); | 341 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(buffer_size)); |
341 EXPECT_STREQ(kHello, buffer); | 342 EXPECT_STREQ(kHello, buffer); |
342 | 343 |
343 // Write: MP 0, port 0 -> MP 1, port 1 again. | 344 // Write: MP 0, port 0 -> MP 1, port 1 again. |
344 | 345 |
345 waiter.Init(); | 346 waiter.Init(); |
346 EXPECT_EQ(MOJO_RESULT_OK, | 347 EXPECT_EQ(MOJO_RESULT_OK, |
347 mp1->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 123)); | 348 mp1->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123)); |
348 | 349 |
349 EXPECT_EQ(MOJO_RESULT_OK, | 350 EXPECT_EQ(MOJO_RESULT_OK, |
350 mp0->WriteMessage(0, | 351 mp0->WriteMessage(0, |
351 kWorld, sizeof(kWorld), | 352 kWorld, sizeof(kWorld), |
352 NULL, | 353 NULL, |
353 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 354 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
354 | 355 |
355 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 356 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
356 EXPECT_EQ(123u, context); | 357 EXPECT_EQ(123u, context); |
357 mp1->RemoveWaiter(1, &waiter); | 358 mp1->RemoveWaiter(1, &waiter); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 mp0->Close(0); | 421 mp0->Close(0); |
421 | 422 |
422 scoped_refptr<MessagePipe> mp1(new MessagePipe( | 423 scoped_refptr<MessagePipe> mp1(new MessagePipe( |
423 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()), | 424 scoped_ptr<MessagePipeEndpoint>(new ProxyMessagePipeEndpoint()), |
424 scoped_ptr<MessagePipeEndpoint>(new LocalMessagePipeEndpoint()))); | 425 scoped_ptr<MessagePipeEndpoint>(new LocalMessagePipeEndpoint()))); |
425 | 426 |
426 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do | 427 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do |
427 // it later, it might already be readable.) | 428 // it later, it might already be readable.) |
428 waiter.Init(); | 429 waiter.Init(); |
429 EXPECT_EQ(MOJO_RESULT_OK, | 430 EXPECT_EQ(MOJO_RESULT_OK, |
430 mp1->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 123)); | 431 mp1->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123)); |
431 | 432 |
432 BootstrapMessagePipeNoWait(1, mp1); | 433 BootstrapMessagePipeNoWait(1, mp1); |
433 | 434 |
434 // Wait. | 435 // Wait. |
435 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 436 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
436 EXPECT_EQ(123u, context); | 437 EXPECT_EQ(123u, context); |
437 mp1->RemoveWaiter(1, &waiter); | 438 mp1->RemoveWaiter(1, &waiter); |
438 | 439 |
439 // Read from MP 1, port 1. | 440 // Read from MP 1, port 1. |
440 EXPECT_EQ(MOJO_RESULT_OK, | 441 EXPECT_EQ(MOJO_RESULT_OK, |
(...skipping 24 matching lines...) Expand all Loading... |
465 // We'll try to pass this dispatcher. | 466 // We'll try to pass this dispatcher. |
466 scoped_refptr<MessagePipeDispatcher> dispatcher(new MessagePipeDispatcher( | 467 scoped_refptr<MessagePipeDispatcher> dispatcher(new MessagePipeDispatcher( |
467 MessagePipeDispatcher::kDefaultCreateOptions)); | 468 MessagePipeDispatcher::kDefaultCreateOptions)); |
468 scoped_refptr<MessagePipe> local_mp(new MessagePipe()); | 469 scoped_refptr<MessagePipe> local_mp(new MessagePipe()); |
469 dispatcher->Init(local_mp, 0); | 470 dispatcher->Init(local_mp, 0); |
470 | 471 |
471 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do | 472 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do |
472 // it later, it might already be readable.) | 473 // it later, it might already be readable.) |
473 waiter.Init(); | 474 waiter.Init(); |
474 EXPECT_EQ(MOJO_RESULT_OK, | 475 EXPECT_EQ(MOJO_RESULT_OK, |
475 mp1->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 123)); | 476 mp1->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123)); |
476 | 477 |
477 // Write to MP 0, port 0. | 478 // Write to MP 0, port 0. |
478 { | 479 { |
479 DispatcherTransport | 480 DispatcherTransport |
480 transport(test::DispatcherTryStartTransport(dispatcher.get())); | 481 transport(test::DispatcherTryStartTransport(dispatcher.get())); |
481 EXPECT_TRUE(transport.is_valid()); | 482 EXPECT_TRUE(transport.is_valid()); |
482 | 483 |
483 std::vector<DispatcherTransport> transports; | 484 std::vector<DispatcherTransport> transports; |
484 transports.push_back(transport); | 485 transports.push_back(transport); |
485 EXPECT_EQ(MOJO_RESULT_OK, | 486 EXPECT_EQ(MOJO_RESULT_OK, |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
521 EXPECT_EQ(MOJO_RESULT_OK, | 522 EXPECT_EQ(MOJO_RESULT_OK, |
522 local_mp->WriteMessage(1, kHello, sizeof(kHello), NULL, | 523 local_mp->WriteMessage(1, kHello, sizeof(kHello), NULL, |
523 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 524 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
524 | 525 |
525 // TODO(vtl): FIXME -- We (racily) crash if I close |dispatcher| immediately | 526 // TODO(vtl): FIXME -- We (racily) crash if I close |dispatcher| immediately |
526 // here. (We don't crash if I sleep and then close.) | 527 // here. (We don't crash if I sleep and then close.) |
527 | 528 |
528 // Wait for the dispatcher to become readable. | 529 // Wait for the dispatcher to become readable. |
529 waiter.Init(); | 530 waiter.Init(); |
530 EXPECT_EQ(MOJO_RESULT_OK, | 531 EXPECT_EQ(MOJO_RESULT_OK, |
531 dispatcher->AddWaiter(&waiter, MOJO_WAIT_FLAG_READABLE, 456)); | 532 dispatcher->AddWaiter(&waiter, MOJO_HANDLE_SIGNAL_READABLE, 456)); |
532 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 533 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
533 EXPECT_EQ(456u, context); | 534 EXPECT_EQ(456u, context); |
534 dispatcher->RemoveWaiter(&waiter); | 535 dispatcher->RemoveWaiter(&waiter); |
535 | 536 |
536 // Read from the dispatcher. | 537 // Read from the dispatcher. |
537 memset(read_buffer, 0, sizeof(read_buffer)); | 538 memset(read_buffer, 0, sizeof(read_buffer)); |
538 read_buffer_size = static_cast<uint32_t>(sizeof(read_buffer)); | 539 read_buffer_size = static_cast<uint32_t>(sizeof(read_buffer)); |
539 EXPECT_EQ(MOJO_RESULT_OK, | 540 EXPECT_EQ(MOJO_RESULT_OK, |
540 dispatcher->ReadMessage(read_buffer, &read_buffer_size, 0, NULL, | 541 dispatcher->ReadMessage(read_buffer, &read_buffer_size, 0, NULL, |
541 MOJO_READ_MESSAGE_FLAG_NONE)); | 542 MOJO_READ_MESSAGE_FLAG_NONE)); |
542 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); | 543 EXPECT_EQ(sizeof(kHello), static_cast<size_t>(read_buffer_size)); |
543 EXPECT_STREQ(kHello, read_buffer); | 544 EXPECT_STREQ(kHello, read_buffer); |
544 | 545 |
545 // Prepare to wait on "local_mp", port 1. | 546 // Prepare to wait on "local_mp", port 1. |
546 waiter.Init(); | 547 waiter.Init(); |
547 EXPECT_EQ(MOJO_RESULT_OK, | 548 EXPECT_EQ(MOJO_RESULT_OK, |
548 local_mp->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 789)); | 549 local_mp->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 789)); |
549 | 550 |
550 // Write to the dispatcher. | 551 // Write to the dispatcher. |
551 EXPECT_EQ(MOJO_RESULT_OK, | 552 EXPECT_EQ(MOJO_RESULT_OK, |
552 dispatcher->WriteMessage(kHello, sizeof(kHello), NULL, | 553 dispatcher->WriteMessage(kHello, sizeof(kHello), NULL, |
553 MOJO_WRITE_MESSAGE_FLAG_NONE)); | 554 MOJO_WRITE_MESSAGE_FLAG_NONE)); |
554 | 555 |
555 // Wait. | 556 // Wait. |
556 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); | 557 EXPECT_EQ(MOJO_RESULT_OK, waiter.Wait(MOJO_DEADLINE_INDEFINITE, &context)); |
557 EXPECT_EQ(789u, context); | 558 EXPECT_EQ(789u, context); |
558 local_mp->RemoveWaiter(1, &waiter); | 559 local_mp->RemoveWaiter(1, &waiter); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 ASSERT_TRUE(mapping0->base()); | 614 ASSERT_TRUE(mapping0->base()); |
614 ASSERT_EQ(100u, mapping0->length()); | 615 ASSERT_EQ(100u, mapping0->length()); |
615 static_cast<char*>(mapping0->base())[0] = 'A'; | 616 static_cast<char*>(mapping0->base())[0] = 'A'; |
616 static_cast<char*>(mapping0->base())[50] = 'B'; | 617 static_cast<char*>(mapping0->base())[50] = 'B'; |
617 static_cast<char*>(mapping0->base())[99] = 'C'; | 618 static_cast<char*>(mapping0->base())[99] = 'C'; |
618 | 619 |
619 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do | 620 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do |
620 // it later, it might already be readable.) | 621 // it later, it might already be readable.) |
621 waiter.Init(); | 622 waiter.Init(); |
622 EXPECT_EQ(MOJO_RESULT_OK, | 623 EXPECT_EQ(MOJO_RESULT_OK, |
623 mp1->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 123)); | 624 mp1->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123)); |
624 | 625 |
625 // Write to MP 0, port 0. | 626 // Write to MP 0, port 0. |
626 { | 627 { |
627 DispatcherTransport | 628 DispatcherTransport |
628 transport(test::DispatcherTryStartTransport(dispatcher.get())); | 629 transport(test::DispatcherTryStartTransport(dispatcher.get())); |
629 EXPECT_TRUE(transport.is_valid()); | 630 EXPECT_TRUE(transport.is_valid()); |
630 | 631 |
631 std::vector<DispatcherTransport> transports; | 632 std::vector<DispatcherTransport> transports; |
632 transports.push_back(transport); | 633 transports.push_back(transport); |
633 EXPECT_EQ(MOJO_RESULT_OK, | 634 EXPECT_EQ(MOJO_RESULT_OK, |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 // We'll try to pass this dispatcher, which will cause a |PlatformHandle| to | 725 // We'll try to pass this dispatcher, which will cause a |PlatformHandle| to |
725 // be passed. | 726 // be passed. |
726 scoped_refptr<PlatformHandleDispatcher> dispatcher( | 727 scoped_refptr<PlatformHandleDispatcher> dispatcher( |
727 new PlatformHandleDispatcher( | 728 new PlatformHandleDispatcher( |
728 mojo::test::PlatformHandleFromFILE(fp.Pass()))); | 729 mojo::test::PlatformHandleFromFILE(fp.Pass()))); |
729 | 730 |
730 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do | 731 // Prepare to wait on MP 1, port 1. (Add the waiter now. Otherwise, if we do |
731 // it later, it might already be readable.) | 732 // it later, it might already be readable.) |
732 waiter.Init(); | 733 waiter.Init(); |
733 EXPECT_EQ(MOJO_RESULT_OK, | 734 EXPECT_EQ(MOJO_RESULT_OK, |
734 mp1->AddWaiter(1, &waiter, MOJO_WAIT_FLAG_READABLE, 123)); | 735 mp1->AddWaiter(1, &waiter, MOJO_HANDLE_SIGNAL_READABLE, 123)); |
735 | 736 |
736 // Write to MP 0, port 0. | 737 // Write to MP 0, port 0. |
737 { | 738 { |
738 DispatcherTransport | 739 DispatcherTransport |
739 transport(test::DispatcherTryStartTransport(dispatcher.get())); | 740 transport(test::DispatcherTryStartTransport(dispatcher.get())); |
740 EXPECT_TRUE(transport.is_valid()); | 741 EXPECT_TRUE(transport.is_valid()); |
741 | 742 |
742 std::vector<DispatcherTransport> transports; | 743 std::vector<DispatcherTransport> transports; |
743 transports.push_back(transport); | 744 transports.push_back(transport); |
744 EXPECT_EQ(MOJO_RESULT_OK, | 745 EXPECT_EQ(MOJO_RESULT_OK, |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
833 | 834 |
834 mp1->Close(1); | 835 mp1->Close(1); |
835 | 836 |
836 RestoreInitialState(); | 837 RestoreInitialState(); |
837 } | 838 } |
838 } | 839 } |
839 | 840 |
840 } // namespace | 841 } // namespace |
841 } // namespace system | 842 } // namespace system |
842 } // namespace mojo | 843 } // namespace mojo |
OLD | NEW |