Add output parameter to Encoding::decode() to get encoded size
This commit is contained in:
1 parent
ee37616f82
commit
39088f6518
3 files changed
+64
-48
No files matched your search
@@ -55,17 +55,26 @@ TEST(Encoding_beginning_of_code_point, returns_pointer_to_beginning_of_code_poin
|
||||
|
||||
TEST(Encoding_decode, decodes_UTF_8_correctly)
|
||||
{
|
||||
EXPECT_EQ((uint32_t)'%', Encoding::decode(Encoding::UTF_8, (const uint8_t *)"%"));
|
||||
EXPECT_EQ(0x42u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xC1\x82"));
|
||||
EXPECT_EQ(0x1083u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xE1\x82\x83"));
|
||||
EXPECT_EQ(0x420C4u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xF1\x82\x83\x84"));
|
||||
EXPECT_EQ(0x1083105u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xF9\x82\x83\x84\x85"));
|
||||
EXPECT_EQ(0x420C4146u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xFD\x82\x83\x84\x85\x86"));
|
||||
uint8_t size = 0xFFu;
|
||||
EXPECT_EQ((uint32_t)'%', Encoding::decode(Encoding::UTF_8, (const uint8_t *)"%", &size));
|
||||
EXPECT_EQ(1u, size);
|
||||
EXPECT_EQ(0x42u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xC1\x82", &size));
|
||||
EXPECT_EQ(2u, size);
|
||||
EXPECT_EQ(0x1083u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xE1\x82\x83", &size));
|
||||
EXPECT_EQ(3u, size);
|
||||
EXPECT_EQ(0x420C4u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xF1\x82\x83\x84", &size));
|
||||
EXPECT_EQ(4u, size);
|
||||
EXPECT_EQ(0x1083105u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xF9\x82\x83\x84\x85", &size));
|
||||
EXPECT_EQ(5u, size);
|
||||
EXPECT_EQ(0x420C4146u, Encoding::decode(Encoding::UTF_8, (const uint8_t *)"\xFD\x82\x83\x84\x85\x86", &size));
|
||||
EXPECT_EQ(6u, size);
|
||||
}
|
||||
|
||||
TEST(Encoding_decode, decodes_CP_1252_correctly)
|
||||
{
|
||||
EXPECT_EQ(0x99u, Encoding::decode(Encoding::CP_1252, (const uint8_t *)"\x99"));
|
||||
uint8_t size;
|
||||
EXPECT_EQ(0x99u, Encoding::decode(Encoding::CP_1252, (const uint8_t *)"\x99", &size));
|
||||
EXPECT_EQ(1u, size);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user