| #!/usr/local/bin |
| # ---------------------------------------------------------------------- |
| # testyacc.py |
| # |
| # Run tests for the yacc module |
| # ---------------------------------------------------------------------- |
| |
| import sys,os,glob |
| |
| if len(sys.argv) < 2: |
| print "Usage: python testyacc.py directory" |
| raise SystemExit |
| |
| dirname = None |
| make = 0 |
| |
| for o in sys.argv[1:]: |
| if o == '-make': |
| make = 1 |
| else: |
| dirname = o |
| break |
| |
| if not dirname: |
| print "Usage: python testyacc.py [-make] directory" |
| raise SystemExit |
| |
| f = glob.glob("%s/%s" % (dirname,"yacc_*.py")) |
| |
| print "**** Running tests for yacc ****" |
| |
| for t in f: |
| name = t[:-3] |
| print "Testing %-32s" % name, |
| os.system("rm -f %s/parsetab.*" % dirname) |
| if make: |
| if not os.path.exists("%s.exp" % name): |
| os.system("python %s.py >%s.exp 2>&1" % (name,name)) |
| passed = 1 |
| else: |
| os.system("python %s.py >%s.out 2>&1" % (name,name)) |
| a = os.system("diff %s.out %s.exp >%s.dif" % (name,name,name)) |
| if a == 0: |
| passed = 1 |
| else: |
| passed = 0 |
| |
| if passed: |
| print "Passed" |
| else: |
| print "Failed. See %s.dif" % name |
| |
| |
| |
| |
| |
| |
| |