OLD | NEW |
1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
4 // | 4 // |
5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
7 // met: | 7 // met: |
8 // | 8 // |
9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 | 481 |
482 EXPECT_EQ(repeated_field->number(), unknown_fields.field(2).number()); | 482 EXPECT_EQ(repeated_field->number(), unknown_fields.field(2).number()); |
483 ASSERT_EQ(UnknownField::TYPE_VARINT, unknown_fields.field(2).type()); | 483 ASSERT_EQ(UnknownField::TYPE_VARINT, unknown_fields.field(2).type()); |
484 EXPECT_EQ(6, unknown_fields.field(2).varint()); | 484 EXPECT_EQ(6, unknown_fields.field(2).varint()); |
485 } | 485 } |
486 } | 486 } |
487 | 487 |
488 TEST_F(UnknownFieldSetTest, SpaceUsedExcludingSelf) { | 488 TEST_F(UnknownFieldSetTest, SpaceUsedExcludingSelf) { |
489 UnknownFieldSet empty; | 489 UnknownFieldSet empty; |
490 empty.AddVarint(1, 0); | 490 empty.AddVarint(1, 0); |
491 EXPECT_EQ(sizeof(std::vector<UnknownField>) + sizeof(UnknownField), | 491 EXPECT_EQ(sizeof(vector<UnknownField>) + sizeof(UnknownField), |
492 empty.SpaceUsedExcludingSelf()); | 492 empty.SpaceUsedExcludingSelf()); |
493 } | 493 } |
494 | 494 |
495 TEST_F(UnknownFieldSetTest, SpaceUsed) { | 495 TEST_F(UnknownFieldSetTest, SpaceUsed) { |
496 unittest::TestEmptyMessage empty_message; | 496 unittest::TestEmptyMessage empty_message; |
497 | 497 |
498 // Make sure an unknown field set has zero space used until a field is | 498 // Make sure an unknown field set has zero space used until a field is |
499 // actually added. | 499 // actually added. |
500 int base_size = empty_message.SpaceUsed(); | 500 int base_size = empty_message.SpaceUsed(); |
501 UnknownFieldSet* unknown_fields = empty_message.mutable_unknown_fields(); | 501 UnknownFieldSet* unknown_fields = empty_message.mutable_unknown_fields(); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
552 EXPECT_EQ(i, unknown.field(i).fixed32()); | 552 EXPECT_EQ(i, unknown.field(i).fixed32()); |
553 } else { | 553 } else { |
554 EXPECT_EQ(i + num, unknown.field(i).fixed32()); | 554 EXPECT_EQ(i + num, unknown.field(i).fixed32()); |
555 } | 555 } |
556 } | 556 } |
557 } | 557 } |
558 } | 558 } |
559 } | 559 } |
560 } | 560 } |
561 | 561 |
562 void CheckDeleteByNumber(const std::vector<int>& field_numbers, | 562 void CheckDeleteByNumber(const vector<int>& field_numbers, int deleted_number, |
563 int deleted_number, | 563 const vector<int>& expected_field_nubmers) { |
564 const std::vector<int>& expected_field_nubmers) { | |
565 UnknownFieldSet unknown_fields; | 564 UnknownFieldSet unknown_fields; |
566 for (int i = 0; i < field_numbers.size(); ++i) { | 565 for (int i = 0; i < field_numbers.size(); ++i) { |
567 unknown_fields.AddFixed32(field_numbers[i], i); | 566 unknown_fields.AddFixed32(field_numbers[i], i); |
568 } | 567 } |
569 unknown_fields.DeleteByNumber(deleted_number); | 568 unknown_fields.DeleteByNumber(deleted_number); |
570 ASSERT_EQ(expected_field_nubmers.size(), unknown_fields.field_count()); | 569 ASSERT_EQ(expected_field_nubmers.size(), unknown_fields.field_count()); |
571 for (int i = 0; i < expected_field_nubmers.size(); ++i) { | 570 for (int i = 0; i < expected_field_nubmers.size(); ++i) { |
572 EXPECT_EQ(expected_field_nubmers[i], | 571 EXPECT_EQ(expected_field_nubmers[i], |
573 unknown_fields.field(i).number()); | 572 unknown_fields.field(i).number()); |
574 } | 573 } |
575 } | 574 } |
576 | 575 |
577 #define MAKE_VECTOR(x) std::vector<int>(x, x + GOOGLE_ARRAYSIZE(x)) | 576 #define MAKE_VECTOR(x) vector<int>(x, x + GOOGLE_ARRAYSIZE(x)) |
578 TEST_F(UnknownFieldSetTest, DeleteByNumber) { | 577 TEST_F(UnknownFieldSetTest, DeleteByNumber) { |
579 CheckDeleteByNumber(std::vector<int>(), 1, std::vector<int>()); | 578 CheckDeleteByNumber(vector<int>(), 1, vector<int>()); |
580 static const int kTestFieldNumbers1[] = {1, 2, 3}; | 579 static const int kTestFieldNumbers1[] = {1, 2, 3}; |
581 static const int kFieldNumberToDelete1 = 1; | 580 static const int kFieldNumberToDelete1 = 1; |
582 static const int kExpectedFieldNumbers1[] = {2, 3}; | 581 static const int kExpectedFieldNumbers1[] = {2, 3}; |
583 CheckDeleteByNumber(MAKE_VECTOR(kTestFieldNumbers1), kFieldNumberToDelete1, | 582 CheckDeleteByNumber(MAKE_VECTOR(kTestFieldNumbers1), kFieldNumberToDelete1, |
584 MAKE_VECTOR(kExpectedFieldNumbers1)); | 583 MAKE_VECTOR(kExpectedFieldNumbers1)); |
585 static const int kTestFieldNumbers2[] = {1, 2, 3}; | 584 static const int kTestFieldNumbers2[] = {1, 2, 3}; |
586 static const int kFieldNumberToDelete2 = 2; | 585 static const int kFieldNumberToDelete2 = 2; |
587 static const int kExpectedFieldNumbers2[] = {1, 3}; | 586 static const int kExpectedFieldNumbers2[] = {1, 3}; |
588 CheckDeleteByNumber(MAKE_VECTOR(kTestFieldNumbers2), kFieldNumberToDelete2, | 587 CheckDeleteByNumber(MAKE_VECTOR(kTestFieldNumbers2), kFieldNumberToDelete2, |
589 MAKE_VECTOR(kExpectedFieldNumbers2)); | 588 MAKE_VECTOR(kExpectedFieldNumbers2)); |
(...skipping 11 matching lines...) Expand all Loading... |
601 static const int kFieldNumberToDelete5 = 6; | 600 static const int kFieldNumberToDelete5 = 6; |
602 static const int kExpectedFieldNumbers5[] = {1, 2, 3, 4, 5}; | 601 static const int kExpectedFieldNumbers5[] = {1, 2, 3, 4, 5}; |
603 CheckDeleteByNumber(MAKE_VECTOR(kTestFieldNumbers5), kFieldNumberToDelete5, | 602 CheckDeleteByNumber(MAKE_VECTOR(kTestFieldNumbers5), kFieldNumberToDelete5, |
604 MAKE_VECTOR(kExpectedFieldNumbers5)); | 603 MAKE_VECTOR(kExpectedFieldNumbers5)); |
605 } | 604 } |
606 #undef MAKE_VECTOR | 605 #undef MAKE_VECTOR |
607 } // namespace | 606 } // namespace |
608 | 607 |
609 } // namespace protobuf | 608 } // namespace protobuf |
610 } // namespace google | 609 } // namespace google |
OLD | NEW |