Index: third_party/protobuf/objectivec/Tests/GPBCodedOuputStreamTests.m |
diff --git a/third_party/protobuf/objectivec/Tests/GPBCodedOuputStreamTests.m b/third_party/protobuf/objectivec/Tests/GPBCodedOuputStreamTests.m |
index 2ad326beb96a722d4e998fd51c7f0d273ba9869d..0723b645f75c2c79733dee19fbb95a3b43d42a5f 100644 |
--- a/third_party/protobuf/objectivec/Tests/GPBCodedOuputStreamTests.m |
+++ b/third_party/protobuf/objectivec/Tests/GPBCodedOuputStreamTests.m |
@@ -193,32 +193,6 @@ |
} |
} |
-- (void)assertWriteStringNoTag:(NSData*)data |
- value:(NSString *)value |
- context:(NSString *)contextMessage { |
- NSOutputStream* rawOutput = [NSOutputStream outputStreamToMemory]; |
- GPBCodedOutputStream* output = |
- [GPBCodedOutputStream streamWithOutputStream:rawOutput]; |
- [output writeStringNoTag:value]; |
- [output flush]; |
- |
- NSData* actual = |
- [rawOutput propertyForKey:NSStreamDataWrittenToMemoryStreamKey]; |
- XCTAssertEqualObjects(data, actual, @"%@", contextMessage); |
- |
- // Try different block sizes. |
- for (int blockSize = 1; blockSize <= 16; blockSize *= 2) { |
- rawOutput = [NSOutputStream outputStreamToMemory]; |
- output = [GPBCodedOutputStream streamWithOutputStream:rawOutput |
- bufferSize:blockSize]; |
- [output writeStringNoTag:value]; |
- [output flush]; |
- |
- actual = [rawOutput propertyForKey:NSStreamDataWrittenToMemoryStreamKey]; |
- XCTAssertEqualObjects(data, actual, @"%@", contextMessage); |
- } |
-} |
- |
- (void)testWriteVarint1 { |
[self assertWriteVarint:bytes(0x00) value:0]; |
} |
@@ -363,64 +337,4 @@ |
XCTAssertEqualObjects(rawBytes, goldenData); |
} |
-- (void)testCFStringGetCStringPtrAndStringsWithNullChars { |
- // This test exists to verify that CFStrings with embedded NULLs still expose |
- // their raw buffer if they are backed by UTF8 storage. If this fails, the |
- // quick/direct access paths in GPBCodedOutputStream that depend on |
- // CFStringGetCStringPtr need to be re-evalutated (maybe just removed). |
- // And yes, we do get NULLs in strings from some servers. |
- |
- char zeroTest[] = "\0Test\0String"; |
- // Note: there is a \0 at the end of this since it is a c-string. |
- NSString *asNSString = [[NSString alloc] initWithBytes:zeroTest |
- length:sizeof(zeroTest) |
- encoding:NSUTF8StringEncoding]; |
- const char *cString = |
- CFStringGetCStringPtr((CFStringRef)asNSString, kCFStringEncodingUTF8); |
- XCTAssertTrue(cString != NULL); |
- // Again, if the above assert fails, then it means NSString no longer exposes |
- // the raw utf8 storage of a string created from utf8 input, so the code using |
- // CFStringGetCStringPtr in GPBCodedOutputStream will still work (it will take |
- // a different code path); but the optimizations for when |
- // CFStringGetCStringPtr does work could possibly go away. |
- |
- XCTAssertEqual(sizeof(zeroTest), |
- [asNSString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]); |
- XCTAssertTrue(0 == memcmp(cString, zeroTest, sizeof(zeroTest))); |
- [asNSString release]; |
-} |
- |
-- (void)testWriteStringsWithZeroChar { |
- // Unicode allows `\0` as a character, and NSString is a class cluster, so |
- // there are a few different classes that could end up beind a given string. |
- // Historically, we've seen differences based on constant strings in code and |
- // strings built via the NSString apis. So this round trips them to ensure |
- // they are acting as expected. |
- |
- NSArray<NSString *> *strs = @[ |
- @"\0at start", |
- @"in\0middle", |
- @"at end\0", |
- ]; |
- int i = 0; |
- for (NSString *str in strs) { |
- NSData *asUTF8 = [str dataUsingEncoding:NSUTF8StringEncoding]; |
- NSMutableData *expected = [NSMutableData data]; |
- uint8_t lengthByte = (uint8_t)asUTF8.length; |
- [expected appendBytes:&lengthByte length:1]; |
- [expected appendData:asUTF8]; |
- |
- NSString *context = [NSString stringWithFormat:@"Loop %d - Literal", i]; |
- [self assertWriteStringNoTag:expected value:str context:context]; |
- |
- // Force a new string to be built which gets a different class from the |
- // NSString class cluster than the literal did. |
- NSString *str2 = [NSString stringWithFormat:@"%@", str]; |
- context = [NSString stringWithFormat:@"Loop %d - Built", i]; |
- [self assertWriteStringNoTag:expected value:str2 context:context]; |
- |
- ++i; |
- } |
-} |
- |
@end |