59 lines
1.2 KiB
Python
59 lines
1.2 KiB
Python
|
#!/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
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|