| 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 |