[PATCH 3 of 3] test-lfs: allow the test server to be killed on Windows
Matt Harbison
mharbison72 at gmail.com
Tue Nov 21 01:31:14 EST 2017
# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1511241849 18000
# Tue Nov 21 00:24:09 2017 -0500
# Node ID cdc5b2fc8d54771402773287a241924878a3aebe
# Parent 8e1c165cf1eef41c1db8359ed07424629c932c42
test-lfs: allow the test server to be killed on Windows
Apparently '$!' doesn't return a Win32 PID, so the process was never killed, and
the next run was screwed up. Oddly, without the explicit killdaemons.py at the
end, the test seems to hang. This spawning is just sad, so I limited it to
Windows.
diff --git a/tests/test-lfs-test-server.t b/tests/test-lfs-test-server.t
--- a/tests/test-lfs-test-server.t
+++ b/tests/test-lfs-test-server.t
@@ -4,8 +4,26 @@
$ LFS_HOST="localhost:$HGPORT"
$ LFS_PUBLIC=1
$ export LFS_LISTEN LFS_HOST LFS_PUBLIC
+#if no-windows
$ lfs-test-server &> lfs-server.log &
$ echo $! >> $DAEMON_PIDS
+#else
+ $ cat >> $TESTTMP/spawn.py <<EOF
+ > import os
+ > import subprocess
+ > import sys
+ >
+ > for path in os.environ["PATH"].split(os.pathsep):
+ > exe = os.path.join(path, 'lfs-test-server.exe')
+ > if os.path.exists(exe):
+ > with open('lfs-server.log', 'wb') as out:
+ > p = subprocess.Popen(exe, stdout=out, stderr=out)
+ > sys.stdout.write('%s\n' % p.pid)
+ > sys.exit(0)
+ > sys.exit(1)
+ > EOF
+ $ $PYTHON $TESTTMP/spawn.py >> $DAEMON_PIDS
+#endif
$ cat >> $HGRCPATH <<EOF
> [extensions]
@@ -104,3 +122,5 @@
updating to branch default
abort: LFS server error. Remote object for file data/a.i not found:(.*)! (re)
[255]
+
+ $ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
More information about the Mercurial-devel
mailing list