| #! /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:
|
| st = parser.suite(t)
|
| tup = parser.st2tuple(st)
|
| # this discards the first ST; a huge memory savings when running
|
| # against a large source file like Tkinter.py.
|
| st = None
|
| new = parser.tuple2st(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.st2tuple(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()
|