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

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

Issue 2689513003: Add field-initializing constructors to generated mojo structs. (Closed)
Patch Set: Created 3 years, 10 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 <string.h> 7 #include <string.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h" 10 #include "mojo/public/cpp/bindings/lib/fixed_buffer.h"
11 #include "mojo/public/cpp/system/message_pipe.h" 11 #include "mojo/public/cpp/system/message_pipe.h"
12 #include "mojo/public/interfaces/bindings/tests/test_structs.mojom.h" 12 #include "mojo/public/interfaces/bindings/tests/test_structs.mojom.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 namespace mojo { 15 namespace mojo {
16 namespace test { 16 namespace test {
17 namespace { 17 namespace {
18 18
19 RectPtr MakeRect(int32_t factor = 1) { 19 RectPtr MakeRect(int32_t factor = 1) {
20 RectPtr rect(Rect::New()); 20 return Rect::New(1 * factor, 2 * factor, 10 * factor, 20 * factor);
21 rect->x = 1 * factor;
22 rect->y = 2 * factor;
23 rect->width = 10 * factor;
24 rect->height = 20 * factor;
25 return rect;
26 } 21 }
27 22
28 void CheckRect(const Rect& rect, int32_t factor = 1) { 23 void CheckRect(const Rect& rect, int32_t factor = 1) {
29 EXPECT_EQ(1 * factor, rect.x); 24 EXPECT_EQ(1 * factor, rect.x);
30 EXPECT_EQ(2 * factor, rect.y); 25 EXPECT_EQ(2 * factor, rect.y);
31 EXPECT_EQ(10 * factor, rect.width); 26 EXPECT_EQ(10 * factor, rect.width);
32 EXPECT_EQ(20 * factor, rect.height); 27 EXPECT_EQ(20 * factor, rect.height);
33 } 28 }
34 29
35 MultiVersionStructPtr MakeMultiVersionStruct() { 30 MultiVersionStructPtr MakeMultiVersionStruct() {
36 MultiVersionStructPtr output(MultiVersionStruct::New());
37 output->f_int32 = 123;
38 output->f_rect = MakeRect(5);
39 output->f_string.emplace("hello");
40 output->f_array.emplace(3);
41 (*output->f_array)[0] = 10;
42 (*output->f_array)[1] = 9;
43 (*output->f_array)[2] = 8;
44 MessagePipe pipe; 31 MessagePipe pipe;
45 output->f_message_pipe = std::move(pipe.handle0); 32 return MultiVersionStruct::New(123, MakeRect(5), std::string("hello"),
46 output->f_int16 = 42; 33 std::vector<int8_t>{10, 9, 8},
47 34 std::move(pipe.handle0), false, 42);
48 return output;
49 } 35 }
50 36
51 template <typename U, typename T> 37 template <typename U, typename T>
52 U SerializeAndDeserialize(T input) { 38 U SerializeAndDeserialize(T input) {
53 using InputMojomType = typename T::Struct::DataView; 39 using InputMojomType = typename T::Struct::DataView;
54 using OutputMojomType = typename U::Struct::DataView; 40 using OutputMojomType = typename U::Struct::DataView;
55 41
56 using InputDataType = 42 using InputDataType =
57 typename mojo::internal::MojomTypeTraits<InputMojomType>::Data*; 43 typename mojo::internal::MojomTypeTraits<InputMojomType>::Data*;
58 using OutputDataType = 44 using OutputDataType =
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 EXPECT_FALSE(pair.is_null()); 145 EXPECT_FALSE(pair.is_null());
160 EXPECT_TRUE(pair->first.is_null()); 146 EXPECT_TRUE(pair->first.is_null());
161 EXPECT_TRUE(pair->first.is_null()); 147 EXPECT_TRUE(pair->first.is_null());
162 148
163 pair = nullptr; 149 pair = nullptr;
164 EXPECT_TRUE(pair.is_null()); 150 EXPECT_TRUE(pair.is_null());
165 } 151 }
166 152
167 // Serialization test of a struct with struct pointers. 153 // Serialization test of a struct with struct pointers.
168 TEST_F(StructTest, Serialization_StructPointers) { 154 TEST_F(StructTest, Serialization_StructPointers) {
169 RectPairPtr pair(RectPair::New()); 155 RectPairPtr pair(RectPair::New(MakeRect(), MakeRect()));
170 pair->first = MakeRect();
171 pair->second = MakeRect();
172 156
173 size_t size = 157 size_t size =
174 mojo::internal::PrepareToSerialize<RectPairDataView>(pair, nullptr); 158 mojo::internal::PrepareToSerialize<RectPairDataView>(pair, nullptr);
175 EXPECT_EQ(8U + 16U + 2 * (8U + 16U), size); 159 EXPECT_EQ(8U + 16U + 2 * (8U + 16U), size);
176 160
177 mojo::internal::FixedBufferForTesting buf(size); 161 mojo::internal::FixedBufferForTesting buf(size);
178 internal::RectPair_Data* data; 162 internal::RectPair_Data* data;
179 mojo::internal::Serialize<RectPairDataView>(pair, &buf, &data, nullptr); 163 mojo::internal::Serialize<RectPairDataView>(pair, &buf, &data, nullptr);
180 164
181 RectPairPtr pair2; 165 RectPairPtr pair2;
182 mojo::internal::Deserialize<RectPairDataView>(data, &pair2, nullptr); 166 mojo::internal::Deserialize<RectPairDataView>(data, &pair2, nullptr);
183 167
184 CheckRect(*pair2->first); 168 CheckRect(*pair2->first);
185 CheckRect(*pair2->second); 169 CheckRect(*pair2->second);
186 } 170 }
187 171
188 // Serialization test of a struct with an array member. 172 // Serialization test of a struct with an array member.
189 TEST_F(StructTest, Serialization_ArrayPointers) { 173 TEST_F(StructTest, Serialization_ArrayPointers) {
190 NamedRegionPtr region(NamedRegion::New()); 174 NamedRegionPtr region(NamedRegion::New(std::string("region")));
191 region->name.emplace("region");
192 region->rects.emplace(4); 175 region->rects.emplace(4);
193 for (size_t i = 0; i < region->rects->size(); ++i) 176 for (size_t i = 0; i < region->rects->size(); ++i)
194 (*region->rects)[i] = MakeRect(static_cast<int32_t>(i) + 1); 177 (*region->rects)[i] = MakeRect(static_cast<int32_t>(i) + 1);
195 178
196 size_t size = 179 size_t size =
197 mojo::internal::PrepareToSerialize<NamedRegionDataView>(region, nullptr); 180 mojo::internal::PrepareToSerialize<NamedRegionDataView>(region, nullptr);
198 EXPECT_EQ(8U + // header 181 EXPECT_EQ(8U + // header
199 8U + // name pointer 182 8U + // name pointer
200 8U + // rects pointer 183 8U + // rects pointer
201 8U + // name header 184 8U + // name header
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 NamedRegionPtr region2; 223 NamedRegionPtr region2;
241 mojo::internal::Deserialize<NamedRegionDataView>(data, &region2, nullptr); 224 mojo::internal::Deserialize<NamedRegionDataView>(data, &region2, nullptr);
242 225
243 EXPECT_FALSE(region2->name); 226 EXPECT_FALSE(region2->name);
244 EXPECT_FALSE(region2->rects); 227 EXPECT_FALSE(region2->rects);
245 } 228 }
246 229
247 // Tests deserializing structs as a newer version. 230 // Tests deserializing structs as a newer version.
248 TEST_F(StructTest, Versioning_OldToNew) { 231 TEST_F(StructTest, Versioning_OldToNew) {
249 { 232 {
250 MultiVersionStructV0Ptr input(MultiVersionStructV0::New()); 233 MultiVersionStructV0Ptr input(MultiVersionStructV0::New(123));
251 input->f_int32 = 123; 234 MultiVersionStructPtr expected_output(MultiVersionStruct::New(123));
252 MultiVersionStructPtr expected_output(MultiVersionStruct::New());
253 expected_output->f_int32 = 123;
254 235
255 MultiVersionStructPtr output = 236 MultiVersionStructPtr output =
256 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input)); 237 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input));
257 EXPECT_TRUE(output); 238 EXPECT_TRUE(output);
258 EXPECT_TRUE(output->Equals(*expected_output)); 239 EXPECT_TRUE(output->Equals(*expected_output));
259 } 240 }
260 241
261 { 242 {
262 MultiVersionStructV1Ptr input(MultiVersionStructV1::New()); 243 MultiVersionStructV1Ptr input(MultiVersionStructV1::New(123, MakeRect(5)));
263 input->f_int32 = 123; 244 MultiVersionStructPtr expected_output(
264 input->f_rect = MakeRect(5); 245 MultiVersionStruct::New(123, MakeRect(5)));
265 MultiVersionStructPtr expected_output(MultiVersionStruct::New());
266 expected_output->f_int32 = 123;
267 expected_output->f_rect = MakeRect(5);
268 246
269 MultiVersionStructPtr output = 247 MultiVersionStructPtr output =
270 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input)); 248 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input));
271 EXPECT_TRUE(output); 249 EXPECT_TRUE(output);
272 EXPECT_TRUE(output->Equals(*expected_output)); 250 EXPECT_TRUE(output->Equals(*expected_output));
273 } 251 }
274 252
275 { 253 {
276 MultiVersionStructV3Ptr input(MultiVersionStructV3::New()); 254 MultiVersionStructV3Ptr input(
277 input->f_int32 = 123; 255 MultiVersionStructV3::New(123, MakeRect(5), std::string("hello")));
278 input->f_rect = MakeRect(5); 256 MultiVersionStructPtr expected_output(
279 input->f_string.emplace("hello"); 257 MultiVersionStruct::New(123, MakeRect(5), std::string("hello")));
280 MultiVersionStructPtr expected_output(MultiVersionStruct::New());
281 expected_output->f_int32 = 123;
282 expected_output->f_rect = MakeRect(5);
283 expected_output->f_string.emplace("hello");
284 258
285 MultiVersionStructPtr output = 259 MultiVersionStructPtr output =
286 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input)); 260 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input));
287 EXPECT_TRUE(output); 261 EXPECT_TRUE(output);
288 EXPECT_TRUE(output->Equals(*expected_output)); 262 EXPECT_TRUE(output->Equals(*expected_output));
289 } 263 }
290 264
291 { 265 {
292 MultiVersionStructV5Ptr input(MultiVersionStructV5::New()); 266 MultiVersionStructV5Ptr input(MultiVersionStructV5::New(
293 input->f_int32 = 123; 267 123, MakeRect(5), std::string("hello"), std::vector<int8_t>{10, 9, 8}));
294 input->f_rect = MakeRect(5); 268 MultiVersionStructPtr expected_output(MultiVersionStruct::New(
295 input->f_string.emplace("hello"); 269 123, MakeRect(5), std::string("hello"), std::vector<int8_t>{10, 9, 8}));
296 input->f_array.emplace(3);
297 (*input->f_array)[0] = 10;
298 (*input->f_array)[1] = 9;
299 (*input->f_array)[2] = 8;
300 MultiVersionStructPtr expected_output(MultiVersionStruct::New());
301 expected_output->f_int32 = 123;
302 expected_output->f_rect = MakeRect(5);
303 expected_output->f_string.emplace("hello");
304 expected_output->f_array.emplace(3);
305 (*expected_output->f_array)[0] = 10;
306 (*expected_output->f_array)[1] = 9;
307 (*expected_output->f_array)[2] = 8;
308 270
309 MultiVersionStructPtr output = 271 MultiVersionStructPtr output =
310 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input)); 272 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input));
311 EXPECT_TRUE(output); 273 EXPECT_TRUE(output);
312 EXPECT_TRUE(output->Equals(*expected_output)); 274 EXPECT_TRUE(output->Equals(*expected_output));
313 } 275 }
314 276
315 { 277 {
316 MultiVersionStructV7Ptr input(MultiVersionStructV7::New());
317 input->f_int32 = 123;
318 input->f_rect = MakeRect(5);
319 input->f_string.emplace("hello");
320 input->f_array.emplace(3);
321 (*input->f_array)[0] = 10;
322 (*input->f_array)[1] = 9;
323 (*input->f_array)[2] = 8;
324 MessagePipe pipe; 278 MessagePipe pipe;
325 input->f_message_pipe = std::move(pipe.handle0); 279 MultiVersionStructV7Ptr input(MultiVersionStructV7::New(
280 123, MakeRect(5), std::string("hello"), std::vector<int8_t>{10, 9, 8},
281 std::move(pipe.handle0)));
326 282
327 MultiVersionStructPtr expected_output(MultiVersionStruct::New()); 283 MultiVersionStructPtr expected_output(MultiVersionStruct::New(
328 expected_output->f_int32 = 123; 284 123, MakeRect(5), std::string("hello"), std::vector<int8_t>{10, 9, 8}));
329 expected_output->f_rect = MakeRect(5);
330 expected_output->f_string.emplace("hello");
331 expected_output->f_array.emplace(3);
332 (*expected_output->f_array)[0] = 10;
333 (*expected_output->f_array)[1] = 9;
334 (*expected_output->f_array)[2] = 8;
335 // Save the raw handle value separately so that we can compare later. 285 // Save the raw handle value separately so that we can compare later.
336 MojoHandle expected_handle = input->f_message_pipe.get().value(); 286 MojoHandle expected_handle = input->f_message_pipe.get().value();
337 287
338 MultiVersionStructPtr output = 288 MultiVersionStructPtr output =
339 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input)); 289 SerializeAndDeserialize<MultiVersionStructPtr>(std::move(input));
340 EXPECT_TRUE(output); 290 EXPECT_TRUE(output);
341 EXPECT_EQ(expected_handle, output->f_message_pipe.get().value()); 291 EXPECT_EQ(expected_handle, output->f_message_pipe.get().value());
342 output->f_message_pipe.reset(); 292 output->f_message_pipe.reset();
343 EXPECT_TRUE(output->Equals(*expected_output)); 293 EXPECT_TRUE(output->Equals(*expected_output));
344 } 294 }
345 } 295 }
346 296
347 // Tests deserializing structs as an older version. 297 // Tests deserializing structs as an older version.
348 TEST_F(StructTest, Versioning_NewToOld) { 298 TEST_F(StructTest, Versioning_NewToOld) {
349 { 299 {
350 MultiVersionStructPtr input = MakeMultiVersionStruct(); 300 MultiVersionStructPtr input = MakeMultiVersionStruct();
351 MultiVersionStructV7Ptr expected_output(MultiVersionStructV7::New()); 301 MultiVersionStructV7Ptr expected_output(MultiVersionStructV7::New(
352 expected_output->f_int32 = 123; 302 123, MakeRect(5), std::string("hello"), std::vector<int8_t>{10, 9, 8}));
353 expected_output->f_rect = MakeRect(5);
354 expected_output->f_string.emplace("hello");
355 expected_output->f_array.emplace(3);
356 (*expected_output->f_array)[0] = 10;
357 (*expected_output->f_array)[1] = 9;
358 (*expected_output->f_array)[2] = 8;
359 // Save the raw handle value separately so that we can compare later. 303 // Save the raw handle value separately so that we can compare later.
360 MojoHandle expected_handle = input->f_message_pipe.get().value(); 304 MojoHandle expected_handle = input->f_message_pipe.get().value();
361 305
362 MultiVersionStructV7Ptr output = 306 MultiVersionStructV7Ptr output =
363 SerializeAndDeserialize<MultiVersionStructV7Ptr>(std::move(input)); 307 SerializeAndDeserialize<MultiVersionStructV7Ptr>(std::move(input));
364 EXPECT_TRUE(output); 308 EXPECT_TRUE(output);
365 EXPECT_EQ(expected_handle, output->f_message_pipe.get().value()); 309 EXPECT_EQ(expected_handle, output->f_message_pipe.get().value());
366 output->f_message_pipe.reset(); 310 output->f_message_pipe.reset();
367 EXPECT_TRUE(output->Equals(*expected_output)); 311 EXPECT_TRUE(output->Equals(*expected_output));
368 } 312 }
369 313
370 { 314 {
371 MultiVersionStructPtr input = MakeMultiVersionStruct(); 315 MultiVersionStructPtr input = MakeMultiVersionStruct();
372 MultiVersionStructV5Ptr expected_output(MultiVersionStructV5::New()); 316 MultiVersionStructV5Ptr expected_output(MultiVersionStructV5::New(
373 expected_output->f_int32 = 123; 317 123, MakeRect(5), std::string("hello"), std::vector<int8_t>{10, 9, 8}));
374 expected_output->f_rect = MakeRect(5);
375 expected_output->f_string.emplace("hello");
376 expected_output->f_array.emplace(3);
377 (*expected_output->f_array)[0] = 10;
378 (*expected_output->f_array)[1] = 9;
379 (*expected_output->f_array)[2] = 8;
380 318
381 MultiVersionStructV5Ptr output = 319 MultiVersionStructV5Ptr output =
382 SerializeAndDeserialize<MultiVersionStructV5Ptr>(std::move(input)); 320 SerializeAndDeserialize<MultiVersionStructV5Ptr>(std::move(input));
383 EXPECT_TRUE(output); 321 EXPECT_TRUE(output);
384 EXPECT_TRUE(output->Equals(*expected_output)); 322 EXPECT_TRUE(output->Equals(*expected_output));
385 } 323 }
386 324
387 { 325 {
388 MultiVersionStructPtr input = MakeMultiVersionStruct(); 326 MultiVersionStructPtr input = MakeMultiVersionStruct();
389 MultiVersionStructV3Ptr expected_output(MultiVersionStructV3::New()); 327 MultiVersionStructV3Ptr expected_output(
390 expected_output->f_int32 = 123; 328 MultiVersionStructV3::New(123, MakeRect(5), std::string("hello")));
391 expected_output->f_rect = MakeRect(5);
392 expected_output->f_string.emplace("hello");
393 329
394 MultiVersionStructV3Ptr output = 330 MultiVersionStructV3Ptr output =
395 SerializeAndDeserialize<MultiVersionStructV3Ptr>(std::move(input)); 331 SerializeAndDeserialize<MultiVersionStructV3Ptr>(std::move(input));
396 EXPECT_TRUE(output); 332 EXPECT_TRUE(output);
397 EXPECT_TRUE(output->Equals(*expected_output)); 333 EXPECT_TRUE(output->Equals(*expected_output));
398 } 334 }
399 335
400 { 336 {
401 MultiVersionStructPtr input = MakeMultiVersionStruct(); 337 MultiVersionStructPtr input = MakeMultiVersionStruct();
402 MultiVersionStructV1Ptr expected_output(MultiVersionStructV1::New()); 338 MultiVersionStructV1Ptr expected_output(
403 expected_output->f_int32 = 123; 339 MultiVersionStructV1::New(123, MakeRect(5)));
404 expected_output->f_rect = MakeRect(5);
405 340
406 MultiVersionStructV1Ptr output = 341 MultiVersionStructV1Ptr output =
407 SerializeAndDeserialize<MultiVersionStructV1Ptr>(std::move(input)); 342 SerializeAndDeserialize<MultiVersionStructV1Ptr>(std::move(input));
408 EXPECT_TRUE(output); 343 EXPECT_TRUE(output);
409 EXPECT_TRUE(output->Equals(*expected_output)); 344 EXPECT_TRUE(output->Equals(*expected_output));
410 } 345 }
411 346
412 { 347 {
413 MultiVersionStructPtr input = MakeMultiVersionStruct(); 348 MultiVersionStructPtr input = MakeMultiVersionStruct();
414 MultiVersionStructV0Ptr expected_output(MultiVersionStructV0::New()); 349 MultiVersionStructV0Ptr expected_output(MultiVersionStructV0::New(123));
415 expected_output->f_int32 = 123;
416 350
417 MultiVersionStructV0Ptr output = 351 MultiVersionStructV0Ptr output =
418 SerializeAndDeserialize<MultiVersionStructV0Ptr>(std::move(input)); 352 SerializeAndDeserialize<MultiVersionStructV0Ptr>(std::move(input));
419 EXPECT_TRUE(output); 353 EXPECT_TRUE(output);
420 EXPECT_TRUE(output->Equals(*expected_output)); 354 EXPECT_TRUE(output->Equals(*expected_output));
421 } 355 }
422 } 356 }
423 357
424 // Serialization test for native struct. 358 // Serialization test for native struct.
425 TEST_F(StructTest, Serialization_NativeStruct) { 359 TEST_F(StructTest, Serialization_NativeStruct) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 RectPtr cloned_rect = rect.Clone(); 454 RectPtr cloned_rect = rect.Clone();
521 auto data = Rect::Serialize(&rect); 455 auto data = Rect::Serialize(&rect);
522 456
523 RectPtr output; 457 RectPtr output;
524 ASSERT_TRUE(Rect::Deserialize(std::move(data), &output)); 458 ASSERT_TRUE(Rect::Deserialize(std::move(data), &output));
525 EXPECT_TRUE(output.Equals(cloned_rect)); 459 EXPECT_TRUE(output.Equals(cloned_rect));
526 } 460 }
527 461
528 { 462 {
529 // A struct containing other objects. 463 // A struct containing other objects.
530 NamedRegionPtr region(NamedRegion::New()); 464 NamedRegionPtr region(NamedRegion::New(std::string("region")));
531 region->name.emplace("region");
532 region->rects.emplace(3); 465 region->rects.emplace(3);
533 for (size_t i = 0; i < region->rects->size(); ++i) 466 for (size_t i = 0; i < region->rects->size(); ++i)
534 (*region->rects)[i] = MakeRect(static_cast<int32_t>(i) + 1); 467 (*region->rects)[i] = MakeRect(static_cast<int32_t>(i) + 1);
535 468
536 NamedRegionPtr cloned_region = region.Clone(); 469 NamedRegionPtr cloned_region = region.Clone();
537 auto data = NamedRegion::Serialize(&region); 470 auto data = NamedRegion::Serialize(&region);
538 471
539 // Make sure that the serialized result gets pointers encoded properly. 472 // Make sure that the serialized result gets pointers encoded properly.
540 auto cloned_data = data; 473 auto cloned_data = data;
541 NamedRegionPtr output; 474 NamedRegionPtr output;
542 ASSERT_TRUE(NamedRegion::Deserialize(std::move(cloned_data), &output)); 475 ASSERT_TRUE(NamedRegion::Deserialize(std::move(cloned_data), &output));
543 EXPECT_TRUE(output.Equals(cloned_region)); 476 EXPECT_TRUE(output.Equals(cloned_region));
544 } 477 }
545 478
546 { 479 {
547 // Deserialization failure. 480 // Deserialization failure.
548 RectPtr rect = MakeRect(); 481 RectPtr rect = MakeRect();
549 auto data = Rect::Serialize(&rect); 482 auto data = Rect::Serialize(&rect);
550 483
551 NamedRegionPtr output; 484 NamedRegionPtr output;
552 EXPECT_FALSE(NamedRegion::Deserialize(std::move(data), &output)); 485 EXPECT_FALSE(NamedRegion::Deserialize(std::move(data), &output));
553 } 486 }
554 } 487 }
555 488
556 } // namespace test 489 } // namespace test
557 } // namespace mojo 490 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698