Mercurial > cpython-lru_cache-weakref
annotate Demo/parser/test_parser.py @ 80661:94de77bd0b4b 2.7
Issue #16194: document imp.load_dynamic problems
when read several extension modules from the same binary object file.
| author | Andrew Svetlov <andrew.svetlov@gmail.com> |
|---|---|
| date | Thu, 29 Nov 2012 19:51:28 +0200 |
| parents | 9dcc93fe7528 |
| children |
| rev | line source |
|---|---|
|
4573
73758db2f464
/usr/local/bin/python -> /usr/bin/env python
Guido van Rossum <guido@python.org>
parents:
4088
diff
changeset
|
1 #! /usr/bin/env python |
|
4088
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: |
|
62653
9dcc93fe7528
Update Demo/parser directory; backport unparse fixes from py3k.
Mark Dickinson <dickinsm@gmail.com>
parents:
14139
diff
changeset
|
14 st = parser.suite(t) |
|
9dcc93fe7528
Update Demo/parser directory; backport unparse fixes from py3k.
Mark Dickinson <dickinsm@gmail.com>
parents:
14139
diff
changeset
|
15 tup = parser.st2tuple(st) |
|
9dcc93fe7528
Update Demo/parser directory; backport unparse fixes from py3k.
Mark Dickinson <dickinsm@gmail.com>
parents:
14139
diff
changeset
|
16 # this discards the first ST; a huge memory savings when running |
| 9108 | 17 # against a large source file like Tkinter.py. |
|
62653
9dcc93fe7528
Update Demo/parser directory; backport unparse fixes from py3k.
Mark Dickinson <dickinsm@gmail.com>
parents:
14139
diff
changeset
|
18 st = None |
|
9dcc93fe7528
Update Demo/parser directory; backport unparse fixes from py3k.
Mark Dickinson <dickinsm@gmail.com>
parents:
14139
diff
changeset
|
19 new = parser.tuple2st(tup) |
|
4088
f81d78547f28
Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 except parser.ParserError, err: |
| 9108 | 21 print |
| 22 print 'parser module raised exception on input file', fileName + ':' | |
| 23 traceback.print_exc() | |
| 24 _numFailed = _numFailed + 1 | |
|
4088
f81d78547f28
Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 else: |
|
62653
9dcc93fe7528
Update Demo/parser directory; backport unparse fixes from py3k.
Mark Dickinson <dickinsm@gmail.com>
parents:
14139
diff
changeset
|
26 if tup != parser.st2tuple(new): |
| 9108 | 27 print |
| 28 print 'parser module failed on input file', fileName | |
| 29 _numFailed = _numFailed + 1 | |
| 30 else: | |
| 31 print 'o.k.' | |
|
4088
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: |
| 9108 | 41 import glob |
| 42 args = glob.glob("*.py") | |
|
14139
3116b0b912e9
Sort the list of files processed before running the test on each.
Fred Drake <fdrake@acm.org>
parents:
9108
diff
changeset
|
43 args.sort() |
|
4088
f81d78547f28
Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 map(testFile, args) |
|
f81d78547f28
Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 sys.exit(_numFailed != 0) |
|
f81d78547f28
Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 |
|
f81d78547f28
Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 if __name__ == '__main__': |
|
f81d78547f28
Demos for Fred's parser module
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 test() |
