diff --git a/test/unittest/readertest.cpp b/test/unittest/readertest.cpp index 61bc38c..1b71db8 100644 --- a/test/unittest/readertest.cpp +++ b/test/unittest/readertest.cpp @@ -578,6 +578,29 @@ TEST(Reader, ParseIterative_MultipleRoot) { TestMultipleRoot(); } +template +void TestInsituMultipleRoot() { + char* buffer = strdup("{}[] a"); + InsituStringStream s(buffer); + ParseMultipleRootHandler h; + Reader reader; + EXPECT_TRUE(reader.Parse(s, h)); + EXPECT_EQ(2u, h.step_); + EXPECT_TRUE(reader.Parse(s, h)); + EXPECT_EQ(4u, h.step_); + EXPECT_EQ(' ', s.Take()); + EXPECT_EQ('a', s.Take()); + free(buffer); +} + +TEST(Reader, ParseInsitu_MultipleRoot) { + TestInsituMultipleRoot(); +} + +TEST(Reader, ParseInsituIterative_MultipleRoot) { + TestInsituMultipleRoot(); +} + #define TEST_ERROR(errorCode, str) \ { \ char buffer[1001]; \