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,
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)
1996-08-21 13:28:53 -03:00
except parser.ParserError, err:
1998-09-14 13:44:15 -03:00
print
print 'parser module raised exception on input file', fileName + ':'
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
_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()
1996-08-21 13:28:53 -03:00
map(testFile, args)
sys.exit(_numFailed != 0)
if __name__ == '__main__':
test()