#!/usr/bin/python import glob, os, sys fail = 0 for t in sorted(glob.glob('*.ngc')): print >>sys.stderr, "#", t error = open(t).readline() if error.startswith(';'): expected = error[1:-1] elif error.startswith('('): expected = error[1:-2] else: expected = "%s: Test does not specify expected error" % t p = os.popen("rs274 -g %s 2>&1 > /dev/null" % t) output = p.readlines() r = p.close() print "# ->", r if not r: print "%s: Interpreter accepted bad gcode" % t fail += 1 continue if len(output) < 2: print "%s: Unexpected interpreter output: %r" % output fail += 1 continue err = output[-2].strip() if err != expected: print "%s: Expected %r, got %r instead" % (t, expected, err) fail += 1 if fail: raise SystemExit, "%d failures" % fail