From 3c6e2cf0309c4e146c8ed18fd16096136fecbf00 Mon Sep 17 00:00:00 2001 From: Alejandro Martinez Date: Thu, 23 Mar 2017 10:14:17 +0000 Subject: [PATCH] Added unittests for invalid ascii control chars --- test/unittest/readertest.cpp | 2 ++ test/unittest/writertest.cpp | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/test/unittest/readertest.cpp b/test/unittest/readertest.cpp index 3555f11..5078f52 100644 --- a/test/unittest/readertest.cpp +++ b/test/unittest/readertest.cpp @@ -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 diff --git a/test/unittest/writertest.cpp b/test/unittest/writertest.cpp index e630bb9..bc28e02 100644 --- a/test/unittest/writertest.cpp +++ b/test/unittest/writertest.cpp @@ -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 > buffer; + Writer >, UTF8<>, UTF16<> > writer(buffer); + writer.StartArray(); + EXPECT_FALSE(writer.String("\x01")); + EXPECT_FALSE(writer.String("\x1C")); + writer.EndArray(); + } } TEST(Writer, ValidateEncoding) {