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

Side by Side Diff: mojo/public/cpp/bindings/tests/union_unittest.cc

Issue 1475813002: Mojo C++ bindings: support passing associated interface pointers/requests in method parameter lists… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@25_use_multiplex_router
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
OLDNEW
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 <vector> 5 #include <vector>
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "mojo/message_pump/message_pump_mojo.h" 8 #include "mojo/message_pump/message_pump_mojo.h"
9 #include "mojo/public/cpp/bindings/array.h" 9 #include "mojo/public/cpp/bindings/array.h"
10 #include "mojo/public/cpp/bindings/binding.h" 10 #include "mojo/public/cpp/bindings/binding.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 pod1->set_f_int8(10); 119 pod1->set_f_int8(10);
120 120
121 size_t size = GetSerializedSize_(pod1, false); 121 size_t size = GetSerializedSize_(pod1, false);
122 EXPECT_EQ(16U, size); 122 EXPECT_EQ(16U, size);
123 123
124 mojo::internal::FixedBufferForTesting buf(size); 124 mojo::internal::FixedBufferForTesting buf(size);
125 internal::PodUnion_Data* data = nullptr; 125 internal::PodUnion_Data* data = nullptr;
126 SerializeUnion_(pod1.Pass(), &buf, &data, false); 126 SerializeUnion_(pod1.Pass(), &buf, &data, false);
127 127
128 PodUnionPtr pod2; 128 PodUnionPtr pod2;
129 Deserialize_(data, &pod2); 129 Deserialize_(data, &pod2, nullptr);
130 130
131 EXPECT_EQ(10, pod2->get_f_int8()); 131 EXPECT_EQ(10, pod2->get_f_int8());
132 EXPECT_TRUE(pod2->is_f_int8()); 132 EXPECT_TRUE(pod2->is_f_int8());
133 EXPECT_EQ(pod2->which(), PodUnion::Tag::F_INT8); 133 EXPECT_EQ(pod2->which(), PodUnion::Tag::F_INT8);
134 } 134 }
135 135
136 TEST(UnionTest, EnumSerialization) { 136 TEST(UnionTest, EnumSerialization) {
137 PodUnionPtr pod1(PodUnion::New()); 137 PodUnionPtr pod1(PodUnion::New());
138 pod1->set_f_enum(AN_ENUM_SECOND); 138 pod1->set_f_enum(AN_ENUM_SECOND);
139 139
140 size_t size = GetSerializedSize_(pod1, false); 140 size_t size = GetSerializedSize_(pod1, false);
141 EXPECT_EQ(16U, size); 141 EXPECT_EQ(16U, size);
142 142
143 mojo::internal::FixedBufferForTesting buf(size); 143 mojo::internal::FixedBufferForTesting buf(size);
144 internal::PodUnion_Data* data = nullptr; 144 internal::PodUnion_Data* data = nullptr;
145 SerializeUnion_(pod1.Pass(), &buf, &data, false); 145 SerializeUnion_(pod1.Pass(), &buf, &data, false);
146 146
147 PodUnionPtr pod2; 147 PodUnionPtr pod2;
148 Deserialize_(data, &pod2); 148 Deserialize_(data, &pod2, nullptr);
149 149
150 EXPECT_EQ(AN_ENUM_SECOND, pod2->get_f_enum()); 150 EXPECT_EQ(AN_ENUM_SECOND, pod2->get_f_enum());
151 EXPECT_TRUE(pod2->is_f_enum()); 151 EXPECT_TRUE(pod2->is_f_enum());
152 EXPECT_EQ(pod2->which(), PodUnion::Tag::F_ENUM); 152 EXPECT_EQ(pod2->which(), PodUnion::Tag::F_ENUM);
153 } 153 }
154 154
155 TEST(UnionTest, PodValidation) { 155 TEST(UnionTest, PodValidation) {
156 PodUnionPtr pod(PodUnion::New()); 156 PodUnionPtr pod(PodUnion::New());
157 pod->set_f_int8(10); 157 pod->set_f_int8(10);
158 158
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 193
194 // Check that dirty output buffers are handled correctly by serialization. 194 // Check that dirty output buffers are handled correctly by serialization.
195 data->size = 16U; 195 data->size = 16U;
196 data->tag = PodUnion::Tag::F_UINT16; 196 data->tag = PodUnion::Tag::F_UINT16;
197 data->data.f_f_int16 = 20; 197 data->data.f_f_int16 = 20;
198 198
199 SerializeUnion_(pod.Pass(), &buf, &data, true); 199 SerializeUnion_(pod.Pass(), &buf, &data, true);
200 EXPECT_TRUE(data->is_null()); 200 EXPECT_TRUE(data->is_null());
201 201
202 PodUnionPtr pod2; 202 PodUnionPtr pod2;
203 Deserialize_(data, &pod2); 203 Deserialize_(data, &pod2, nullptr);
204 EXPECT_TRUE(pod2.is_null()); 204 EXPECT_TRUE(pod2.is_null());
205 } 205 }
206 206
207 TEST(UnionTest, SerializeIsNullNotInlined) { 207 TEST(UnionTest, SerializeIsNullNotInlined) {
208 PodUnionPtr pod; 208 PodUnionPtr pod;
209 size_t size = GetSerializedSize_(pod, false); 209 size_t size = GetSerializedSize_(pod, false);
210 EXPECT_EQ(16U, size); 210 EXPECT_EQ(16U, size);
211 mojo::internal::FixedBufferForTesting buf(size); 211 mojo::internal::FixedBufferForTesting buf(size);
212 internal::PodUnion_Data* data = nullptr; 212 internal::PodUnion_Data* data = nullptr;
213 SerializeUnion_(pod.Pass(), &buf, &data, false); 213 SerializeUnion_(pod.Pass(), &buf, &data, false);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 size_t size = GetSerializedSize_(pod1, false); 302 size_t size = GetSerializedSize_(pod1, false);
303 mojo::internal::FixedBufferForTesting buf(size); 303 mojo::internal::FixedBufferForTesting buf(size);
304 internal::ObjectUnion_Data* data = nullptr; 304 internal::ObjectUnion_Data* data = nullptr;
305 SerializeUnion_(pod1.Pass(), &buf, &data, false); 305 SerializeUnion_(pod1.Pass(), &buf, &data, false);
306 306
307 std::vector<Handle> handles; 307 std::vector<Handle> handles;
308 data->EncodePointersAndHandles(&handles); 308 data->EncodePointersAndHandles(&handles);
309 data->DecodePointersAndHandles(&handles); 309 data->DecodePointersAndHandles(&handles);
310 310
311 ObjectUnionPtr pod2; 311 ObjectUnionPtr pod2;
312 Deserialize_(data, &pod2); 312 Deserialize_(data, &pod2, nullptr);
313 EXPECT_EQ(hello, pod2->get_f_string()); 313 EXPECT_EQ(hello, pod2->get_f_string());
314 EXPECT_TRUE(pod2->is_f_string()); 314 EXPECT_TRUE(pod2->is_f_string());
315 EXPECT_EQ(pod2->which(), ObjectUnion::Tag::F_STRING); 315 EXPECT_EQ(pod2->which(), ObjectUnion::Tag::F_STRING);
316 } 316 }
317 317
318 TEST(UnionTest, NullStringValidation) { 318 TEST(UnionTest, NullStringValidation) {
319 size_t size = sizeof(internal::ObjectUnion_Data); 319 size_t size = sizeof(internal::ObjectUnion_Data);
320 mojo::internal::FixedBufferForTesting buf(size); 320 mojo::internal::FixedBufferForTesting buf(size);
321 internal::ObjectUnion_Data* data = internal::ObjectUnion_Data::New(&buf); 321 internal::ObjectUnion_Data* data = internal::ObjectUnion_Data::New(&buf);
322 data->tag = internal::ObjectUnion_Data::ObjectUnion_Tag::F_STRING; 322 data->tag = internal::ObjectUnion_Data::ObjectUnion_Tag::F_STRING;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 388
389 size_t size = GetSerializedSize_(array); 389 size_t size = GetSerializedSize_(array);
390 EXPECT_EQ(40U, size); 390 EXPECT_EQ(40U, size);
391 391
392 mojo::internal::FixedBufferForTesting buf(size); 392 mojo::internal::FixedBufferForTesting buf(size);
393 mojo::internal::Array_Data<internal::PodUnion_Data>* data; 393 mojo::internal::Array_Data<internal::PodUnion_Data>* data;
394 mojo::internal::ArrayValidateParams validate_params(0, false, nullptr); 394 mojo::internal::ArrayValidateParams validate_params(0, false, nullptr);
395 SerializeArray_(array.Pass(), &buf, &data, &validate_params); 395 SerializeArray_(array.Pass(), &buf, &data, &validate_params);
396 396
397 Array<PodUnionPtr> array2; 397 Array<PodUnionPtr> array2;
398 Deserialize_(data, &array2); 398 Deserialize_(data, &array2, nullptr);
399 399
400 EXPECT_EQ(2U, array2.size()); 400 EXPECT_EQ(2U, array2.size());
401 401
402 EXPECT_EQ(10, array2[0]->get_f_int8()); 402 EXPECT_EQ(10, array2[0]->get_f_int8());
403 EXPECT_EQ(12, array2[1]->get_f_int16()); 403 EXPECT_EQ(12, array2[1]->get_f_int16());
404 } 404 }
405 405
406 TEST(UnionTest, PodUnionInArraySerializationWithNull) { 406 TEST(UnionTest, PodUnionInArraySerializationWithNull) {
407 Array<PodUnionPtr> array(2); 407 Array<PodUnionPtr> array(2);
408 array[0] = PodUnion::New(); 408 array[0] = PodUnion::New();
409 409
410 array[0]->set_f_int8(10); 410 array[0]->set_f_int8(10);
411 EXPECT_EQ(2U, array.size()); 411 EXPECT_EQ(2U, array.size());
412 412
413 size_t size = GetSerializedSize_(array); 413 size_t size = GetSerializedSize_(array);
414 EXPECT_EQ(40U, size); 414 EXPECT_EQ(40U, size);
415 415
416 mojo::internal::FixedBufferForTesting buf(size); 416 mojo::internal::FixedBufferForTesting buf(size);
417 mojo::internal::Array_Data<internal::PodUnion_Data>* data; 417 mojo::internal::Array_Data<internal::PodUnion_Data>* data;
418 mojo::internal::ArrayValidateParams validate_params(0, true, nullptr); 418 mojo::internal::ArrayValidateParams validate_params(0, true, nullptr);
419 SerializeArray_(array.Pass(), &buf, &data, &validate_params); 419 SerializeArray_(array.Pass(), &buf, &data, &validate_params);
420 420
421 Array<PodUnionPtr> array2; 421 Array<PodUnionPtr> array2;
422 Deserialize_(data, &array2); 422 Deserialize_(data, &array2, nullptr);
423 423
424 EXPECT_EQ(2U, array2.size()); 424 EXPECT_EQ(2U, array2.size());
425 425
426 EXPECT_EQ(10, array2[0]->get_f_int8()); 426 EXPECT_EQ(10, array2[0]->get_f_int8());
427 EXPECT_TRUE(array2[1].is_null()); 427 EXPECT_TRUE(array2[1].is_null());
428 } 428 }
429 429
430 // TODO(azani): Move back in struct_unittest.cc when possible. 430 // TODO(azani): Move back in struct_unittest.cc when possible.
431 // Struct tests 431 // Struct tests
432 TEST(UnionTest, Clone_Union) { 432 TEST(UnionTest, Clone_Union) {
(...skipping 11 matching lines...) Expand all
444 small_struct->pod_union = PodUnion::New(); 444 small_struct->pod_union = PodUnion::New();
445 small_struct->pod_union->set_f_int32(10); 445 small_struct->pod_union->set_f_int32(10);
446 446
447 size_t size = GetSerializedSize_(small_struct); 447 size_t size = GetSerializedSize_(small_struct);
448 448
449 mojo::internal::FixedBufferForTesting buf(size); 449 mojo::internal::FixedBufferForTesting buf(size);
450 internal::SmallStruct_Data* data = nullptr; 450 internal::SmallStruct_Data* data = nullptr;
451 Serialize_(small_struct.Pass(), &buf, &data); 451 Serialize_(small_struct.Pass(), &buf, &data);
452 452
453 SmallStructPtr deserialized; 453 SmallStructPtr deserialized;
454 Deserialize_(data, &deserialized); 454 Deserialize_(data, &deserialized, nullptr);
455 455
456 EXPECT_EQ(10, deserialized->pod_union->get_f_int32()); 456 EXPECT_EQ(10, deserialized->pod_union->get_f_int32());
457 } 457 }
458 458
459 // Serialization test of a struct with a union of structs. 459 // Serialization test of a struct with a union of structs.
460 TEST(UnionTest, Serialization_UnionOfObjects) { 460 TEST(UnionTest, Serialization_UnionOfObjects) {
461 SmallObjStructPtr obj_struct(SmallObjStruct::New()); 461 SmallObjStructPtr obj_struct(SmallObjStruct::New());
462 obj_struct->obj_union = ObjectUnion::New(); 462 obj_struct->obj_union = ObjectUnion::New();
463 String hello("hello world"); 463 String hello("hello world");
464 obj_struct->obj_union->set_f_string(hello); 464 obj_struct->obj_union->set_f_string(hello);
465 465
466 size_t size = GetSerializedSize_(obj_struct); 466 size_t size = GetSerializedSize_(obj_struct);
467 467
468 mojo::internal::FixedBufferForTesting buf(size); 468 mojo::internal::FixedBufferForTesting buf(size);
469 internal::SmallObjStruct_Data* data = nullptr; 469 internal::SmallObjStruct_Data* data = nullptr;
470 Serialize_(obj_struct.Pass(), &buf, &data); 470 Serialize_(obj_struct.Pass(), &buf, &data);
471 471
472 std::vector<Handle> handles; 472 std::vector<Handle> handles;
473 data->EncodePointersAndHandles(&handles); 473 data->EncodePointersAndHandles(&handles);
474 data->DecodePointersAndHandles(&handles); 474 data->DecodePointersAndHandles(&handles);
475 475
476 SmallObjStructPtr deserialized; 476 SmallObjStructPtr deserialized;
477 Deserialize_(data, &deserialized); 477 Deserialize_(data, &deserialized, nullptr);
478 478
479 EXPECT_EQ(hello, deserialized->obj_union->get_f_string()); 479 EXPECT_EQ(hello, deserialized->obj_union->get_f_string());
480 } 480 }
481 481
482 // Validation test of a struct with a union. 482 // Validation test of a struct with a union.
483 TEST(UnionTest, Validation_UnionsInStruct) { 483 TEST(UnionTest, Validation_UnionsInStruct) {
484 SmallStructPtr small_struct(SmallStruct::New()); 484 SmallStructPtr small_struct(SmallStruct::New());
485 small_struct->pod_union = PodUnion::New(); 485 small_struct->pod_union = PodUnion::New();
486 small_struct->pod_union->set_f_int32(10); 486 small_struct->pod_union->set_f_int32(10);
487 487
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 size_t size = GetSerializedSize_(map); 592 size_t size = GetSerializedSize_(map);
593 EXPECT_EQ(120U, size); 593 EXPECT_EQ(120U, size);
594 594
595 mojo::internal::FixedBufferForTesting buf(size); 595 mojo::internal::FixedBufferForTesting buf(size);
596 mojo::internal::Map_Data<mojo::internal::String_Data*, 596 mojo::internal::Map_Data<mojo::internal::String_Data*,
597 internal::PodUnion_Data>* data; 597 internal::PodUnion_Data>* data;
598 mojo::internal::ArrayValidateParams validate_params(0, false, nullptr); 598 mojo::internal::ArrayValidateParams validate_params(0, false, nullptr);
599 SerializeMap_(map.Pass(), &buf, &data, &validate_params); 599 SerializeMap_(map.Pass(), &buf, &data, &validate_params);
600 600
601 Map<String, PodUnionPtr> map2; 601 Map<String, PodUnionPtr> map2;
602 Deserialize_(data, &map2); 602 Deserialize_(data, &map2, nullptr);
603 603
604 EXPECT_EQ(8, map2["one"]->get_f_int8()); 604 EXPECT_EQ(8, map2["one"]->get_f_int8());
605 EXPECT_EQ(16, map2["two"]->get_f_int16()); 605 EXPECT_EQ(16, map2["two"]->get_f_int16());
606 } 606 }
607 607
608 TEST(UnionTest, PodUnionInMapSerializationWithNull) { 608 TEST(UnionTest, PodUnionInMapSerializationWithNull) {
609 Map<String, PodUnionPtr> map; 609 Map<String, PodUnionPtr> map;
610 map.insert("one", PodUnion::New()); 610 map.insert("one", PodUnion::New());
611 map.insert("two", nullptr); 611 map.insert("two", nullptr);
612 612
613 map["one"]->set_f_int8(8); 613 map["one"]->set_f_int8(8);
614 614
615 size_t size = GetSerializedSize_(map); 615 size_t size = GetSerializedSize_(map);
616 EXPECT_EQ(120U, size); 616 EXPECT_EQ(120U, size);
617 617
618 mojo::internal::FixedBufferForTesting buf(size); 618 mojo::internal::FixedBufferForTesting buf(size);
619 mojo::internal::Map_Data<mojo::internal::String_Data*, 619 mojo::internal::Map_Data<mojo::internal::String_Data*,
620 internal::PodUnion_Data>* data; 620 internal::PodUnion_Data>* data;
621 mojo::internal::ArrayValidateParams validate_params(0, true, nullptr); 621 mojo::internal::ArrayValidateParams validate_params(0, true, nullptr);
622 SerializeMap_(map.Pass(), &buf, &data, &validate_params); 622 SerializeMap_(map.Pass(), &buf, &data, &validate_params);
623 623
624 Map<String, PodUnionPtr> map2; 624 Map<String, PodUnionPtr> map2;
625 Deserialize_(data, &map2); 625 Deserialize_(data, &map2, nullptr);
626 626
627 EXPECT_EQ(8, map2["one"]->get_f_int8()); 627 EXPECT_EQ(8, map2["one"]->get_f_int8());
628 EXPECT_TRUE(map2["two"].is_null()); 628 EXPECT_TRUE(map2["two"].is_null());
629 } 629 }
630 630
631 TEST(UnionTest, StructInUnionGetterSetterPasser) { 631 TEST(UnionTest, StructInUnionGetterSetterPasser) {
632 DummyStructPtr dummy(DummyStruct::New()); 632 DummyStructPtr dummy(DummyStruct::New());
633 dummy->f_int8 = 8; 633 dummy->f_int8 = 8;
634 634
635 ObjectUnionPtr obj(ObjectUnion::New()); 635 ObjectUnionPtr obj(ObjectUnion::New());
(...skipping 14 matching lines...) Expand all
650 650
651 mojo::internal::FixedBufferForTesting buf(size); 651 mojo::internal::FixedBufferForTesting buf(size);
652 internal::ObjectUnion_Data* data = nullptr; 652 internal::ObjectUnion_Data* data = nullptr;
653 SerializeUnion_(obj.Pass(), &buf, &data, false); 653 SerializeUnion_(obj.Pass(), &buf, &data, false);
654 654
655 std::vector<Handle> handles; 655 std::vector<Handle> handles;
656 data->EncodePointersAndHandles(&handles); 656 data->EncodePointersAndHandles(&handles);
657 data->DecodePointersAndHandles(&handles); 657 data->DecodePointersAndHandles(&handles);
658 658
659 ObjectUnionPtr obj2; 659 ObjectUnionPtr obj2;
660 Deserialize_(data, &obj2); 660 Deserialize_(data, &obj2, nullptr);
661 EXPECT_EQ(8, obj2->get_f_dummy()->f_int8); 661 EXPECT_EQ(8, obj2->get_f_dummy()->f_int8);
662 } 662 }
663 663
664 TEST(UnionTest, StructInUnionValidation) { 664 TEST(UnionTest, StructInUnionValidation) {
665 DummyStructPtr dummy(DummyStruct::New()); 665 DummyStructPtr dummy(DummyStruct::New());
666 dummy->f_int8 = 8; 666 dummy->f_int8 = 8;
667 667
668 ObjectUnionPtr obj(ObjectUnion::New()); 668 ObjectUnionPtr obj(ObjectUnion::New());
669 obj->set_f_dummy(dummy.Pass()); 669 obj->set_f_dummy(dummy.Pass());
670 670
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 759
760 mojo::internal::FixedBufferForTesting buf(size); 760 mojo::internal::FixedBufferForTesting buf(size);
761 internal::ObjectUnion_Data* data = nullptr; 761 internal::ObjectUnion_Data* data = nullptr;
762 SerializeUnion_(obj.Pass(), &buf, &data, false); 762 SerializeUnion_(obj.Pass(), &buf, &data, false);
763 763
764 std::vector<Handle> handles; 764 std::vector<Handle> handles;
765 data->EncodePointersAndHandles(&handles); 765 data->EncodePointersAndHandles(&handles);
766 data->DecodePointersAndHandles(&handles); 766 data->DecodePointersAndHandles(&handles);
767 767
768 ObjectUnionPtr obj2; 768 ObjectUnionPtr obj2;
769 Deserialize_(data, &obj2); 769 Deserialize_(data, &obj2, nullptr);
770 770
771 EXPECT_EQ(8, obj2->get_f_array_int8()[0]); 771 EXPECT_EQ(8, obj2->get_f_array_int8()[0]);
772 EXPECT_EQ(9, obj2->get_f_array_int8()[1]); 772 EXPECT_EQ(9, obj2->get_f_array_int8()[1]);
773 } 773 }
774 774
775 TEST(UnionTest, ArrayInUnionValidation) { 775 TEST(UnionTest, ArrayInUnionValidation) {
776 Array<int8_t> array(2); 776 Array<int8_t> array(2);
777 array[0] = 8; 777 array[0] = 8;
778 array[1] = 9; 778 array[1] = 9;
779 779
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
822 822
823 mojo::internal::FixedBufferForTesting buf(size); 823 mojo::internal::FixedBufferForTesting buf(size);
824 internal::ObjectUnion_Data* data = nullptr; 824 internal::ObjectUnion_Data* data = nullptr;
825 SerializeUnion_(obj.Pass(), &buf, &data, false); 825 SerializeUnion_(obj.Pass(), &buf, &data, false);
826 826
827 std::vector<Handle> handles; 827 std::vector<Handle> handles;
828 data->EncodePointersAndHandles(&handles); 828 data->EncodePointersAndHandles(&handles);
829 data->DecodePointersAndHandles(&handles); 829 data->DecodePointersAndHandles(&handles);
830 830
831 ObjectUnionPtr obj2; 831 ObjectUnionPtr obj2;
832 Deserialize_(data, &obj2); 832 Deserialize_(data, &obj2, nullptr);
833 833
834 EXPECT_EQ(1, obj2->get_f_map_int8()["one"]); 834 EXPECT_EQ(1, obj2->get_f_map_int8()["one"]);
835 EXPECT_EQ(2, obj2->get_f_map_int8()["two"]); 835 EXPECT_EQ(2, obj2->get_f_map_int8()["two"]);
836 } 836 }
837 837
838 TEST(UnionTest, MapInUnionValidation) { 838 TEST(UnionTest, MapInUnionValidation) {
839 Map<String, int8_t> map; 839 Map<String, int8_t> map;
840 map.insert("one", 1); 840 map.insert("one", 1);
841 map.insert("two", 2); 841 map.insert("two", 2);
842 842
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 885
886 mojo::internal::FixedBufferForTesting buf(size); 886 mojo::internal::FixedBufferForTesting buf(size);
887 internal::ObjectUnion_Data* data = nullptr; 887 internal::ObjectUnion_Data* data = nullptr;
888 SerializeUnion_(obj.Pass(), &buf, &data, false); 888 SerializeUnion_(obj.Pass(), &buf, &data, false);
889 889
890 std::vector<Handle> handles; 890 std::vector<Handle> handles;
891 data->EncodePointersAndHandles(&handles); 891 data->EncodePointersAndHandles(&handles);
892 data->DecodePointersAndHandles(&handles); 892 data->DecodePointersAndHandles(&handles);
893 893
894 ObjectUnionPtr obj2; 894 ObjectUnionPtr obj2;
895 Deserialize_(data, &obj2); 895 Deserialize_(data, &obj2, nullptr);
896 EXPECT_EQ(10, obj2->get_f_pod_union()->get_f_int8()); 896 EXPECT_EQ(10, obj2->get_f_pod_union()->get_f_int8());
897 } 897 }
898 898
899 TEST(UnionTest, UnionInUnionValidation) { 899 TEST(UnionTest, UnionInUnionValidation) {
900 PodUnionPtr pod(PodUnion::New()); 900 PodUnionPtr pod(PodUnion::New());
901 pod->set_f_int8(10); 901 pod->set_f_int8(10);
902 902
903 ObjectUnionPtr obj(ObjectUnion::New()); 903 ObjectUnionPtr obj(ObjectUnion::New());
904 obj->set_f_pod_union(pod.Pass()); 904 obj->set_f_pod_union(pod.Pass());
905 905
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
977 mojo::internal::FixedBufferForTesting buf(size); 977 mojo::internal::FixedBufferForTesting buf(size);
978 internal::HandleUnion_Data* data = nullptr; 978 internal::HandleUnion_Data* data = nullptr;
979 SerializeUnion_(handle.Pass(), &buf, &data, false); 979 SerializeUnion_(handle.Pass(), &buf, &data, false);
980 980
981 std::vector<Handle> handles; 981 std::vector<Handle> handles;
982 data->EncodePointersAndHandles(&handles); 982 data->EncodePointersAndHandles(&handles);
983 EXPECT_EQ(1U, handles.size()); 983 EXPECT_EQ(1U, handles.size());
984 data->DecodePointersAndHandles(&handles); 984 data->DecodePointersAndHandles(&handles);
985 985
986 HandleUnionPtr handle2(HandleUnion::New()); 986 HandleUnionPtr handle2(HandleUnion::New());
987 Deserialize_(data, &handle2); 987 Deserialize_(data, &handle2, nullptr);
988 988
989 std::string golden("hello world"); 989 std::string golden("hello world");
990 WriteTextMessage(pipe0.get(), golden); 990 WriteTextMessage(pipe0.get(), golden);
991 991
992 std::string actual; 992 std::string actual;
993 ReadTextMessage(handle2->get_f_message_pipe().get(), &actual); 993 ReadTextMessage(handle2->get_f_message_pipe().get(), &actual);
994 994
995 EXPECT_EQ(golden, actual); 995 EXPECT_EQ(golden, actual);
996 } 996 }
997 997
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1088 mojo::internal::FixedBufferForTesting buf(size); 1088 mojo::internal::FixedBufferForTesting buf(size);
1089 internal::HandleUnion_Data* data = nullptr; 1089 internal::HandleUnion_Data* data = nullptr;
1090 SerializeUnion_(handle.Pass(), &buf, &data, false); 1090 SerializeUnion_(handle.Pass(), &buf, &data, false);
1091 1091
1092 std::vector<Handle> handles; 1092 std::vector<Handle> handles;
1093 data->EncodePointersAndHandles(&handles); 1093 data->EncodePointersAndHandles(&handles);
1094 EXPECT_EQ(1U, handles.size()); 1094 EXPECT_EQ(1U, handles.size());
1095 data->DecodePointersAndHandles(&handles); 1095 data->DecodePointersAndHandles(&handles);
1096 1096
1097 HandleUnionPtr handle2(HandleUnion::New()); 1097 HandleUnionPtr handle2(HandleUnion::New());
1098 Deserialize_(data, &handle2); 1098 Deserialize_(data, &handle2, nullptr);
1099 1099
1100 handle2->get_f_small_cache()->SetIntValue(10); 1100 handle2->get_f_small_cache()->SetIntValue(10);
1101 run_loop.RunUntilIdle(); 1101 run_loop.RunUntilIdle();
1102 EXPECT_EQ(10, impl.int_value()); 1102 EXPECT_EQ(10, impl.int_value());
1103 } 1103 }
1104 1104
1105 class UnionInterfaceImpl : public UnionInterface { 1105 class UnionInterfaceImpl : public UnionInterface {
1106 public: 1106 public:
1107 UnionInterfaceImpl() {} 1107 UnionInterfaceImpl() {}
1108 ~UnionInterfaceImpl() override {} 1108 ~UnionInterfaceImpl() override {}
(...skipping 13 matching lines...) Expand all
1122 PodUnionPtr pod(PodUnion::New()); 1122 PodUnionPtr pod(PodUnion::New());
1123 pod->set_f_int16(16); 1123 pod->set_f_int16(16);
1124 1124
1125 ptr->Echo(pod.Pass(), 1125 ptr->Echo(pod.Pass(),
1126 [](PodUnionPtr out) { EXPECT_EQ(16, out->get_f_int16()); }); 1126 [](PodUnionPtr out) { EXPECT_EQ(16, out->get_f_int16()); });
1127 run_loop.RunUntilIdle(); 1127 run_loop.RunUntilIdle();
1128 } 1128 }
1129 1129
1130 } // namespace test 1130 } // namespace test
1131 } // namespace mojo 1131 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698