Skip to content

Commit bd4c282

Browse files
committed
Test coverage up
Add more tests! Good for coverage.
1 parent 0f8389e commit bd4c282

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed

test/perftest/rapidjsontest.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,35 @@ TEST_F(RapidJson, SIMD_SUFFIX(ReaderParseIterativeInsitu_DummyHandler)) {
152152
}
153153
}
154154

155+
TEST_F(RapidJson, SIMD_SUFFIX(ReaderParseIterativePull_DummyHandler)) {
156+
for (size_t i = 0; i < kTrialCount; i++) {
157+
StringStream s(json_);
158+
BaseReaderHandler<> h;
159+
Reader reader;
160+
reader.IterativeParseInit();
161+
while (!reader.IterativeParseComplete()) {
162+
if (!reader.IterativeParseNext<kParseDefaultFlags>(s, h))
163+
break;
164+
}
165+
EXPECT_FALSE(reader.HasParseError());
166+
}
167+
}
168+
169+
TEST_F(RapidJson, SIMD_SUFFIX(ReaderParseIterativePullInsitu_DummyHandler)) {
170+
for (size_t i = 0; i < kTrialCount; i++) {
171+
memcpy(temp_, json_, length_ + 1);
172+
InsituStringStream s(temp_);
173+
BaseReaderHandler<> h;
174+
Reader reader;
175+
reader.IterativeParseInit();
176+
while (!reader.IterativeParseComplete()) {
177+
if (!reader.IterativeParseNext<kParseDefaultFlags|kParseInsituFlag>(s, h))
178+
break;
179+
}
180+
EXPECT_FALSE(reader.HasParseError());
181+
}
182+
}
183+
155184
TEST_F(RapidJson, SIMD_SUFFIX(ReaderParse_DummyHandler_ValidateEncoding)) {
156185
for (size_t i = 0; i < kTrialCount; i++) {
157186
StringStream s(json_);

test/unittest/jsoncheckertest.cpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,24 @@ static char* ReadFile(const char* filename, size_t& length) {
4848
return json;
4949
}
5050

51+
struct NoOpHandler {
52+
bool Null() { return true; }
53+
bool Bool(bool) { return true; }
54+
bool Int(int) { return true; }
55+
bool Uint(unsigned) { return true; }
56+
bool Int64(int64_t) { return true; }
57+
bool Uint64(uint64_t) { return true; }
58+
bool Double(double) { return true; }
59+
bool RawNumber(const char*, SizeType, bool) { return true; }
60+
bool String(const char*, SizeType, bool) { return true; }
61+
bool StartObject() { return true; }
62+
bool Key(const char*, SizeType, bool) { return true; }
63+
bool EndObject(SizeType) { return true; }
64+
bool StartArray() { return true; }
65+
bool EndArray(SizeType) { return true; }
66+
};
67+
68+
5169
TEST(JsonChecker, Reader) {
5270
char filename[256];
5371

@@ -67,13 +85,26 @@ TEST(JsonChecker, Reader) {
6785
continue;
6886
}
6987

88+
// Test stack-based parsing.
7089
GenericDocument<UTF8<>, CrtAllocator> document; // Use Crt allocator to check exception-safety (no memory leak)
7190
document.Parse(json);
7291
EXPECT_TRUE(document.HasParseError()) << filename;
7392

93+
// Test iterative parsing.
7494
document.Parse<kParseIterativeFlag>(json);
7595
EXPECT_TRUE(document.HasParseError()) << filename;
7696

97+
// Test iterative pull-parsing.
98+
Reader reader;
99+
StringStream ss(json);
100+
NoOpHandler h;
101+
reader.IterativeParseInit();
102+
while (!reader.IterativeParseComplete()) {
103+
if (!reader.IterativeParseNext<kParseDefaultFlags>(ss, h))
104+
break;
105+
}
106+
EXPECT_TRUE(reader.HasParseError()) << filename;
107+
77108
free(json);
78109
}
79110

@@ -87,12 +118,25 @@ TEST(JsonChecker, Reader) {
87118
continue;
88119
}
89120

121+
// Test stack-based parsing.
90122
GenericDocument<UTF8<>, CrtAllocator> document; // Use Crt allocator to check exception-safety (no memory leak)
91123
document.Parse(json);
92124
EXPECT_FALSE(document.HasParseError()) << filename;
93125

126+
// Test iterative parsing.
94127
document.Parse<kParseIterativeFlag>(json);
95128
EXPECT_FALSE(document.HasParseError()) << filename;
129+
130+
// Test iterative pull-parsing.
131+
Reader reader;
132+
StringStream ss(json);
133+
NoOpHandler h;
134+
reader.IterativeParseInit();
135+
while (!reader.IterativeParseComplete()) {
136+
if (!reader.IterativeParseNext<kParseDefaultFlags>(ss, h))
137+
break;
138+
}
139+
EXPECT_FALSE(reader.HasParseError()) << filename;
96140

97141
free(json);
98142
}

0 commit comments

Comments
 (0)