2010-03-11 18:53:45 -04:00
|
|
|
#! /usr/bin/env python3
|
1996-08-21 13:28:53 -03:00
|
|
|
# (Force the script to use the latest build.)
|
|
|
|
#
|
|
|
|
# test_parser.py
|
|
|
|
|
|
|
|
import parser, traceback
|
|
|
|
|
|
|
|
_numFailed = 0
|
|
|
|
|
|
|
|
def testChunk(t, fileName):
|
|
|
|
global _numFailed
|
2007-07-17 17:59:35 -03:00
|
|
|
print('----', fileName, end=' ')
|
1996-08-21 13:28:53 -03:00
|
|
|
try:
|
2010-07-04 15:49:18 -03:00
|
|
|
st = parser.suite(t)
|
|
|
|
tup = parser.st2tuple(st)
|
|
|
|
# this discards the first ST; a huge memory savings when running
|
1998-09-14 13:44:15 -03:00
|
|
|
# against a large source file like Tkinter.py.
|
2010-07-04 15:49:18 -03:00
|
|
|
st = None
|
|
|
|
new = parser.tuple2st(tup)
|
2007-01-10 12:19:56 -04:00
|
|
|
except parser.ParserError as err:
|
2007-07-17 17:59:35 -03:00
|
|
|
print()
|
|
|
|
print('parser module raised exception on input file', fileName + ':')
|
1998-09-14 13:44:15 -03:00
|
|
|
traceback.print_exc()
|
|
|
|
_numFailed = _numFailed + 1
|
1996-08-21 13:28:53 -03:00
|
|
|
else:
|
2010-07-04 15:49:18 -03:00
|
|
|
if tup != parser.st2tuple(new):
|
2007-07-17 17:59:35 -03:00
|
|
|
print()
|
|
|
|
print('parser module failed on input file', fileName)
|
1998-09-14 13:44:15 -03:00
|
|
|
_numFailed = _numFailed + 1
|
|
|
|
else:
|
2007-07-17 17:59:35 -03:00
|
|
|
print('o.k.')
|
1996-08-21 13:28:53 -03:00
|
|
|
|
|
|
|
def testFile(fileName):
|
|
|
|
t = open(fileName).read()
|
|
|
|
testChunk(t, fileName)
|
|
|
|
|
|
|
|
def test():
|
|
|
|
import sys
|
|
|
|
args = sys.argv[1:]
|
|
|
|
if not args:
|
1998-09-14 13:44:15 -03:00
|
|
|
import glob
|
|
|
|
args = glob.glob("*.py")
|
2000-08-23 17:21:31 -03:00
|
|
|
args.sort()
|
2007-07-17 17:59:35 -03:00
|
|
|
list(map(testFile, args))
|
1996-08-21 13:28:53 -03:00
|
|
|
sys.exit(_numFailed != 0)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
test()
|