提交 4b9bd96a 编写于 作者: N Niels

re-added old (failing) test cases

上级 c816fd12
...@@ -4037,67 +4037,64 @@ TEST_CASE("lexer class") ...@@ -4037,67 +4037,64 @@ TEST_CASE("lexer class")
CHECK(json::lexer::token_type_name(json::lexer::token_type::parse_error) == "<parse error>"); CHECK(json::lexer::token_type_name(json::lexer::token_type::parse_error) == "<parse error>");
CHECK(json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "<end of input>"); CHECK(json::lexer::token_type_name(json::lexer::token_type::end_of_input) == "<end of input>");
} }
}
SECTION("parse errors on first character")
TEST_CASE("parser class")
{
SECTION("get_token")
{ {
/* for (int c = 1; c < 128; ++c)
SECTION("parse errors on first character")
{ {
for (int c = 1; c < 255; ++c) auto s = std::string(1, c);
CAPTURE(c);
CAPTURE(s);
switch (c)
{ {
auto s = std::string(1, c); // characters that are prefixes of reasonable json
case ('['):
case (']'):
case ('{'):
case ('}'):
case (','):
case (':'):
case ('0'):
case ('1'):
case ('2'):
case ('3'):
case ('4'):
case ('5'):
case ('6'):
case ('7'):
case ('8'):
case ('9'):
case ('"'):
{
CHECK(json::lexer(s.c_str()).scan() != json::lexer::token_type::parse_error);
break;
}
CAPTURE(c); // whitespace
CAPTURE(s); case (' '):
case ('\t'):
case ('\n'):
case ('\r'):
{
CHECK(json::lexer(s.c_str()).scan() == json::lexer::token_type::end_of_input);
break;
}
switch (c) // anything else is not expected
default:
{ {
// characters that are prefixes of reasonable json CHECK(json::lexer(s.c_str()).scan() == json::lexer::token_type::parse_error);
case ('['): break;
case (']'):
case ('{'):
case ('}'):
case (','):
case (':'):
case ('0'):
case ('1'):
case ('2'):
case ('3'):
case ('4'):
case ('5'):
case ('6'):
case ('7'):
case ('8'):
case ('9'):
case ('"'):
{
CHECK(json::parser(s).last_token != json::lexer::token_type::parse_error);
break;
}
case (' '):
case ('\t'):
case ('\n'):
case ('\r'):
{
CHECK(json::parser(s).last_token == json::lexer::token_type::end_of_input);
break;
}
default:
{
CHECK(json::parser(s).last_token == json::lexer::token_type::parse_error);
break;
}
} }
} }
} }
*/
} }
}
TEST_CASE("parser class")
{
SECTION("parse") SECTION("parse")
{ {
SECTION("null") SECTION("null")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册