mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#! /usr/bin/env python
 | 
						|
#  (Force the script to use the latest build.)
 | 
						|
#
 | 
						|
#  test_parser.py
 | 
						|
 | 
						|
import parser, traceback
 | 
						|
 | 
						|
_numFailed = 0
 | 
						|
 | 
						|
def testChunk(t, fileName):
 | 
						|
    global _numFailed
 | 
						|
    print '----', fileName,
 | 
						|
    try:
 | 
						|
        ast = parser.suite(t)
 | 
						|
        tup = parser.ast2tuple(ast)
 | 
						|
        # this discards the first AST; a huge memory savings when running
 | 
						|
        # against a large source file like Tkinter.py.
 | 
						|
        ast = None
 | 
						|
        new = parser.tuple2ast(tup)
 | 
						|
    except parser.ParserError, err:
 | 
						|
        print
 | 
						|
        print 'parser module raised exception on input file', fileName + ':'
 | 
						|
        traceback.print_exc()
 | 
						|
        _numFailed = _numFailed + 1
 | 
						|
    else:
 | 
						|
        if tup != parser.ast2tuple(new):
 | 
						|
            print
 | 
						|
            print 'parser module failed on input file', fileName
 | 
						|
            _numFailed = _numFailed + 1
 | 
						|
        else:
 | 
						|
            print 'o.k.'
 | 
						|
 | 
						|
def testFile(fileName):
 | 
						|
    t = open(fileName).read()
 | 
						|
    testChunk(t, fileName)
 | 
						|
 | 
						|
def test():
 | 
						|
    import sys
 | 
						|
    args = sys.argv[1:]
 | 
						|
    if not args:
 | 
						|
        import glob
 | 
						|
        args = glob.glob("*.py")
 | 
						|
        args.sort()
 | 
						|
    map(testFile, args)
 | 
						|
    sys.exit(_numFailed != 0)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    test()
 |