diff -r b029d63565a2 -r c1ba166f3fc4 tests/test.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test.py Sat Nov 17 18:41:01 2012 -0800 @@ -0,0 +1,60 @@ +# vim: set ts=2 sw=4 tw=99 ft=python et: +import os +import os.path + +class Result: + def __init__(self, ok, out, err, code, timeout, message): + self.ok = ok + self.out = out + self.err = err + self.code = code + self.timeout = timeout + self.message = message + +class Test: + def __init__(self, path, name, type): + self.path = path + self.name = name + self.type = type + + def cmd(self): + return os.path.join(self.path, self.name + '.sp') + + def compare(self, text): + ok = True + message = None + with open(os.path.join(self.path, self.name + '.' + self.type)) as f: + lines = text.split('\n') + i = 0 + for line in f: + line = line.rstrip('\r\n') + if line != lines[i]: + message = 'Got "' + lines[i] + '", expected "' + line + '"' + ok = False + break + i += 1 + return (ok, message) + + def check(self, out, err, code, timeout): + if not out: + out = '' + if not err: + err = '' + if self.type == 'err': + if code == 0: + message = 'Expected failure, got success' + ok = False + else: + (ok, message) = self.compare(err) + elif self.type == 'out': + if code != 0: + message = 'Expected success, got failure (code: ' + str(code) + ')' + ok = False + else: + (ok, message) = self.compare(out) + + if timeout: + ok = false + message = 'timeout' + + return Result(ok, out, err, code, timeout, message)