mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1 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")
 | 
						|
    map(testFile, args)
 | 
						|
    sys.exit(_numFailed != 0)
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    test()
 | 
						|
 | 
						|
#
 | 
						|
#  end of file
 |