Added unittests for invalid ascii control chars

This commit is contained in:
Alejandro Martinez 2017-03-23 10:14:17 +00:00
parent da4fd6794c
commit 3c6e2cf030
2 changed files with 12 additions and 0 deletions

View File

@ -725,6 +725,8 @@ TEST(Reader, ParseString_Error) {
// Malform ASCII sequence
TEST_STRINGENCODING_ERROR(ASCII<>, UTF8<>, char, ARRAY('[', '\"', char(0x80u), '\"', ']', '\0'));
TEST_STRINGENCODING_ERROR(ASCII<>, UTF8<>, char, ARRAY('[', '\"', char(0x01u), '\"', ']', '\0'));
TEST_STRINGENCODING_ERROR(ASCII<>, UTF8<>, char, ARRAY('[', '\"', char(0x1Cu), '\"', ']', '\0'));
#undef ARRAY
#undef TEST_STRINGARRAY_ERROR

View File

@ -401,6 +401,16 @@ TEST(Writer, InvalidEncoding) {
static const UTF32<>::Ch s[] = { 0x110000, 0 }; // Out of U+0000 to U+10FFFF
EXPECT_FALSE(writer.String(s));
}
// Fail in decoding invalid ASCII control bytes
{
GenericStringBuffer<UTF16<> > buffer;
Writer<GenericStringBuffer<UTF16<> >, UTF8<>, UTF16<> > writer(buffer);
writer.StartArray();
EXPECT_FALSE(writer.String("\x01"));
EXPECT_FALSE(writer.String("\x1C"));
writer.EndArray();
}
}
TEST(Writer, ValidateEncoding) {