|
@@ -34,6 +34,10 @@
|
|
|
#import "GPBUnknownFieldSet_PackagePrivate.h"
|
|
|
#import "google/protobuf/Unittest.pbobjc.h"
|
|
|
|
|
|
+static NSData *DataFromCStr(const char *str) {
|
|
|
+ return [NSData dataWithBytes:str length:strlen(str)];
|
|
|
+}
|
|
|
+
|
|
|
@interface GPBUnknownFieldSet (GPBUnknownFieldSetTest)
|
|
|
- (void)getTags:(int32_t*)tags;
|
|
|
@end
|
|
@@ -112,6 +116,9 @@
|
|
|
field = [[[GPBUnknownField alloc] initWithNumber:3] autorelease];
|
|
|
[field addVarint:4];
|
|
|
[set1 addField:field];
|
|
|
+ field = [[[GPBUnknownField alloc] initWithNumber:10] autorelease];
|
|
|
+ [field addLengthDelimited:DataFromCStr("data1")];
|
|
|
+ [set1 addField:field];
|
|
|
|
|
|
GPBUnknownFieldSet* set2 = [[[GPBUnknownFieldSet alloc] init] autorelease];
|
|
|
field = [[[GPBUnknownField alloc] initWithNumber:1] autorelease];
|
|
@@ -120,22 +127,26 @@
|
|
|
field = [[[GPBUnknownField alloc] initWithNumber:3] autorelease];
|
|
|
[field addVarint:3];
|
|
|
[set2 addField:field];
|
|
|
+ field = [[[GPBUnknownField alloc] initWithNumber:10] autorelease];
|
|
|
+ [field addLengthDelimited:DataFromCStr("data2")];
|
|
|
+ [set2 addField:field];
|
|
|
|
|
|
GPBUnknownFieldSet* set3 = [[[GPBUnknownFieldSet alloc] init] autorelease];
|
|
|
field = [[[GPBUnknownField alloc] initWithNumber:1] autorelease];
|
|
|
[field addVarint:1];
|
|
|
[set3 addField:field];
|
|
|
- field = [[[GPBUnknownField alloc] initWithNumber:3] autorelease];
|
|
|
- [field addVarint:4];
|
|
|
- [set3 addField:field];
|
|
|
-
|
|
|
- GPBUnknownFieldSet* set4 = [[[GPBUnknownFieldSet alloc] init] autorelease];
|
|
|
field = [[[GPBUnknownField alloc] initWithNumber:2] autorelease];
|
|
|
[field addVarint:2];
|
|
|
- [set4 addField:field];
|
|
|
+ [set3 addField:field];
|
|
|
field = [[[GPBUnknownField alloc] initWithNumber:3] autorelease];
|
|
|
+ [field addVarint:4];
|
|
|
+ [set3 addField:field];
|
|
|
[field addVarint:3];
|
|
|
- [set4 addField:field];
|
|
|
+ [set3 addField:field];
|
|
|
+ field = [[[GPBUnknownField alloc] initWithNumber:10] autorelease];
|
|
|
+ [field addLengthDelimited:DataFromCStr("data1")];
|
|
|
+ [field addLengthDelimited:DataFromCStr("data2")];
|
|
|
+ [set3 addField:field];
|
|
|
|
|
|
TestEmptyMessage* source1 = [TestEmptyMessage message];
|
|
|
[source1 setUnknownFields:set1];
|
|
@@ -143,8 +154,6 @@
|
|
|
[source2 setUnknownFields:set2];
|
|
|
TestEmptyMessage* source3 = [TestEmptyMessage message];
|
|
|
[source3 setUnknownFields:set3];
|
|
|
- TestEmptyMessage* source4 = [TestEmptyMessage message];
|
|
|
- [source4 setUnknownFields:set4];
|
|
|
|
|
|
TestEmptyMessage* destination1 = [TestEmptyMessage message];
|
|
|
[destination1 mergeFrom:source1];
|
|
@@ -152,9 +161,10 @@
|
|
|
|
|
|
TestEmptyMessage* destination2 = [TestEmptyMessage message];
|
|
|
[destination2 mergeFrom:source3];
|
|
|
- [destination2 mergeFrom:source4];
|
|
|
|
|
|
XCTAssertEqualObjects(destination1.data, destination2.data);
|
|
|
+ XCTAssertEqualObjects(destination1.data, source3.data);
|
|
|
+ XCTAssertEqualObjects(destination2.data, source3.data);
|
|
|
}
|
|
|
|
|
|
- (void)testClearMessage {
|