1#! /usr/bin/env python 2# (Force the script to use the latest build.) 3# 4# test_parser.py 5 6import parser, traceback 7 8_numFailed = 0 9 10def testChunk(t, fileName): 11 global _numFailed 12 print '----', fileName, 13 try: 14 st = parser.suite(t) 15 tup = parser.st2tuple(st) 16 # this discards the first ST; a huge memory savings when running 17 # against a large source file like Tkinter.py. 18 st = None 19 new = parser.tuple2st(tup) 20 except parser.ParserError, err: 21 print 22 print 'parser module raised exception on input file', fileName + ':' 23 traceback.print_exc() 24 _numFailed = _numFailed + 1 25 else: 26 if tup != parser.st2tuple(new): 27 print 28 print 'parser module failed on input file', fileName 29 _numFailed = _numFailed + 1 30 else: 31 print 'o.k.' 32 33def testFile(fileName): 34 t = open(fileName).read() 35 testChunk(t, fileName) 36 37def test(): 38 import sys 39 args = sys.argv[1:] 40 if not args: 41 import glob 42 args = glob.glob("*.py") 43 args.sort() 44 map(testFile, args) 45 sys.exit(_numFailed != 0) 46 47if __name__ == '__main__': 48 test() 49