Third trial on writer coverage
This commit is contained in:
parent
3da4afd259
commit
a6f9cb85ab
@ -136,47 +136,50 @@ TEST(SIMD, SIMD_SUFFIX(ScanCopyUnescapedString)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST(SIMD, SIMD_SUFFIX(ScanWriteUnescapedString)) {
|
TEST(SIMD, SIMD_SUFFIX(ScanWriteUnescapedString)) {
|
||||||
for (size_t step = 0; step < 1024; step++) {
|
char buffer[2048 + 1 + 32];
|
||||||
char s[2048 + 1];
|
for (size_t offset = 0; offset < 32; offset++) {
|
||||||
char *p = s;
|
for (size_t step = 0; step < 1024; step++) {
|
||||||
for (size_t i = 0; i < step; i++)
|
char* s = buffer + offset;
|
||||||
*p++= "ABCD"[i % 4];
|
char* p = s;
|
||||||
char escape = "\0\n\\\""[step % 4];
|
for (size_t i = 0; i < step; i++)
|
||||||
*p++ = escape;
|
*p++ = "ABCD"[i % 4];
|
||||||
for (size_t i = 0; i < step; i++)
|
char escape = "\0\n\\\""[step % 4];
|
||||||
*p++= "ABCD"[i % 4];
|
*p++ = escape;
|
||||||
|
for (size_t i = 0; i < step; i++)
|
||||||
|
*p++ = "ABCD"[i % 4];
|
||||||
|
|
||||||
StringBuffer sb;
|
StringBuffer sb;
|
||||||
Writer<StringBuffer> writer(sb);
|
Writer<StringBuffer> writer(sb);
|
||||||
writer.String(s, SizeType(step * 2 + 1));
|
writer.String(s, SizeType(step * 2 + 1));
|
||||||
const char* q = sb.GetString();
|
const char* q = sb.GetString();
|
||||||
EXPECT_EQ('\"', *q++);
|
|
||||||
for (size_t i = 0; i < step; i++)
|
|
||||||
EXPECT_EQ("ABCD"[i % 4], *q++);
|
|
||||||
if (escape == '\0') {
|
|
||||||
EXPECT_EQ('\\', *q++);
|
|
||||||
EXPECT_EQ('u', *q++);
|
|
||||||
EXPECT_EQ('0', *q++);
|
|
||||||
EXPECT_EQ('0', *q++);
|
|
||||||
EXPECT_EQ('0', *q++);
|
|
||||||
EXPECT_EQ('0', *q++);
|
|
||||||
}
|
|
||||||
else if (escape == '\n') {
|
|
||||||
EXPECT_EQ('\\', *q++);
|
|
||||||
EXPECT_EQ('n', *q++);
|
|
||||||
}
|
|
||||||
else if (escape == '\\') {
|
|
||||||
EXPECT_EQ('\\', *q++);
|
|
||||||
EXPECT_EQ('\\', *q++);
|
|
||||||
}
|
|
||||||
else if (escape == '\"') {
|
|
||||||
EXPECT_EQ('\\', *q++);
|
|
||||||
EXPECT_EQ('\"', *q++);
|
EXPECT_EQ('\"', *q++);
|
||||||
|
for (size_t i = 0; i < step; i++)
|
||||||
|
EXPECT_EQ("ABCD"[i % 4], *q++);
|
||||||
|
if (escape == '\0') {
|
||||||
|
EXPECT_EQ('\\', *q++);
|
||||||
|
EXPECT_EQ('u', *q++);
|
||||||
|
EXPECT_EQ('0', *q++);
|
||||||
|
EXPECT_EQ('0', *q++);
|
||||||
|
EXPECT_EQ('0', *q++);
|
||||||
|
EXPECT_EQ('0', *q++);
|
||||||
|
}
|
||||||
|
else if (escape == '\n') {
|
||||||
|
EXPECT_EQ('\\', *q++);
|
||||||
|
EXPECT_EQ('n', *q++);
|
||||||
|
}
|
||||||
|
else if (escape == '\\') {
|
||||||
|
EXPECT_EQ('\\', *q++);
|
||||||
|
EXPECT_EQ('\\', *q++);
|
||||||
|
}
|
||||||
|
else if (escape == '\"') {
|
||||||
|
EXPECT_EQ('\\', *q++);
|
||||||
|
EXPECT_EQ('\"', *q++);
|
||||||
|
}
|
||||||
|
for (size_t i = 0; i < step; i++)
|
||||||
|
EXPECT_EQ("ABCD"[i % 4], *q++);
|
||||||
|
EXPECT_EQ('\"', *q++);
|
||||||
|
EXPECT_EQ('\0', *q++);
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < step; i++)
|
|
||||||
EXPECT_EQ("ABCD"[i % 4], *q++);
|
|
||||||
EXPECT_EQ('\"', *q++);
|
|
||||||
EXPECT_EQ('\0', *q++);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user