annotate Demo/parser/test_parser.py @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents f81d78547f28
children 73758db2f464
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4088
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 #! /projects/python/Python-1.4b2/python
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
2 # (Force the script to use the latest build.)
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 #
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 # test_parser.py
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 import parser, traceback
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 _numFailed = 0
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
9
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 def testChunk(t, fileName):
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 global _numFailed
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 print '----', fileName,
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 try:
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 ast = parser.suite(t)
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 tup = parser.ast2tuple(ast)
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 # this discards the first AST; a huge memory savings when running
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 # against a large source file like Tkinter.py.
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 ast = None
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 new = parser.tuple2ast(tup)
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 except parser.ParserError, err:
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 print
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 print 'parser module raised exception on input file', fileName + ':'
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 traceback.print_exc()
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 _numFailed = _numFailed + 1
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 else:
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 if tup != parser.ast2tuple(new):
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 print
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 print 'parser module failed on input file', fileName
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 _numFailed = _numFailed + 1
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 else:
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 print 'o.k.'
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
32
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 def testFile(fileName):
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 t = open(fileName).read()
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 testChunk(t, fileName)
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
36
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 def test():
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 import sys
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 args = sys.argv[1:]
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 if not args:
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 import glob
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 args = glob.glob("*.py")
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 map(testFile, args)
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 sys.exit(_numFailed != 0)
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
45
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 if __name__ == '__main__':
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 test()
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
48
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 #
f81d78547f28 Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 # end of file