tests: fix startup/shutdown races in test-https
tinyproxy now writes its own pid when it's ready to accept connections
--- a/tests/test-https.t Wed Mar 28 12:02:38 2012 -0500
+++ b/tests/test-https.t Wed Mar 28 19:23:25 2012 -0500
@@ -233,15 +233,13 @@
$ hg -R copy-pull id https://127.0.0.1:$HGPORT/
5fed3813f7f5
+ $ while kill `cat hg1.pid` 2>/dev/null; do true; done
+
Prepare for connecting through proxy
- $ kill `cat hg1.pid`
- $ sleep 1
-
- $ ("$TESTDIR/tinyproxy.py" $HGPORT1 localhost >proxy.log 2>&1 </dev/null &
- $ echo $! > proxy.pid)
+ $ "$TESTDIR/tinyproxy.py" $HGPORT1 localhost >proxy.log </dev/null 2>&1 &
+ $ while [ ! -f proxy.pid ]; do true; done
$ cat proxy.pid >> $DAEMON_PIDS
- $ sleep 2
$ echo "[http_proxy]" >> copy-pull/.hg/hgrc
$ echo "always=True" >> copy-pull/.hg/hgrc
--- a/tests/tinyproxy.py Wed Mar 28 12:02:38 2012 -0500
+++ b/tests/tinyproxy.py Wed Mar 28 19:23:25 2012 -0500
@@ -12,7 +12,7 @@
__version__ = "0.2.1"
-import BaseHTTPServer, select, socket, SocketServer, urlparse
+import BaseHTTPServer, select, socket, SocketServer, urlparse, os
class ProxyHandler (BaseHTTPServer.BaseHTTPRequestHandler):
__base = BaseHTTPServer.BaseHTTPRequestHandler
@@ -122,7 +122,12 @@
do_DELETE = do_GET
class ThreadingHTTPServer (SocketServer.ThreadingMixIn,
- BaseHTTPServer.HTTPServer): pass
+ BaseHTTPServer.HTTPServer):
+ def __init__(self, *args, **kwargs):
+ BaseHTTPServer.HTTPServer.__init__(self, *args, **kwargs)
+ a = open("proxy.pid", "w")
+ a.write(str(os.getpid()) + "\n")
+ a.close()
if __name__ == '__main__':
from sys import argv