| #! /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 |