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

Side by Side Diff: mojo/system/core_unittest.cc

Issue 324783002: Mojo: Add a MojoCreateMessagePipeOptions struct parameter to MojoCreateMessagePipe. (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
« no previous file with comments | « mojo/system/core.cc ('k') | mojo/system/data_pipe.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 "mojo/system/core.h" 5 #include "mojo/system/core.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/threading/platform_thread.h" 10 #include "base/threading/platform_thread.h"
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 core()->WaitMany(handles, flags, 2, MOJO_DEADLINE_INDEFINITE)); 180 core()->WaitMany(handles, flags, 2, MOJO_DEADLINE_INDEFINITE));
181 181
182 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(handles[0])); 182 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(handles[0]));
183 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(handles[1])); 183 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(handles[1]));
184 } 184 }
185 185
186 // |CreateMessagePipe()|: 186 // |CreateMessagePipe()|:
187 { 187 {
188 MojoHandle h; 188 MojoHandle h;
189 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 189 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
190 core()->CreateMessagePipe(NULL, NULL)); 190 core()->CreateMessagePipe(NULL, NULL, NULL));
191 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 191 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
192 core()->CreateMessagePipe(&h, NULL)); 192 core()->CreateMessagePipe(NULL, &h, NULL));
193 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 193 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
194 core()->CreateMessagePipe(NULL, &h)); 194 core()->CreateMessagePipe(NULL, NULL, &h));
195 } 195 }
196 196
197 // |WriteMessage()|: 197 // |WriteMessage()|:
198 // Only check arguments checked by |Core|, namely |handle|, |handles|, and 198 // Only check arguments checked by |Core|, namely |handle|, |handles|, and
199 // |num_handles|. 199 // |num_handles|.
200 { 200 {
201 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 201 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
202 core()->WriteMessage(MOJO_HANDLE_INVALID, NULL, 0, NULL, 0, 202 core()->WriteMessage(MOJO_HANDLE_INVALID, NULL, 0, NULL, 0,
203 MOJO_WRITE_MESSAGE_FLAG_NONE)); 203 MOJO_WRITE_MESSAGE_FLAG_NONE));
204 204
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 } 318 }
319 } 319 }
320 320
321 // TODO(vtl): test |Wait()| and |WaitMany()| properly 321 // TODO(vtl): test |Wait()| and |WaitMany()| properly
322 // - including |WaitMany()| with the same handle more than once (with 322 // - including |WaitMany()| with the same handle more than once (with
323 // same/different flags) 323 // same/different flags)
324 324
325 TEST_F(CoreTest, MessagePipe) { 325 TEST_F(CoreTest, MessagePipe) {
326 MojoHandle h[2]; 326 MojoHandle h[2];
327 327
328 EXPECT_EQ(MOJO_RESULT_OK, core()->CreateMessagePipe(&h[0], &h[1])); 328 EXPECT_EQ(MOJO_RESULT_OK, core()->CreateMessagePipe(NULL, &h[0], &h[1]));
329 // Should get two distinct, valid handles. 329 // Should get two distinct, valid handles.
330 EXPECT_NE(h[0], MOJO_HANDLE_INVALID); 330 EXPECT_NE(h[0], MOJO_HANDLE_INVALID);
331 EXPECT_NE(h[1], MOJO_HANDLE_INVALID); 331 EXPECT_NE(h[1], MOJO_HANDLE_INVALID);
332 EXPECT_NE(h[0], h[1]); 332 EXPECT_NE(h[0], h[1]);
333 333
334 // Neither should be readable. 334 // Neither should be readable.
335 MojoWaitFlags flags[2] = { MOJO_WAIT_FLAG_READABLE, MOJO_WAIT_FLAG_READABLE }; 335 MojoWaitFlags flags[2] = { MOJO_WAIT_FLAG_READABLE, MOJO_WAIT_FLAG_READABLE };
336 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED, 336 EXPECT_EQ(MOJO_RESULT_DEADLINE_EXCEEDED,
337 core()->WaitMany(h, flags, 2, 0)); 337 core()->WaitMany(h, flags, 2, 0));
338 338
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 const uint32_t kWorldSize = static_cast<uint32_t>(sizeof(kWorld)); 431 const uint32_t kWorldSize = static_cast<uint32_t>(sizeof(kWorld));
432 char buffer[100]; 432 char buffer[100];
433 const uint32_t kBufferSize = static_cast<uint32_t>(sizeof(buffer)); 433 const uint32_t kBufferSize = static_cast<uint32_t>(sizeof(buffer));
434 uint32_t num_bytes; 434 uint32_t num_bytes;
435 MojoHandle handles[10]; 435 MojoHandle handles[10];
436 uint32_t num_handles; 436 uint32_t num_handles;
437 MojoHandle h_received; 437 MojoHandle h_received;
438 438
439 MojoHandle h_passing[2]; 439 MojoHandle h_passing[2];
440 EXPECT_EQ(MOJO_RESULT_OK, 440 EXPECT_EQ(MOJO_RESULT_OK,
441 core()->CreateMessagePipe(&h_passing[0], &h_passing[1])); 441 core()->CreateMessagePipe(NULL, &h_passing[0], &h_passing[1]));
442 442
443 // Make sure that |h_passing[]| work properly. 443 // Make sure that |h_passing[]| work properly.
444 EXPECT_EQ(MOJO_RESULT_OK, 444 EXPECT_EQ(MOJO_RESULT_OK,
445 core()->WriteMessage(h_passing[0], 445 core()->WriteMessage(h_passing[0],
446 kHello, kHelloSize, 446 kHello, kHelloSize,
447 NULL, 0, 447 NULL, 0,
448 MOJO_WRITE_MESSAGE_FLAG_NONE)); 448 MOJO_WRITE_MESSAGE_FLAG_NONE));
449 EXPECT_EQ(MOJO_RESULT_OK, 449 EXPECT_EQ(MOJO_RESULT_OK,
450 core()->Wait(h_passing[1], MOJO_WAIT_FLAG_READABLE, 1000000000)); 450 core()->Wait(h_passing[1], MOJO_WAIT_FLAG_READABLE, 1000000000));
451 num_bytes = kBufferSize; 451 num_bytes = kBufferSize;
(...skipping 15 matching lines...) Expand all
467 &h_passing[0], 1, 467 &h_passing[0], 1,
468 MOJO_WRITE_MESSAGE_FLAG_NONE)); 468 MOJO_WRITE_MESSAGE_FLAG_NONE));
469 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT, 469 EXPECT_EQ(MOJO_RESULT_INVALID_ARGUMENT,
470 core()->WriteMessage(h_passing[0], 470 core()->WriteMessage(h_passing[0],
471 kHello, kHelloSize, 471 kHello, kHelloSize,
472 &h_passing[1], 1, 472 &h_passing[1], 1,
473 MOJO_WRITE_MESSAGE_FLAG_NONE)); 473 MOJO_WRITE_MESSAGE_FLAG_NONE));
474 474
475 MojoHandle h_passed[2]; 475 MojoHandle h_passed[2];
476 EXPECT_EQ(MOJO_RESULT_OK, 476 EXPECT_EQ(MOJO_RESULT_OK,
477 core()->CreateMessagePipe(&h_passed[0], &h_passed[1])); 477 core()->CreateMessagePipe(NULL, &h_passed[0], &h_passed[1]));
478 478
479 // Make sure that |h_passed[]| work properly. 479 // Make sure that |h_passed[]| work properly.
480 EXPECT_EQ(MOJO_RESULT_OK, 480 EXPECT_EQ(MOJO_RESULT_OK,
481 core()->WriteMessage(h_passed[0], 481 core()->WriteMessage(h_passed[0],
482 kHello, kHelloSize, 482 kHello, kHelloSize,
483 NULL, 0, 483 NULL, 0,
484 MOJO_WRITE_MESSAGE_FLAG_NONE)); 484 MOJO_WRITE_MESSAGE_FLAG_NONE));
485 EXPECT_EQ(MOJO_RESULT_OK, 485 EXPECT_EQ(MOJO_RESULT_OK,
486 core()->Wait(h_passed[1], MOJO_WAIT_FLAG_READABLE, 1000000000)); 486 core()->Wait(h_passed[1], MOJO_WAIT_FLAG_READABLE, 1000000000));
487 num_bytes = kBufferSize; 487 num_bytes = kBufferSize;
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
679 const char kWorld[] = "world!!!"; 679 const char kWorld[] = "world!!!";
680 const uint32_t kWorldSize = static_cast<uint32_t>(sizeof(kWorld)); 680 const uint32_t kWorldSize = static_cast<uint32_t>(sizeof(kWorld));
681 char buffer[100]; 681 char buffer[100];
682 const uint32_t kBufferSize = static_cast<uint32_t>(sizeof(buffer)); 682 const uint32_t kBufferSize = static_cast<uint32_t>(sizeof(buffer));
683 uint32_t num_bytes; 683 uint32_t num_bytes;
684 MojoHandle handles[10]; 684 MojoHandle handles[10];
685 uint32_t num_handles; 685 uint32_t num_handles;
686 686
687 MojoHandle h_passing[2]; 687 MojoHandle h_passing[2];
688 EXPECT_EQ(MOJO_RESULT_OK, 688 EXPECT_EQ(MOJO_RESULT_OK,
689 core()->CreateMessagePipe(&h_passing[0], &h_passing[1])); 689 core()->CreateMessagePipe(NULL, &h_passing[0], &h_passing[1]));
690 690
691 MojoHandle ph, ch; 691 MojoHandle ph, ch;
692 EXPECT_EQ(MOJO_RESULT_OK, 692 EXPECT_EQ(MOJO_RESULT_OK,
693 core()->CreateDataPipe(NULL, &ph, &ch)); 693 core()->CreateDataPipe(NULL, &ph, &ch));
694 694
695 // Send |ch| from |h_passing[0]| to |h_passing[1]|. 695 // Send |ch| from |h_passing[0]| to |h_passing[1]|.
696 EXPECT_EQ(MOJO_RESULT_OK, 696 EXPECT_EQ(MOJO_RESULT_OK,
697 core()->WriteMessage(h_passing[0], 697 core()->WriteMessage(h_passing[0],
698 kHello, kHelloSize, 698 kHello, kHelloSize,
699 &ch, 1, 699 &ch, 1,
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(h_passing[1])); 872 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(h_passing[1]));
873 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(ph)); 873 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(ph));
874 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(ch)); 874 EXPECT_EQ(MOJO_RESULT_OK, core()->Close(ch));
875 } 875 }
876 876
877 // TODO(vtl): Test |DuplicateBufferHandle()| and |MapBuffer()|. 877 // TODO(vtl): Test |DuplicateBufferHandle()| and |MapBuffer()|.
878 878
879 } // namespace 879 } // namespace
880 } // namespace system 880 } // namespace system
881 } // namespace mojo 881 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/system/core.cc ('k') | mojo/system/data_pipe.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698