cpython/Demo/parser/test_parser.py

49 lines
1.2 KiB
Python
Raw Normal View History

#! /usr/bin/env python
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
print('----', fileName, end=' ')
1996-08-21 13:28:53 -03:00
try:
1998-09-14 13:44:15 -03:00
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 as err:
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:
1998-09-14 13:44:15 -03:00
if tup != parser.ast2tuple(new):
print()
print('parser module failed on input file', fileName)
1998-09-14 13:44:15 -03:00
_numFailed = _numFailed + 1
else:
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")
args.sort()
list(map(testFile, args))
1996-08-21 13:28:53 -03:00
sys.exit(_numFailed != 0)
if __name__ == '__main__':
test()