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

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

Issue 2689513003: Add field-initializing constructors to generated mojo structs. (Closed)
Patch Set: rebase Created 3 years, 9 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
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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 #include <algorithm> 7 #include <algorithm>
8 #include <ostream> 8 #include <ostream>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 20 matching lines...) Expand all
31 // Set this variable to true to print the message in hex. 31 // Set this variable to true to print the message in hex.
32 bool g_dump_message_as_hex = false; 32 bool g_dump_message_as_hex = false;
33 33
34 // Set this variable to true to print the message in human readable form. 34 // Set this variable to true to print the message in human readable form.
35 bool g_dump_message_as_text = false; 35 bool g_dump_message_as_text = false;
36 36
37 // Make a sample |Foo|. 37 // Make a sample |Foo|.
38 FooPtr MakeFoo() { 38 FooPtr MakeFoo() {
39 std::string name("foopy"); 39 std::string name("foopy");
40 40
41 BarPtr bar(Bar::New()); 41 BarPtr bar(Bar::New(20, 40, 60, Bar::Type::VERTICAL));
42 bar->alpha = 20;
43 bar->beta = 40;
44 bar->gamma = 60;
45 bar->type = Bar::Type::VERTICAL;
46 42
47 std::vector<BarPtr> extra_bars(3); 43 std::vector<BarPtr> extra_bars(3);
48 for (size_t i = 0; i < extra_bars.size(); ++i) { 44 for (size_t i = 0; i < extra_bars.size(); ++i) {
49 Bar::Type type = i % 2 == 0 ? Bar::Type::VERTICAL : Bar::Type::HORIZONTAL; 45 Bar::Type type = i % 2 == 0 ? Bar::Type::VERTICAL : Bar::Type::HORIZONTAL;
50 BarPtr bar(Bar::New());
51 uint8_t base = static_cast<uint8_t>(i * 100); 46 uint8_t base = static_cast<uint8_t>(i * 100);
52 bar->alpha = base; 47 extra_bars[i] = Bar::New(base, base + 20, base + 40, type);
53 bar->beta = base + 20;
54 bar->gamma = base + 40;
55 bar->type = type;
56 extra_bars[i] = std::move(bar);
57 } 48 }
58 49
59 std::vector<uint8_t> data(10); 50 std::vector<uint8_t> data(10);
60 for (size_t i = 0; i < data.size(); ++i) 51 for (size_t i = 0; i < data.size(); ++i)
61 data[i] = static_cast<uint8_t>(data.size() - i); 52 data[i] = static_cast<uint8_t>(data.size() - i);
62 53
63 std::vector<mojo::ScopedDataPipeConsumerHandle> input_streams(2); 54 std::vector<mojo::ScopedDataPipeConsumerHandle> input_streams(2);
64 std::vector<mojo::ScopedDataPipeProducerHandle> output_streams(2); 55 std::vector<mojo::ScopedDataPipeProducerHandle> output_streams(2);
65 for (size_t i = 0; i < input_streams.size(); ++i) { 56 for (size_t i = 0; i < input_streams.size(); ++i) {
66 MojoCreateDataPipeOptions options; 57 MojoCreateDataPipeOptions options;
(...skipping 10 matching lines...) Expand all
77 68
78 std::vector<std::vector<bool>> array_of_array_of_bools(2); 69 std::vector<std::vector<bool>> array_of_array_of_bools(2);
79 for (size_t i = 0; i < 2; ++i) { 70 for (size_t i = 0; i < 2; ++i) {
80 std::vector<bool> array_of_bools(2); 71 std::vector<bool> array_of_bools(2);
81 for (size_t j = 0; j < 2; ++j) 72 for (size_t j = 0; j < 2; ++j)
82 array_of_bools[j] = j; 73 array_of_bools[j] = j;
83 array_of_array_of_bools[i] = std::move(array_of_bools); 74 array_of_array_of_bools[i] = std::move(array_of_bools);
84 } 75 }
85 76
86 mojo::MessagePipe pipe; 77 mojo::MessagePipe pipe;
87 FooPtr foo(Foo::New()); 78 return Foo::New(name, 1, 2, false, true, false, std::move(bar),
88 foo->name = name; 79 std::move(extra_bars), std::move(data),
89 foo->x = 1; 80 std::move(pipe.handle1), std::move(input_streams),
90 foo->y = 2; 81 std::move(output_streams), std::move(array_of_array_of_bools),
91 foo->a = false; 82 base::nullopt, base::nullopt);
92 foo->b = true;
93 foo->c = false;
94 foo->bar = std::move(bar);
95 foo->extra_bars = std::move(extra_bars);
96 foo->data = std::move(data);
97 foo->source = std::move(pipe.handle1);
98 foo->input_streams = std::move(input_streams);
99 foo->output_streams = std::move(output_streams);
100 foo->array_of_array_of_bools = std::move(array_of_array_of_bools);
101
102 return foo;
103 } 83 }
104 84
105 // Check that the given |Foo| is identical to the one made by |MakeFoo()|. 85 // Check that the given |Foo| is identical to the one made by |MakeFoo()|.
106 void CheckFoo(const Foo& foo) { 86 void CheckFoo(const Foo& foo) {
107 const std::string kName("foopy"); 87 const std::string kName("foopy");
108 EXPECT_EQ(kName.size(), foo.name.size()); 88 EXPECT_EQ(kName.size(), foo.name.size());
109 for (size_t i = 0; i < std::min(kName.size(), foo.name.size()); i++) { 89 for (size_t i = 0; i < std::min(kName.size(), foo.name.size()); i++) {
110 // Test both |operator[]| and |at|. 90 // Test both |operator[]| and |at|.
111 EXPECT_EQ(kName[i], foo.name.at(i)) << i; 91 EXPECT_EQ(kName[i], foo.name.at(i)) << i;
112 EXPECT_EQ(kName[i], foo.name[i]) << i; 92 EXPECT_EQ(kName[i], foo.name[i]) << i;
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 ASSERT_FALSE(defaults->a22.is_null()); 352 ASSERT_FALSE(defaults->a22.is_null());
373 EXPECT_EQ(imported::Shape::RECTANGLE, defaults->a22->shape); 353 EXPECT_EQ(imported::Shape::RECTANGLE, defaults->a22->shape);
374 EXPECT_EQ(imported::Color::BLACK, defaults->a22->color); 354 EXPECT_EQ(imported::Color::BLACK, defaults->a22->color);
375 EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, defaults->a23); 355 EXPECT_EQ(0xFFFFFFFFFFFFFFFFULL, defaults->a23);
376 EXPECT_EQ(0x123456789, defaults->a24); 356 EXPECT_EQ(0x123456789, defaults->a24);
377 EXPECT_EQ(-0x123456789, defaults->a25); 357 EXPECT_EQ(-0x123456789, defaults->a25);
378 } 358 }
379 359
380 } // namespace 360 } // namespace
381 } // namespace sample 361 } // namespace sample
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/tests/pickled_types_blink.h ('k') | mojo/public/cpp/bindings/tests/struct_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698