@@ -1909,6 +1909,33 @@ JSONTEST_FIXTURE(CharReaderAllowDropNullTest, issue178) {
19091909 JSONTEST_ASSERT (errs == " " );
19101910 JSONTEST_ASSERT_EQUAL (1u , root.size ());
19111911 }
1912+ {
1913+ char const doc[] = " [,]" ;
1914+ bool ok = reader->parse (
1915+ doc, doc + std::strlen (doc),
1916+ &root, &errs);
1917+ JSONTEST_ASSERT (ok);
1918+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
1919+ JSONTEST_ASSERT_EQUAL (2u , root.size ());
1920+ }
1921+ {
1922+ char const doc[] = " [,,,]" ;
1923+ bool ok = reader->parse (
1924+ doc, doc + std::strlen (doc),
1925+ &root, &errs);
1926+ JSONTEST_ASSERT (ok);
1927+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
1928+ JSONTEST_ASSERT_EQUAL (4u , root.size ());
1929+ }
1930+ {
1931+ char const doc[] = " [null,]" ;
1932+ bool ok = reader->parse (
1933+ doc, doc + std::strlen (doc),
1934+ &root, &errs);
1935+ JSONTEST_ASSERT (ok);
1936+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
1937+ JSONTEST_ASSERT_EQUAL (2u , root.size ());
1938+ }
19121939 {
19131940 char const doc[] = " [,null]" ;
19141941 bool ok = reader->parse (
@@ -1918,6 +1945,33 @@ JSONTEST_FIXTURE(CharReaderAllowDropNullTest, issue178) {
19181945 JSONTEST_ASSERT (errs == " " );
19191946 JSONTEST_ASSERT_EQUAL (2u , root.size ());
19201947 }
1948+ {
1949+ char const doc[] = " [,,]" ;
1950+ bool ok = reader->parse (
1951+ doc, doc + std::strlen (doc),
1952+ &root, &errs);
1953+ JSONTEST_ASSERT (ok);
1954+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
1955+ JSONTEST_ASSERT_EQUAL (3u , root.size ());
1956+ }
1957+ {
1958+ char const doc[] = " [null,,]" ;
1959+ bool ok = reader->parse (
1960+ doc, doc + std::strlen (doc),
1961+ &root, &errs);
1962+ JSONTEST_ASSERT (ok);
1963+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
1964+ JSONTEST_ASSERT_EQUAL (3u , root.size ());
1965+ }
1966+ {
1967+ char const doc[] = " [,null,]" ;
1968+ bool ok = reader->parse (
1969+ doc, doc + std::strlen (doc),
1970+ &root, &errs);
1971+ JSONTEST_ASSERT (ok);
1972+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
1973+ JSONTEST_ASSERT_EQUAL (3u , root.size ());
1974+ }
19211975 {
19221976 char const doc[] = " [,,null]" ;
19231977 bool ok = reader->parse (
@@ -1927,6 +1981,26 @@ JSONTEST_FIXTURE(CharReaderAllowDropNullTest, issue178) {
19271981 JSONTEST_ASSERT (errs == " " );
19281982 JSONTEST_ASSERT_EQUAL (3u , root.size ());
19291983 }
1984+ {
1985+ char const doc[] = " [[],,,]" ;
1986+ bool ok = reader->parse (
1987+ doc, doc + std::strlen (doc),
1988+ &root, &errs);
1989+ JSONTEST_ASSERT (ok);
1990+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
1991+ JSONTEST_ASSERT_EQUAL (4u , root.size ());
1992+ JSONTEST_ASSERT_EQUAL (Json::arrayValue, root[0u ]);
1993+ }
1994+ {
1995+ char const doc[] = " [,[],,]" ;
1996+ bool ok = reader->parse (
1997+ doc, doc + std::strlen (doc),
1998+ &root, &errs);
1999+ JSONTEST_ASSERT (ok);
2000+ JSONTEST_ASSERT_STRING_EQUAL (" " , errs);
2001+ JSONTEST_ASSERT_EQUAL (4u , root.size ());
2002+ JSONTEST_ASSERT_EQUAL (Json::arrayValue, root[1u ]);
2003+ }
19302004 {
19312005 char const doc[] = " [,,,[]]" ;
19322006 bool ok = reader->parse (
0 commit comments