# HG changeset patch # User Matt Mackall # Date 1303681597 18000 # Node ID 3c57e99630703be78aaf7dd0351742afce9bed35 # Parent ee01b53f9ac9d521ed664db44e353d7970edfd30 run-tests: add a lock for console I/O [ original upstream message ] diff -r ee01b53f9ac9 -r 3c57e9963070 tests/run-tests.py --- a/tests/run-tests.py Sun Apr 24 16:42:15 2011 -0500 +++ b/tests/run-tests.py Sun Apr 24 16:46:37 2011 -0500 @@ -654,7 +654,7 @@ True -> passed False -> failed''' - global results, resultslock + global results, resultslock, iolock testpath = os.path.join(TESTDIR, test) @@ -825,18 +825,22 @@ else: fail("output changed", ret) if ret != 'timeout' and not options.nodiff: + iolock.acquire() if options.view: os.system("%s %s %s" % (options.view, ref, err)) else: showdiff(refout, out, ref, err) + iolock.release() ret = 1 elif ret: mark = '!' fail("returned error code %d" % ret, ret) if not options.verbose: + iolock.acquire() sys.stdout.write(mark) sys.stdout.flush() + iolock.release() killdaemons() @@ -954,6 +958,7 @@ results = dict(p=[], f=[], s=[], i=[]) resultslock = threading.Lock() +iolock = threading.Lock() def runqueue(options, tests, results): for test in tests: