# HG changeset patch # User Gregory Szorc # Date 2014-04-20 03:52:58 # Node ID 04e04766065f9a3fee093b9894574ac47fde6a7d # Parent 0e66eb57e42a76d877b8e1abe9d0417d80992c62 run-tests: move output difference processing to Test.run() diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -619,6 +619,11 @@ class Test(object): if not self._options.keep_tmpdir: shutil.rmtree(testtmp) + def describe(ret): + if ret < 0: + return 'killed by signal: %d' % -ret + return 'returned error code %d' % ret + if ret == SKIPPED_STATUS: if out is None: # Debug mode, nothing to parse. missing = ['unknown'] @@ -637,6 +642,26 @@ class Test(object): return self.skip(missing[-1]) elif ret == 'timeout': return self.fail('timed out', ret) + elif out != self._refout: + info = {} + if not self._options.nodiff: + iolock.acquire() + if self._options.view: + os.system("%s %s %s" % (self._options.view, self._refpath, + self._errpath)) + else: + info = showdiff(self._refout, out, self._refpath, + self._errpath) + iolock.release() + msg = '' + if info.get('servefail'): + msg += 'serve failed and ' + if ret: + msg += 'output changed and ' + describe(ret) + else: + msg += 'output changed' + + return self.fail(msg, ret) def _run(self, testtmp, replacements, env): raise NotImplemented('Subclasses must implement Test.run()') @@ -1079,11 +1104,6 @@ def runone(options, test, count): def ignore(msg): return 'i', test, msg - def describe(ret): - if ret < 0: - return 'killed by signal %d' % -ret - return 'returned error code %d' % ret - testpath = os.path.join(TESTDIR, test) err = os.path.join(TESTDIR, test + ".err") lctest = test.lower() @@ -1145,22 +1165,6 @@ def runone(options, test, count): if result: pass - elif out != refout: - info = {} - if not options.nodiff: - iolock.acquire() - if options.view: - os.system("%s %s %s" % (options.view, ref, err)) - else: - info = showdiff(refout, out, ref, err) - iolock.release() - msg = "" - if info.get('servefail'): msg += "serve failed and " - if ret: - msg += "output changed and " + describe(ret) - else: - msg += "output changed" - result = t.fail(msg, ret) elif ret: result = t.fail(describe(ret), ret) else: