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

Side by Side Diff: mojo/edk/system/multiprocess_message_pipe_unittest.cc

Issue 1529303004: Convert Pass()→std::move() in mojo/edk/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « mojo/edk/system/message_pipe_perftest.cc ('k') | mojo/edk/system/platform_handle_dispatcher.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include <stdint.h> 5 #include <stdint.h>
6 #include <stdio.h> 6 #include <stdio.h>
7 #include <string.h> 7 #include <string.h>
8
9 #include <string> 8 #include <string>
9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
14 #include "base/files/file_util.h" 14 #include "base/files/file_util.h"
15 #include "base/files/scoped_file.h" 15 #include "base/files/scoped_file.h"
16 #include "base/files/scoped_temp_dir.h" 16 #include "base/files/scoped_temp_dir.h"
17 #include "base/location.h" 17 #include "base/location.h"
18 #include "base/logging.h" 18 #include "base/logging.h"
19 #include "build/build_config.h" 19 #include "build/build_config.h"
(...skipping 17 matching lines...) Expand all
37 37
38 class MultiprocessMessagePipeTest 38 class MultiprocessMessagePipeTest
39 : public test::MultiprocessMessagePipeTestBase {}; 39 : public test::MultiprocessMessagePipeTestBase {};
40 40
41 // For each message received, sends a reply message with the same contents 41 // For each message received, sends a reply message with the same contents
42 // repeated twice, until the other end is closed or it receives "quitquitquit" 42 // repeated twice, until the other end is closed or it receives "quitquitquit"
43 // (which it doesn't reply to). It'll return the number of messages received, 43 // (which it doesn't reply to). It'll return the number of messages received,
44 // not including any "quitquitquit" message, modulo 100. 44 // not including any "quitquitquit" message, modulo 100.
45 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(EchoEcho) { 45 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(EchoEcho) {
46 ScopedPlatformHandle client_platform_handle = 46 ScopedPlatformHandle client_platform_handle =
47 test::MultiprocessTestHelper::client_platform_handle.Pass(); 47 std::move(test::MultiprocessTestHelper::client_platform_handle);
48 CHECK(client_platform_handle.is_valid()); 48 CHECK(client_platform_handle.is_valid());
49 ScopedMessagePipeHandle mp = 49 ScopedMessagePipeHandle mp =
50 CreateMessagePipe(client_platform_handle.Pass()); 50 CreateMessagePipe(std::move(client_platform_handle));
51 51
52 const std::string quitquitquit("quitquitquit"); 52 const std::string quitquitquit("quitquitquit");
53 int rv = 0; 53 int rv = 0;
54 for (;; rv = (rv + 1) % 100) { 54 for (;; rv = (rv + 1) % 100) {
55 // Wait for our end of the message pipe to be readable. 55 // Wait for our end of the message pipe to be readable.
56 HandleSignalsState hss; 56 HandleSignalsState hss;
57 MojoResult result = 57 MojoResult result =
58 MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE, 58 MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
59 MOJO_DEADLINE_INDEFINITE, &hss); 59 MOJO_DEADLINE_INDEFINITE, &hss);
60 if (result != MOJO_RESULT_OK) { 60 if (result != MOJO_RESULT_OK) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 // Sends "hello" to child, and expects "hellohello" back. 95 // Sends "hello" to child, and expects "hellohello" back.
96 #if defined(OS_ANDROID) 96 #if defined(OS_ANDROID)
97 // Android multi-process tests are not executing the new process. This is flaky. 97 // Android multi-process tests are not executing the new process. This is flaky.
98 #define MAYBE_Basic DISABLED_Basic 98 #define MAYBE_Basic DISABLED_Basic
99 #else 99 #else
100 #define MAYBE_Basic Basic 100 #define MAYBE_Basic Basic
101 #endif // defined(OS_ANDROID) 101 #endif // defined(OS_ANDROID)
102 TEST_F(MultiprocessMessagePipeTest, MAYBE_Basic) { 102 TEST_F(MultiprocessMessagePipeTest, MAYBE_Basic) {
103 helper()->StartChild("EchoEcho"); 103 helper()->StartChild("EchoEcho");
104 104
105 ScopedMessagePipeHandle mp = CreateMessagePipe( 105 ScopedMessagePipeHandle mp =
106 helper()->server_platform_handle.Pass()); 106 CreateMessagePipe(std::move(helper()->server_platform_handle));
107 107
108 std::string hello("hello"); 108 std::string hello("hello");
109 ASSERT_EQ(MOJO_RESULT_OK, 109 ASSERT_EQ(MOJO_RESULT_OK,
110 MojoWriteMessage(mp.get().value(), hello.data(), 110 MojoWriteMessage(mp.get().value(), hello.data(),
111 static_cast<uint32_t>(hello.size()), nullptr, 0u, 111 static_cast<uint32_t>(hello.size()), nullptr, 0u,
112 MOJO_WRITE_MESSAGE_FLAG_NONE)); 112 MOJO_WRITE_MESSAGE_FLAG_NONE));
113 113
114 HandleSignalsState hss; 114 HandleSignalsState hss;
115 ASSERT_EQ(MOJO_RESULT_OK, 115 ASSERT_EQ(MOJO_RESULT_OK,
116 MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE, 116 MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
(...skipping 24 matching lines...) Expand all
141 // for the child to close its end before quitting. 141 // for the child to close its end before quitting.
142 #if defined(OS_ANDROID) 142 #if defined(OS_ANDROID)
143 // Android multi-process tests are not executing the new process. This is flaky. 143 // Android multi-process tests are not executing the new process. This is flaky.
144 #define MAYBE_QueueMessages DISABLED_QueueMessages 144 #define MAYBE_QueueMessages DISABLED_QueueMessages
145 #else 145 #else
146 #define MAYBE_QueueMessages QueueMessages 146 #define MAYBE_QueueMessages QueueMessages
147 #endif // defined(OS_ANDROID) 147 #endif // defined(OS_ANDROID)
148 TEST_F(MultiprocessMessagePipeTest, MAYBE_QueueMessages) { 148 TEST_F(MultiprocessMessagePipeTest, MAYBE_QueueMessages) {
149 helper()->StartChild("EchoEcho"); 149 helper()->StartChild("EchoEcho");
150 150
151 ScopedMessagePipeHandle mp = CreateMessagePipe( 151 ScopedMessagePipeHandle mp =
152 helper()->server_platform_handle.Pass()); 152 CreateMessagePipe(std::move(helper()->server_platform_handle));
153 153
154 static const size_t kNumMessages = 1001; 154 static const size_t kNumMessages = 1001;
155 for (size_t i = 0; i < kNumMessages; i++) { 155 for (size_t i = 0; i < kNumMessages; i++) {
156 std::string write_buffer(i, 'A' + (i % 26)); 156 std::string write_buffer(i, 'A' + (i % 26));
157 ASSERT_EQ(MOJO_RESULT_OK, 157 ASSERT_EQ(MOJO_RESULT_OK,
158 MojoWriteMessage(mp.get().value(), write_buffer.data(), 158 MojoWriteMessage(mp.get().value(), write_buffer.data(),
159 static_cast<uint32_t>(write_buffer.size()), 159 static_cast<uint32_t>(write_buffer.size()),
160 nullptr, 0u, MOJO_WRITE_MESSAGE_FLAG_NONE)); 160 nullptr, 0u, MOJO_WRITE_MESSAGE_FLAG_NONE));
161 } 161 }
162 162
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 MOJO_DEADLINE_INDEFINITE, &hss)); 196 MOJO_DEADLINE_INDEFINITE, &hss));
197 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals); 197 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
198 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals); 198 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
199 199
200 ASSERT_EQ(static_cast<int>(kNumMessages % 100), 200 ASSERT_EQ(static_cast<int>(kNumMessages % 100),
201 helper()->WaitForChildShutdown()); 201 helper()->WaitForChildShutdown());
202 } 202 }
203 203
204 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(CheckSharedBuffer) { 204 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(CheckSharedBuffer) {
205 ScopedPlatformHandle client_platform_handle = 205 ScopedPlatformHandle client_platform_handle =
206 test::MultiprocessTestHelper::client_platform_handle.Pass(); 206 std::move(test::MultiprocessTestHelper::client_platform_handle);
207 CHECK(client_platform_handle.is_valid()); 207 CHECK(client_platform_handle.is_valid());
208 ScopedMessagePipeHandle mp = 208 ScopedMessagePipeHandle mp =
209 CreateMessagePipe(client_platform_handle.Pass()); 209 CreateMessagePipe(std::move(client_platform_handle));
210 210
211 // Wait for the first message from our parent. 211 // Wait for the first message from our parent.
212 HandleSignalsState hss; 212 HandleSignalsState hss;
213 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE, 213 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
214 MOJO_DEADLINE_INDEFINITE, &hss), 214 MOJO_DEADLINE_INDEFINITE, &hss),
215 MOJO_RESULT_OK); 215 MOJO_RESULT_OK);
216 // In this test, the parent definitely doesn't close its end of the message 216 // In this test, the parent definitely doesn't close its end of the message
217 // pipe before we do. 217 // pipe before we do.
218 CHECK_EQ(hss.satisfied_signals, 218 CHECK_EQ(hss.satisfied_signals,
219 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE); 219 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 284
285 #if defined(OS_ANDROID) 285 #if defined(OS_ANDROID)
286 // Android multi-process tests are not executing the new process. This is flaky. 286 // Android multi-process tests are not executing the new process. This is flaky.
287 #define MAYBE_SharedBufferPassing DISABLED_SharedBufferPassing 287 #define MAYBE_SharedBufferPassing DISABLED_SharedBufferPassing
288 #else 288 #else
289 #define MAYBE_SharedBufferPassing SharedBufferPassing 289 #define MAYBE_SharedBufferPassing SharedBufferPassing
290 #endif 290 #endif
291 TEST_F(MultiprocessMessagePipeTest, MAYBE_SharedBufferPassing) { 291 TEST_F(MultiprocessMessagePipeTest, MAYBE_SharedBufferPassing) {
292 helper()->StartChild("CheckSharedBuffer"); 292 helper()->StartChild("CheckSharedBuffer");
293 293
294 ScopedMessagePipeHandle mp = CreateMessagePipe( 294 ScopedMessagePipeHandle mp =
295 helper()->server_platform_handle.Pass()); 295 CreateMessagePipe(std::move(helper()->server_platform_handle));
296 296
297 // Make a shared buffer. 297 // Make a shared buffer.
298 MojoCreateSharedBufferOptions options; 298 MojoCreateSharedBufferOptions options;
299 options.struct_size = sizeof(options); 299 options.struct_size = sizeof(options);
300 options.flags = MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE; 300 options.flags = MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE;
301 301
302 MojoHandle shared_buffer; 302 MojoHandle shared_buffer;
303 ASSERT_EQ(MOJO_RESULT_OK, 303 ASSERT_EQ(MOJO_RESULT_OK,
304 MojoCreateSharedBuffer(&options, 100, &shared_buffer)); 304 MojoCreateSharedBuffer(&options, 100, &shared_buffer));
305 305
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals); 365 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfied_signals);
366 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals); 366 ASSERT_EQ(MOJO_HANDLE_SIGNAL_PEER_CLOSED, hss.satisfiable_signals);
367 367
368 MojoClose(mp.release().value()); 368 MojoClose(mp.release().value());
369 369
370 ASSERT_EQ(0, helper()->WaitForChildShutdown()); 370 ASSERT_EQ(0, helper()->WaitForChildShutdown());
371 } 371 }
372 372
373 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(CheckPlatformHandleFile) { 373 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(CheckPlatformHandleFile) {
374 ScopedPlatformHandle client_platform_handle = 374 ScopedPlatformHandle client_platform_handle =
375 test::MultiprocessTestHelper::client_platform_handle.Pass(); 375 std::move(test::MultiprocessTestHelper::client_platform_handle);
376 CHECK(client_platform_handle.is_valid()); 376 CHECK(client_platform_handle.is_valid());
377 ScopedMessagePipeHandle mp = 377 ScopedMessagePipeHandle mp =
378 CreateMessagePipe(client_platform_handle.Pass()); 378 CreateMessagePipe(std::move(client_platform_handle));
379 379
380 HandleSignalsState hss; 380 HandleSignalsState hss;
381 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE, 381 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
382 MOJO_DEADLINE_INDEFINITE, &hss), 382 MOJO_DEADLINE_INDEFINITE, &hss),
383 MOJO_RESULT_OK); 383 MOJO_RESULT_OK);
384 CHECK_EQ(hss.satisfied_signals, 384 CHECK_EQ(hss.satisfied_signals,
385 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE); 385 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE);
386 CHECK_EQ(hss.satisfiable_signals, MOJO_HANDLE_SIGNAL_READABLE | 386 CHECK_EQ(hss.satisfiable_signals, MOJO_HANDLE_SIGNAL_READABLE |
387 MOJO_HANDLE_SIGNAL_WRITABLE | 387 MOJO_HANDLE_SIGNAL_WRITABLE |
388 MOJO_HANDLE_SIGNAL_PEER_CLOSED); 388 MOJO_HANDLE_SIGNAL_PEER_CLOSED);
(...skipping 17 matching lines...) Expand all
406 CHECK_GT(num_handles, 0); 406 CHECK_GT(num_handles, 0);
407 407
408 for (int i = 0; i < num_handles; ++i) { 408 for (int i = 0; i < num_handles; ++i) {
409 ScopedPlatformHandle h; 409 ScopedPlatformHandle h;
410 CHECK_EQ(PassWrappedPlatformHandle( 410 CHECK_EQ(PassWrappedPlatformHandle(
411 handles[i], &h), 411 handles[i], &h),
412 MOJO_RESULT_OK); 412 MOJO_RESULT_OK);
413 CHECK(h.is_valid()); 413 CHECK(h.is_valid());
414 MojoClose(handles[i]); 414 MojoClose(handles[i]);
415 415
416 base::ScopedFILE fp(test::FILEFromPlatformHandle(h.Pass(), "r")); 416 base::ScopedFILE fp(test::FILEFromPlatformHandle(std::move(h), "r"));
417 CHECK(fp); 417 CHECK(fp);
418 std::string fread_buffer(100, '\0'); 418 std::string fread_buffer(100, '\0');
419 size_t bytes_read = 419 size_t bytes_read =
420 fread(&fread_buffer[0], 1, fread_buffer.size(), fp.get()); 420 fread(&fread_buffer[0], 1, fread_buffer.size(), fp.get());
421 fread_buffer.resize(bytes_read); 421 fread_buffer.resize(bytes_read);
422 CHECK_EQ(fread_buffer, "world"); 422 CHECK_EQ(fread_buffer, "world");
423 } 423 }
424 424
425 return 0; 425 return 0;
426 } 426 }
427 427
428 class MultiprocessMessagePipeTestWithPipeCount 428 class MultiprocessMessagePipeTestWithPipeCount
429 : public test::MultiprocessMessagePipeTestBase, 429 : public test::MultiprocessMessagePipeTestBase,
430 public testing::WithParamInterface<size_t> {}; 430 public testing::WithParamInterface<size_t> {};
431 431
432 TEST_P(MultiprocessMessagePipeTestWithPipeCount, PlatformHandlePassing) { 432 TEST_P(MultiprocessMessagePipeTestWithPipeCount, PlatformHandlePassing) {
433 base::ScopedTempDir temp_dir; 433 base::ScopedTempDir temp_dir;
434 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); 434 ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
435 435
436 helper()->StartChild("CheckPlatformHandleFile"); 436 helper()->StartChild("CheckPlatformHandleFile");
437 ScopedMessagePipeHandle mp = CreateMessagePipe( 437 ScopedMessagePipeHandle mp =
438 helper()->server_platform_handle.Pass()); 438 CreateMessagePipe(std::move(helper()->server_platform_handle));
439 439
440 std::vector<MojoHandle> handles; 440 std::vector<MojoHandle> handles;
441 441
442 size_t pipe_count = GetParam(); 442 size_t pipe_count = GetParam();
443 for (size_t i = 0; i < pipe_count; ++i) { 443 for (size_t i = 0; i < pipe_count; ++i) {
444 base::FilePath unused; 444 base::FilePath unused;
445 base::ScopedFILE fp( 445 base::ScopedFILE fp(
446 CreateAndOpenTemporaryFileInDir(temp_dir.path(), &unused)); 446 CreateAndOpenTemporaryFileInDir(temp_dir.path(), &unused));
447 const std::string world("world"); 447 const std::string world("world");
448 CHECK_EQ(fwrite(&world[0], 1, world.size(), fp.get()), world.size()); 448 CHECK_EQ(fwrite(&world[0], 1, world.size(), fp.get()), world.size());
449 fflush(fp.get()); 449 fflush(fp.get());
450 rewind(fp.get()); 450 rewind(fp.get());
451 MojoHandle handle; 451 MojoHandle handle;
452 ASSERT_EQ(CreatePlatformHandleWrapper( 452 ASSERT_EQ(
453 ScopedPlatformHandle(test::PlatformHandleFromFILE(fp.Pass())), 453 CreatePlatformHandleWrapper(
454 &handle), 454 ScopedPlatformHandle(test::PlatformHandleFromFILE(std::move(fp))),
455 MOJO_RESULT_OK); 455 &handle),
456 MOJO_RESULT_OK);
456 handles.push_back(handle); 457 handles.push_back(handle);
457 } 458 }
458 459
459 char message[128]; 460 char message[128];
460 sprintf(message, "hello %d", static_cast<int>(pipe_count)); 461 sprintf(message, "hello %d", static_cast<int>(pipe_count));
461 ASSERT_EQ(MOJO_RESULT_OK, 462 ASSERT_EQ(MOJO_RESULT_OK,
462 MojoWriteMessage(mp.get().value(), message, 463 MojoWriteMessage(mp.get().value(), message,
463 static_cast<uint32_t>(strlen(message)), 464 static_cast<uint32_t>(strlen(message)),
464 &handles[0], static_cast<uint32_t>(handles.size()), 465 &handles[0], static_cast<uint32_t>(handles.size()),
465 MOJO_WRITE_MESSAGE_FLAG_NONE)); 466 MOJO_WRITE_MESSAGE_FLAG_NONE));
(...skipping 13 matching lines...) Expand all
479 480
480 // Android multi-process tests are not executing the new process. This is flaky. 481 // Android multi-process tests are not executing the new process. This is flaky.
481 #if !defined(OS_ANDROID) 482 #if !defined(OS_ANDROID)
482 INSTANTIATE_TEST_CASE_P(PipeCount, 483 INSTANTIATE_TEST_CASE_P(PipeCount,
483 MultiprocessMessagePipeTestWithPipeCount, 484 MultiprocessMessagePipeTestWithPipeCount,
484 testing::Values(1u, 128u, 140u)); 485 testing::Values(1u, 128u, 140u));
485 #endif 486 #endif
486 487
487 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(CheckMessagePipe) { 488 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(CheckMessagePipe) {
488 ScopedPlatformHandle client_platform_handle = 489 ScopedPlatformHandle client_platform_handle =
489 test::MultiprocessTestHelper::client_platform_handle.Pass(); 490 std::move(test::MultiprocessTestHelper::client_platform_handle);
490 CHECK(client_platform_handle.is_valid()); 491 CHECK(client_platform_handle.is_valid());
491 492
492 ScopedMessagePipeHandle mp = 493 ScopedMessagePipeHandle mp =
493 CreateMessagePipe(client_platform_handle.Pass()); 494 CreateMessagePipe(std::move(client_platform_handle));
494 495
495 // Wait for the first message from our parent. 496 // Wait for the first message from our parent.
496 HandleSignalsState hss; 497 HandleSignalsState hss;
497 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE, 498 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
498 MOJO_DEADLINE_INDEFINITE, &hss), 499 MOJO_DEADLINE_INDEFINITE, &hss),
499 MOJO_RESULT_OK); 500 MOJO_RESULT_OK);
500 // In this test, the parent definitely doesn't close its end of the message 501 // In this test, the parent definitely doesn't close its end of the message
501 // pipe before we do. 502 // pipe before we do.
502 CHECK_EQ(hss.satisfied_signals, 503 CHECK_EQ(hss.satisfied_signals,
503 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE); 504 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 #if defined(OS_ANDROID) 547 #if defined(OS_ANDROID)
547 // Android multi-process tests are not executing the new process. This is flaky. 548 // Android multi-process tests are not executing the new process. This is flaky.
548 #define MAYBE_MessagePipePassing DISABLED_MessagePipePassing 549 #define MAYBE_MessagePipePassing DISABLED_MessagePipePassing
549 #else 550 #else
550 #define MAYBE_MessagePipePassing MessagePipePassing 551 #define MAYBE_MessagePipePassing MessagePipePassing
551 #endif 552 #endif
552 TEST_F(MultiprocessMessagePipeTest, MAYBE_MessagePipePassing) { 553 TEST_F(MultiprocessMessagePipeTest, MAYBE_MessagePipePassing) {
553 helper()->StartChild("CheckMessagePipe"); 554 helper()->StartChild("CheckMessagePipe");
554 555
555 ScopedMessagePipeHandle mp = 556 ScopedMessagePipeHandle mp =
556 CreateMessagePipe(helper()->server_platform_handle.Pass()); 557 CreateMessagePipe(std::move(helper()->server_platform_handle));
557 MojoCreateSharedBufferOptions options; 558 MojoCreateSharedBufferOptions options;
558 options.struct_size = sizeof(options); 559 options.struct_size = sizeof(options);
559 options.flags = MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE; 560 options.flags = MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE;
560 561
561 MojoHandle mp1, mp2; 562 MojoHandle mp1, mp2;
562 ASSERT_EQ(MOJO_RESULT_OK, 563 ASSERT_EQ(MOJO_RESULT_OK,
563 MojoCreateMessagePipe(nullptr, &mp1, &mp2)); 564 MojoCreateMessagePipe(nullptr, &mp1, &mp2));
564 565
565 // Write a string into one end of the new message pipe and send the other end. 566 // Write a string into one end of the new message pipe and send the other end.
566 const std::string hello("hello"); 567 const std::string hello("hello");
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 #if defined(OS_ANDROID) 600 #if defined(OS_ANDROID)
600 // Android multi-process tests are not executing the new process. This is flaky. 601 // Android multi-process tests are not executing the new process. This is flaky.
601 #define MAYBE_MessagePipeTwoPassing DISABLED_MessagePipeTwoPassing 602 #define MAYBE_MessagePipeTwoPassing DISABLED_MessagePipeTwoPassing
602 #else 603 #else
603 #define MAYBE_MessagePipeTwoPassing MessagePipeTwoPassing 604 #define MAYBE_MessagePipeTwoPassing MessagePipeTwoPassing
604 #endif 605 #endif
605 TEST_F(MultiprocessMessagePipeTest, MAYBE_MessagePipeTwoPassing) { 606 TEST_F(MultiprocessMessagePipeTest, MAYBE_MessagePipeTwoPassing) {
606 helper()->StartChild("CheckMessagePipe"); 607 helper()->StartChild("CheckMessagePipe");
607 608
608 ScopedMessagePipeHandle mp = 609 ScopedMessagePipeHandle mp =
609 CreateMessagePipe(helper()->server_platform_handle.Pass()); 610 CreateMessagePipe(std::move(helper()->server_platform_handle));
610 611
611 MojoHandle mp1, mp2; 612 MojoHandle mp1, mp2;
612 ASSERT_EQ(MOJO_RESULT_OK, 613 ASSERT_EQ(MOJO_RESULT_OK,
613 MojoCreateMessagePipe(nullptr, &mp2, &mp1)); 614 MojoCreateMessagePipe(nullptr, &mp2, &mp1));
614 615
615 // Write a string into one end of the new message pipe and send the other end. 616 // Write a string into one end of the new message pipe and send the other end.
616 const std::string hello("hello"); 617 const std::string hello("hello");
617 ASSERT_EQ(MOJO_RESULT_OK, 618 ASSERT_EQ(MOJO_RESULT_OK,
618 MojoWriteMessage(mp1, &hello[0], 619 MojoWriteMessage(mp1, &hello[0],
619 static_cast<uint32_t>(hello.size()), nullptr, 0u, 620 static_cast<uint32_t>(hello.size()), nullptr, 0u,
(...skipping 19 matching lines...) Expand all
639 read_buffer.resize(read_buffer_size); 640 read_buffer.resize(read_buffer_size);
640 CHECK_EQ(read_buffer, std::string("world")); 641 CHECK_EQ(read_buffer, std::string("world"));
641 642
642 MojoClose(mp.release().value()); 643 MojoClose(mp.release().value());
643 644
644 ASSERT_EQ(0, helper()->WaitForChildShutdown()); 645 ASSERT_EQ(0, helper()->WaitForChildShutdown());
645 } 646 }
646 647
647 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(DataPipeConsumer) { 648 MOJO_MULTIPROCESS_TEST_CHILD_MAIN(DataPipeConsumer) {
648 ScopedPlatformHandle client_platform_handle = 649 ScopedPlatformHandle client_platform_handle =
649 test::MultiprocessTestHelper::client_platform_handle.Pass(); 650 std::move(test::MultiprocessTestHelper::client_platform_handle);
650 CHECK(client_platform_handle.is_valid()); 651 CHECK(client_platform_handle.is_valid());
651 652
652 ScopedMessagePipeHandle mp = 653 ScopedMessagePipeHandle mp =
653 CreateMessagePipe(client_platform_handle.Pass()); 654 CreateMessagePipe(std::move(client_platform_handle));
654 655
655 // Wait for the first message from our parent. 656 // Wait for the first message from our parent.
656 HandleSignalsState hss; 657 HandleSignalsState hss;
657 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE, 658 CHECK_EQ(MojoWait(mp.get().value(), MOJO_HANDLE_SIGNAL_READABLE,
658 MOJO_DEADLINE_INDEFINITE, &hss), 659 MOJO_DEADLINE_INDEFINITE, &hss),
659 MOJO_RESULT_OK); 660 MOJO_RESULT_OK);
660 // In this test, the parent definitely doesn't close its end of the message 661 // In this test, the parent definitely doesn't close its end of the message
661 // pipe before we do. 662 // pipe before we do.
662 CHECK_EQ(hss.satisfied_signals, 663 CHECK_EQ(hss.satisfied_signals,
663 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE); 664 MOJO_HANDLE_SIGNAL_READABLE | MOJO_HANDLE_SIGNAL_WRITABLE);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 #if defined(OS_ANDROID) 707 #if defined(OS_ANDROID)
707 // Android multi-process tests are not executing the new process. This is flaky. 708 // Android multi-process tests are not executing the new process. This is flaky.
708 #define MAYBE_DataPipeConsumer DISABLED_DataPipeConsumer 709 #define MAYBE_DataPipeConsumer DISABLED_DataPipeConsumer
709 #else 710 #else
710 #define MAYBE_DataPipeConsumer DataPipeConsumer 711 #define MAYBE_DataPipeConsumer DataPipeConsumer
711 #endif 712 #endif
712 TEST_F(MultiprocessMessagePipeTest, MAYBE_DataPipeConsumer) { 713 TEST_F(MultiprocessMessagePipeTest, MAYBE_DataPipeConsumer) {
713 helper()->StartChild("DataPipeConsumer"); 714 helper()->StartChild("DataPipeConsumer");
714 715
715 ScopedMessagePipeHandle mp = 716 ScopedMessagePipeHandle mp =
716 CreateMessagePipe(helper()->server_platform_handle.Pass()); 717 CreateMessagePipe(std::move(helper()->server_platform_handle));
717 MojoCreateSharedBufferOptions options; 718 MojoCreateSharedBufferOptions options;
718 options.struct_size = sizeof(options); 719 options.struct_size = sizeof(options);
719 options.flags = MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE; 720 options.flags = MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE;
720 721
721 MojoHandle mp1, mp2; 722 MojoHandle mp1, mp2;
722 ASSERT_EQ(MOJO_RESULT_OK, 723 ASSERT_EQ(MOJO_RESULT_OK,
723 MojoCreateMessagePipe(nullptr, &mp2, &mp1)); 724 MojoCreateMessagePipe(nullptr, &mp2, &mp1));
724 725
725 // Write a string into one end of the new message pipe and send the other end. 726 // Write a string into one end of the new message pipe and send the other end.
726 const std::string hello("hello"); 727 const std::string hello("hello");
(...skipping 24 matching lines...) Expand all
751 752
752 MojoClose(mp1); 753 MojoClose(mp1);
753 MojoClose(mp.release().value()); 754 MojoClose(mp.release().value());
754 755
755 ASSERT_EQ(0, helper()->WaitForChildShutdown()); 756 ASSERT_EQ(0, helper()->WaitForChildShutdown());
756 } 757 }
757 758
758 } // namespace 759 } // namespace
759 } // namespace edk 760 } // namespace edk
760 } // namespace mojo 761 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/edk/system/message_pipe_perftest.cc ('k') | mojo/edk/system/platform_handle_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698