Skip to content

Commit 85500e8

Browse files
author
Alejandro Martinez
committed
Changed error code for invalid special ascii chars, fixed writer tests
1 parent 3c6e2cf commit 85500e8

File tree

2 files changed

+4
-12
lines changed

2 files changed

+4
-12
lines changed

include/rapidjson/reader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -955,7 +955,7 @@ class GenericReader {
955955
if (c == '\0')
956956
RAPIDJSON_PARSE_ERROR(kParseErrorStringMissQuotationMark, is.Tell());
957957
else
958-
RAPIDJSON_PARSE_ERROR(kParseErrorStringEscapeInvalid, is.Tell());
958+
RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, is.Tell());
959959
}
960960
else {
961961
size_t offset = is.Tell();

test/unittest/writertest.cpp

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -401,16 +401,6 @@ TEST(Writer, InvalidEncoding) {
401401
static const UTF32<>::Ch s[] = { 0x110000, 0 }; // Out of U+0000 to U+10FFFF
402402
EXPECT_FALSE(writer.String(s));
403403
}
404-
405-
// Fail in decoding invalid ASCII control bytes
406-
{
407-
GenericStringBuffer<UTF16<> > buffer;
408-
Writer<GenericStringBuffer<UTF16<> >, UTF8<>, UTF16<> > writer(buffer);
409-
writer.StartArray();
410-
EXPECT_FALSE(writer.String("\x01"));
411-
EXPECT_FALSE(writer.String("\x1C"));
412-
writer.EndArray();
413-
}
414404
}
415405

416406
TEST(Writer, ValidateEncoding) {
@@ -422,8 +412,10 @@ TEST(Writer, ValidateEncoding) {
422412
EXPECT_TRUE(writer.String("\xC2\xA2")); // Cents sign U+00A2
423413
EXPECT_TRUE(writer.String("\xE2\x82\xAC")); // Euro sign U+20AC
424414
EXPECT_TRUE(writer.String("\xF0\x9D\x84\x9E")); // G clef sign U+1D11E
415+
EXPECT_TRUE(writer.String("\x01")); // SOH control U+0001
416+
EXPECT_TRUE(writer.String("\x1B")); // Escape control U+001B
425417
writer.EndArray();
426-
EXPECT_STREQ("[\"\x24\",\"\xC2\xA2\",\"\xE2\x82\xAC\",\"\xF0\x9D\x84\x9E\"]", buffer.GetString());
418+
EXPECT_STREQ("[\"\x24\",\"\xC2\xA2\",\"\xE2\x82\xAC\",\"\xF0\x9D\x84\x9E\",\"\\u0001\",\"\\u001B\"]", buffer.GetString());
427419
}
428420

429421
// Fail in decoding invalid UTF-8 sequence http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt

0 commit comments

Comments
 (0)