Fixed bug #3139677: JSON [1 2 3] was incorrectly parsed as [1, 3]. Error is now correctly detected.

Modified runjsontests.py to allow test that expect failure in jsoncpp test suite.
This commit is contained in:
Baptiste Lepilleur 2011-05-01 15:40:47 +00:00
parent 565a1f3d39
commit 9c98f2277b
4 changed files with 10 additions and 4 deletions

View File

@ -68,6 +68,11 @@
- Added test to ensure that the escape sequence "\/" is corrected handled
by the parser.
* Bug fixes
- Bug #3139677: JSON [1 2 3] was incorrectly parsed as [1, 3]. Error is now correctly
detected.
* License
- See file LICENSE for details. Basically JsonCpp is now licensed under

View File

@ -533,8 +533,8 @@ Reader::readArray( Token &tokenStart )
{
ok = readToken( token );
}
bool badTokenType = ( token.type_ == tokenArraySeparator &&
token.type_ == tokenArrayEnd );
bool badTokenType = ( token.type_ != tokenArraySeparator &&
token.type_ != tokenArrayEnd );
if ( !ok || badTokenType )
{
return addErrorAndRecover( "Missing ',' or ']' in array declaration",

View File

@ -0,0 +1 @@
[ 1 2 3]

View File

@ -49,7 +49,8 @@ def runAllTests( jsontest_executable_path, input_dir = None,
failed_tests = []
valgrind_path = use_valgrind and VALGRIND_CMD or ''
for input_path in tests + test_jsonchecker:
is_json_checker_test = input_path in test_jsonchecker
expect_failure = os.path.basename( input_path ).startswith( 'fail' )
is_json_checker_test = (input_path in test_jsonchecker) or expect_failure
print 'TESTING:', input_path,
options = is_json_checker_test and '--json-checker' or ''
pipe = os.popen( "%s%s %s %s" % (
@ -58,7 +59,6 @@ def runAllTests( jsontest_executable_path, input_dir = None,
process_output = pipe.read()
status = pipe.close()
if is_json_checker_test:
expect_failure = os.path.basename( input_path ).startswith( 'fail' )
if expect_failure:
if status is None:
print 'FAILED'