fixed a bug
This commit is contained in:
parent
032bcf6493
commit
7b7a54aca5
3 changed files with 28 additions and 21 deletions
|
|
@ -4044,7 +4044,7 @@ TEST_CASE("lexer class")
|
|||
|
||||
switch (c)
|
||||
{
|
||||
// characters that are prefixes of reasonable json
|
||||
// single characters that are valid tokens
|
||||
case ('['):
|
||||
case (']'):
|
||||
case ('{'):
|
||||
|
|
@ -4066,12 +4066,6 @@ TEST_CASE("lexer class")
|
|||
break;
|
||||
}
|
||||
|
||||
case ('"'):
|
||||
{
|
||||
// no idea what to do here
|
||||
break;
|
||||
}
|
||||
|
||||
// whitespace
|
||||
case (' '):
|
||||
case ('\t'):
|
||||
|
|
@ -4199,32 +4193,37 @@ TEST_CASE("parser class")
|
|||
SECTION("parse errors")
|
||||
{
|
||||
// unexpected end of number
|
||||
CHECK_THROWS_AS(json::parser("0.A").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("-,").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("-A").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("0.").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("-").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("--").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("-0.").parse(), std::invalid_argument);
|
||||
|
||||
// unexpected end of null
|
||||
CHECK_THROWS_AS(json::parser("n").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("nA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("nuA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("nulA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("n").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("nu").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("nul").parse(), std::invalid_argument);
|
||||
|
||||
// unexpected end of true
|
||||
CHECK_THROWS_AS(json::parser("t").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("tA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("trA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("truA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("t").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("tr").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("tru").parse(), std::invalid_argument);
|
||||
|
||||
// unexpected end of false
|
||||
CHECK_THROWS_AS(json::parser("f").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("faA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("falA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("falsA").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("fa").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("fal").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("fals").parse(), std::invalid_argument);
|
||||
|
||||
// unexpected end of array
|
||||
CHECK_THROWS_AS(json::parser("[1,").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("[1,]").parse(), std::invalid_argument);
|
||||
|
||||
// unexpected end of object
|
||||
CHECK_THROWS_AS(json::parser("{").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("{\"foo\"").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("{\"foo\":").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("{\"foo\":}").parse(), std::invalid_argument);
|
||||
CHECK_THROWS_AS(json::parser("{\"foo\":1,}").parse(), std::invalid_argument);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue