fix a base85 bug on iOS

PiperOrigin-RevId: 731849590
This commit is contained in:
Guogang Li
2025-02-27 13:44:15 -08:00
committed by Copybara-Service
parent 37538b817e
commit 528c71490c
2 changed files with 14 additions and 1 deletions
+2 -1
View File
@@ -67,7 +67,8 @@ std::string Base85Encode(const std::string& input, bool padding) {
char* result_buffer_end = result.data() + result.size();
size_t bytes = input.size();
const char* data = input.data();
const unsigned char* data =
reinterpret_cast<const unsigned char*>(input.data());
while (bytes) {
int count;
uint32_t value = 0;
@@ -43,6 +43,18 @@
XCTAssertEqualObjects(decodedData, data);
}
- (void)testEncodingAndDecoding {
unsigned char hexBytes[] = {0x20, 0x25, 0xdf, 0x06, 0x24, 0x00, 0x11, 0x88, 0x07,
0xda, 0x54, 0x65, 0x73, 0x74, 0x20, 0x64, 0x65};
NSUInteger length = sizeof(hexBytes) / sizeof(hexBytes[0]);
NSData *data = [NSData dataWithBytes:hexBytes length:length];
NSString *actual = [data base85EncodedString];
XCTAssertEqualObjects(actual, @"+=5nL,QJF4#MN-gF*&O8AH");
XCTAssertEqualObjects([[NSData alloc] initWithBase85EncodedString:actual], data);
}
- (void)testEncodingEmptyData {
XCTAssertEqualObjects([[@"" dataUsingEncoding:NSUTF8StringEncoding] base85EncodedString], @"");
}