# HG changeset patch # User Martin von Zweigbergk # Date 2017-10-17 17:33:27 # Node ID 8bce3e51b101a7e3439d03e031e6f9b2e401bdb6 # Parent 6bfe43dd20ebfbec7144f18f1a63fd474e5df7bc run-tests: move newline out of colorized message The leading newline before "ERROR:" led to an incorrect lexing of the message and the newline got lost. The fixed formatting can be seen in the test case. The reason we didn't notice before was that the bad formatting just led to the loss of a blank line in the test. However, there are other cases where it would be joined with a line saying "Accept this change? [n]" or "Reference output has changed (run again to prompt changes)". Differential Revision: https://phab.mercurial-scm.org/D1159 diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -1663,7 +1663,9 @@ class TestResult(unittest._TextTestResul self.stream.write('t') else: if not self._options.nodiff: - formatted = '\nERROR: %s output changed\n' % test + self.stream.write('\n') + # Exclude the '\n' from highlighting to lex correctly + formatted = 'ERROR: %s output changed\n' % test self.stream.write(highlightmsg(formatted, self.color)) self.stream.write('!') diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t --- a/tests/test-run-tests.t +++ b/tests/test-run-tests.t @@ -131,6 +131,7 @@ test diff colorisation \x1b[38;5;34m+ bar*baz (glob)\x1b[39m (esc) bar*bad (glob) \x1b[38;5;124m- bar*baz (glob)\x1b[39m (esc) + \x1b[38;5;88mERROR: \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m output changed\x1b[39m (esc) ! \x1b[38;5;88mFailed \x1b[39m\x1b[38;5;9mtest-failure.t\x1b[39m\x1b[38;5;88m: output changed\x1b[39m (esc)