Mercurial > hg
view tests/test-worker.t @ 31769:594dd384803c
test-serve: make the 'listening at *' lines optional
The daemonized serve process doesn't print these lines out (see 448d0c452140).
I was able to get it to with the following hack:
diff --git a/mercurial/win32.py b/mercurial/win32.py
--- a/mercurial/win32.py
+++ b/mercurial/win32.py
@@ -418,6 +418,11 @@
return str(ppid)
def spawndetached(args):
+
+ import subprocess
+ return subprocess.Popen(args, cwd=pycompat.getcwd(), env=encoding.environ,
+ creationflags=subprocess.CREATE_NEW_PROCESS_GROUP).pid
+
# No standard library function really spawns a fully detached
# process under win32 because they allocate pipes or other objects
# to handle standard streams communications. Passing these objects
However, MSYS translates --prefixes starting with '/' to 'C:/MinGW/msys/1.0',
which changes the output. The output isn't so important that I want to spend a
bunch of time on this, and risk breaking some subtle behavior of `hg serve -d`
with the more complicated code.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 02 Apr 2017 00:56:52 -0400 |
parents | 9d3d56aa1a9f |
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