testlex.py revision 2632
12632Sstever@eecs.umich.edu#!/usr/local/bin
22632Sstever@eecs.umich.edu# ----------------------------------------------------------------------
32632Sstever@eecs.umich.edu# testlex.py
42632Sstever@eecs.umich.edu#
52632Sstever@eecs.umich.edu# Run tests for the lexing module
62632Sstever@eecs.umich.edu# ----------------------------------------------------------------------
72632Sstever@eecs.umich.edu
82632Sstever@eecs.umich.eduimport sys,os,glob
92632Sstever@eecs.umich.edu
102632Sstever@eecs.umich.eduif len(sys.argv) < 2:
112632Sstever@eecs.umich.edu    print "Usage: python testlex.py directory"
122632Sstever@eecs.umich.edu    raise SystemExit
132632Sstever@eecs.umich.edu
142632Sstever@eecs.umich.edudirname = None
152632Sstever@eecs.umich.edumake = 0
162632Sstever@eecs.umich.edu
172632Sstever@eecs.umich.edufor o in sys.argv[1:]:
182632Sstever@eecs.umich.edu    if o == '-make':
192632Sstever@eecs.umich.edu        make = 1
202632Sstever@eecs.umich.edu    else:
212632Sstever@eecs.umich.edu        dirname = o
222632Sstever@eecs.umich.edu        break
232632Sstever@eecs.umich.edu
242632Sstever@eecs.umich.eduif not dirname:
252632Sstever@eecs.umich.edu    print "Usage: python testlex.py [-make] directory"
262632Sstever@eecs.umich.edu    raise SystemExit
272632Sstever@eecs.umich.edu
282632Sstever@eecs.umich.eduf = glob.glob("%s/%s" % (dirname,"lex_*.py"))
292632Sstever@eecs.umich.edu
302632Sstever@eecs.umich.eduprint "**** Running tests for lex ****"
312632Sstever@eecs.umich.edu
322632Sstever@eecs.umich.edufor t in f:
332632Sstever@eecs.umich.edu    name = t[:-3]
342632Sstever@eecs.umich.edu    print "Testing %-32s" % name,
352632Sstever@eecs.umich.edu    if make:
362632Sstever@eecs.umich.edu        if not os.path.exists("%s.exp" % name):
372632Sstever@eecs.umich.edu            os.system("python %s.py >%s.exp 2>&1" % (name,name))
382632Sstever@eecs.umich.edu        passed = 1
392632Sstever@eecs.umich.edu    else:
402632Sstever@eecs.umich.edu        os.system("python %s.py >%s.out 2>&1" % (name,name))
412632Sstever@eecs.umich.edu        a = os.system("diff %s.out %s.exp >%s.dif" % (name,name,name))
422632Sstever@eecs.umich.edu        if a == 0:
432632Sstever@eecs.umich.edu            passed = 1
442632Sstever@eecs.umich.edu        else:
452632Sstever@eecs.umich.edu            passed = 0
462632Sstever@eecs.umich.edu
472632Sstever@eecs.umich.edu    if passed:
482632Sstever@eecs.umich.edu        print "Passed"
492632Sstever@eecs.umich.edu    else:
502632Sstever@eecs.umich.edu        print "Failed. See %s.dif" % name
512632Sstever@eecs.umich.edu
522632Sstever@eecs.umich.edu
532632Sstever@eecs.umich.edu
542632Sstever@eecs.umich.edu
552632Sstever@eecs.umich.edu
562632Sstever@eecs.umich.edu
572632Sstever@eecs.umich.edu
58