testlex.py revision 2632:1bb2f91485ea
1#!/usr/local/bin
2# ----------------------------------------------------------------------
3# testlex.py
4#
5# Run tests for the lexing module
6# ----------------------------------------------------------------------
7
8import sys,os,glob
9
10if len(sys.argv) < 2:
11    print "Usage: python testlex.py directory"
12    raise SystemExit
13
14dirname = None
15make = 0
16
17for o in sys.argv[1:]:
18    if o == '-make':
19        make = 1
20    else:
21        dirname = o
22        break
23
24if not dirname:
25    print "Usage: python testlex.py [-make] directory"
26    raise SystemExit
27
28f = glob.glob("%s/%s" % (dirname,"lex_*.py"))
29
30print "**** Running tests for lex ****"
31
32for t in f:
33    name = t[:-3]
34    print "Testing %-32s" % name,
35    if make:
36        if not os.path.exists("%s.exp" % name):
37            os.system("python %s.py >%s.exp 2>&1" % (name,name))
38        passed = 1
39    else:
40        os.system("python %s.py >%s.out 2>&1" % (name,name))
41        a = os.system("diff %s.out %s.exp >%s.dif" % (name,name,name))
42        if a == 0:
43            passed = 1
44        else:
45            passed = 0
46
47    if passed:
48        print "Passed"
49    else:
50        print "Failed. See %s.dif" % name
51
52
53
54
55
56
57
58