From patchwork Wed May 28 02:21:32 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1, of, 2] run-tests: exit with non-0 exit code when tests fail or warn From: Gregory Szorc X-Patchwork-Id: 4874 Message-Id: To: mercurial-devel@selenic.com Date: Tue, 27 May 2014 19:21:32 -0700 # HG changeset patch # User Gregory Szorc # Date 1401243022 25200 # Tue May 27 19:10:22 2014 -0700 # Node ID e5fa751068fd637301a48a43f642e2d8abb31fa4 # Parent 652e07debf10193f4973a48ead96a95e81d0a55b run-tests: exit with non-0 exit code when tests fail or warn As part of the run-tests.py refactor, run-tests.py accidentally started exiting with 0 for most test runs. This patch restores the expected behavior. diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -1317,8 +1317,10 @@ class TextTestRunner(unittest.TextTestRu os.environ['PYTHONHASHSEED']) if self._runner.options.time: self.printtimes(result.times) + return result + def printtimes(self, times): self.stream.writeln('# Producing time report') times.sort(key=lambda t: (t[1], t[0]), reverse=True) cols = '%7.3f %s' @@ -1536,9 +1538,14 @@ class TestRunner(object): verbosity = 1 if self.options.verbose: verbosity = 2 runner = TextTestRunner(self, verbosity=verbosity) - runner.run(suite) + result = runner.run(suite) + + if result.failures: + failed = True + if result.warned: + warned = True if self.options.anycoverage: self._outputcoverage() except KeyboardInterrupt: