Mercurial > hg
view tests/test-worker.t @ 31696:9d3d56aa1a9f
worker: flush ui buffers before running the worker
a91c6275 introduces flushing ui buffers after a worker finished. If the ui was
not flushed before the worker was started, fork will copy the existing buffers
to the worker. This causes messages issued before the worker started to be
written to the terminal for each worker.
We are now flushing the ui before we start a worker and add an appropriate test
which will fail before this patch.
author | David Soria Parra <davidsp@fb.com> |
---|---|
date | Tue, 28 Mar 2017 10:21:38 -0700 |
parents | |
children | 38963a53ab0d |
line wrap: on
line source
Test UI worker interaction $ cat > t.py <<EOF > from __future__ import absolute_import, print_function > from mercurial import ( > cmdutil, > ui as uimod, > worker, > ) > def runme(ui, args): > for arg in args: > ui.status('run\n') > yield 1, arg > cmdtable = {} > command = cmdutil.command(cmdtable) > @command('test', [], 'hg test [COST]') > def t(ui, repo, cost=1.0): > cost = float(cost) > ui.status('start\n') > runs = worker.worker(ui, cost, runme, (ui,), range(8)) > for n, i in runs: > pass > ui.status('done\n') > EOF $ abspath=`pwd`/t.py $ hg init Run tests with worker enable by forcing a heigh cost $ hg --config "extensions.t=$abspath" test 100000.0 start run run run run run run run run done Run tests without worker by forcing a low cost $ hg --config "extensions.t=$abspath" test 0.0000001 start run run run run run run run run done