| 
									
										
										
										
											1996-11-27 19:52:01 +00:00
										 |  |  | #! /usr/bin/env python | 
					
						
							| 
									
										
										
										
											1996-08-21 16:28:53 +00: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 16:44:15 +00: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 16:28:53 +00:00
										 |  |  |     except parser.ParserError, err: | 
					
						
							| 
									
										
										
										
											1998-09-14 16:44:15 +00:00
										 |  |  |         print | 
					
						
							|  |  |  |         print 'parser module raised exception on input file', fileName + ':' | 
					
						
							|  |  |  |         traceback.print_exc() | 
					
						
							|  |  |  |         _numFailed = _numFailed + 1 | 
					
						
							| 
									
										
										
										
											1996-08-21 16:28:53 +00:00
										 |  |  |     else: | 
					
						
							| 
									
										
										
										
											1998-09-14 16:44:15 +00: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 16:28:53 +00: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 16:44:15 +00:00
										 |  |  |         import glob | 
					
						
							|  |  |  |         args = glob.glob("*.py") | 
					
						
							| 
									
										
										
										
											2000-08-23 20:21:31 +00:00
										 |  |  |         args.sort() | 
					
						
							| 
									
										
										
										
											1996-08-21 16:28:53 +00:00
										 |  |  |     map(testFile, args) | 
					
						
							|  |  |  |     sys.exit(_numFailed != 0) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							|  |  |  |     test() |