Home | History | Annotate | Download | only in parser
      1 #! /usr/bin/env python

      2 #  (Force the script to use the latest build.)

      3 #

      4 #  test_parser.py

      5 
      6 import parser, traceback
      7 
      8 _numFailed = 0
      9 
     10 def 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 
     33 def testFile(fileName):
     34     t = open(fileName).read()
     35     testChunk(t, fileName)
     36 
     37 def 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 
     47 if __name__ == '__main__':
     48     test()
     49