diff -r c4b1341297e5 -r ba85a47ee414 tests/test.py --- a/tests/test.py Mon Jun 10 00:46:29 2013 +0100 +++ b/tests/test.py Mon Jun 10 01:04:43 2013 +0100 @@ -1,64 +1,64 @@ -# 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), 'rt') as f: - text = str.replace(text, '\r', '') - lines = text.split('\n') - i = 0 - for line in f: - line = line.rstrip('\r\n') - if "Displaying compilation errors for" in lines[i]: - i += 1 - continue - 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) +# 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), 'rt') as f: + text = str.replace(text, '\r', '') + lines = text.split('\n') + i = 0 + for line in f: + line = line.rstrip('\r\n') + if "Displaying compilation errors for" in lines[i]: + i += 1 + continue + 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)