• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#! /usr/bin/env python
2#  (Force the script to use the latest build.)
3#
4#  test_parser.py
5
6import parser, traceback
7
8_numFailed = 0
9
10def testChunk(t, fileName):
11    global _numFailed
12    print '----', fileName,
13    try:
14        st = parser.suite(t)
15        tup = parser.st2tuple(st)
16        # this discards the first ST; a huge memory savings when running
17        # against a large source file like Tkinter.py.
18        st = None
19        new = parser.tuple2st(tup)
20    except parser.ParserError, err:
21        print
22        print 'parser module raised exception on input file', fileName + ':'
23        traceback.print_exc()
24        _numFailed = _numFailed + 1
25    else:
26        if tup != parser.st2tuple(new):
27            print
28            print 'parser module failed on input file', fileName
29            _numFailed = _numFailed + 1
30        else:
31            print 'o.k.'
32
33def testFile(fileName):
34    t = open(fileName).read()
35    testChunk(t, fileName)
36
37def test():
38    import sys
39    args = sys.argv[1:]
40    if not args:
41        import glob
42        args = glob.glob("*.py")
43        args.sort()
44    map(testFile, args)
45    sys.exit(_numFailed != 0)
46
47if __name__ == '__main__':
48    test()
49