# HG changeset patch # User Jun Wu # Date 2017-06-21 08:12:31 # Node ID 02bca6dc5f417f499ae750d5aa4d7fb75a5d4a97 # Parent 8dc62c97a665170545cc7bbd7e874d3d7ba402cf run-tests: update .t reference output after reading the test The .t file is both test input and reference output. They should always match. However we have different code paths to read reference output (Test.__init__ -> Test.readrefout) and test input (TTest._run) so they might be inconsistent if somethings change the file between those two functions. This patch assigns "lines" read by "_run" back to "_refout" if "_refout" is not None (with --debug, see Test.readrefout) so reference output and test input will always match. diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -1090,6 +1090,12 @@ class TTest(Test): lines = f.readlines() f.close() + # .t file is both reference output and the test input, keep reference + # output updated with the the test input. This avoids some race + # conditions where the reference output does not match the actual test. + if self._refout is not None: + self._refout = lines + salt, script, after, expected = self._parsetest(lines) # Write out the generated script.