Added insitu parsing test for kParseStopWhenDoneFlag

Related to discussion in #83
This commit is contained in:
miloyip 2014-07-29 13:01:35 +08:00
parent e6f344637b
commit fdd380bbc0

View File

@ -578,6 +578,29 @@ TEST(Reader, ParseIterative_MultipleRoot) {
TestMultipleRoot<kParseIterativeFlag | kParseStopWhenDoneFlag>();
}
template <unsigned parseFlags>
void TestInsituMultipleRoot() {
char* buffer = strdup("{}[] a");
InsituStringStream s(buffer);
ParseMultipleRootHandler h;
Reader reader;
EXPECT_TRUE(reader.Parse<kParseInsituFlag | parseFlags>(s, h));
EXPECT_EQ(2u, h.step_);
EXPECT_TRUE(reader.Parse<kParseInsituFlag | parseFlags>(s, h));
EXPECT_EQ(4u, h.step_);
EXPECT_EQ(' ', s.Take());
EXPECT_EQ('a', s.Take());
free(buffer);
}
TEST(Reader, ParseInsitu_MultipleRoot) {
TestInsituMultipleRoot<kParseStopWhenDoneFlag>();
}
TEST(Reader, ParseInsituIterative_MultipleRoot) {
TestInsituMultipleRoot<kParseIterativeFlag | kParseStopWhenDoneFlag>();
}
#define TEST_ERROR(errorCode, str) \
{ \
char buffer[1001]; \