run-tests: implement TestCase.run()
Simply wrapping TestCase.run() is not sufficient for robust results
reporting because unittest in Python 2.4 does not know about things
like skipped tests and reports them as success or failures instead of
skips.
We will reimplement TestCase.run() with knowledge and semantics present
in modern Python releases.
--- a/tests/run-tests.py Sun Apr 20 14:04:37 2014 -0700
+++ b/tests/run-tests.py Sun Apr 20 14:19:59 2014 -0700
@@ -1330,7 +1330,16 @@
def run(self, result):
self._result = result
- return super(MercurialTest, self).run(result)
+ try:
+ self.runTest()
+ except KeyboardInterrupt:
+ raise
+ except self.failureException:
+ result.addFailure(self, sys.exc_info())
+ except Exception:
+ result.addError(self, sys.exc_info())
+ else:
+ result.addSuccess(self)
def runTest(self):
code, tname, msg = t.run()