mirror of
				https://github.com/open-source-parsers/jsoncpp.git
				synced 2025-11-03 19:40:36 +01:00 
			
		
		
		
	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:
		
							
								
								
									
										5
									
								
								NEWS.txt
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								NEWS.txt
									
									
									
									
									
								
							@@ -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 
 | 
			
		||||
 
 | 
			
		||||
@@ -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", 
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								test/data/fail_test_array_01.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								test/data/fail_test_array_01.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
[ 1 2 3]
 | 
			
		||||
@@ -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'
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user