49 lines
1.2 KiB
Python
Executable File
49 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:
|
|
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()
|