Source

ply / test / testyacc.py

The default branch has multiple heads

Full commit
#!/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