run-tests: fix get port to try differing ports
authortimeless <timeless@mozdev.org>
Tue, 29 Dec 2015 04:30:38 +0000
changeset 27602 67aa88e00fc7
parent 27601 1ad9da968a2e
child 27603 8a87627d263a
run-tests: fix get port to try differing ports The code was moving its offset each time through the loop, but because it failed to update port, the port was not going to be available...
tests/run-tests.py
tests/test-run-tests.t
--- a/tests/run-tests.py	Thu Dec 31 13:19:20 2015 -0500
+++ b/tests/run-tests.py	Tue Dec 29 04:30:38 2015 +0000
@@ -2015,11 +2015,11 @@
     def _getport(self, count):
         port = self._ports.get(count) # do we have a cached entry?
         if port is None:
-            port = self.options.port + self._portoffset
             portneeded = 3
             # above 100 tries we just give up and let test reports failure
             for tries in xrange(100):
                 allfree = True
+                port = self.options.port + self._portoffset
                 for idx in xrange(portneeded):
                     if not checkportisavailable(port + idx):
                         allfree = False
--- a/tests/test-run-tests.t	Thu Dec 31 13:19:20 2015 -0500
+++ b/tests/test-run-tests.t	Tue Dec 29 04:30:38 2015 +0000
@@ -223,6 +223,20 @@
   [1]
   $ rm test-serve-fail.t
 
+Verify that we can try other ports
+===================================
+  $ hg init inuse
+  $ hg serve -R inuse -p $HGPORT -d --pid-file=blocks.pid
+  $ cat blocks.pid >> $DAEMON_PIDS
+  $ cat > test-serve-inuse.t <<EOF
+  >   $ hg serve -R `pwd`/inuse -p \$HGPORT -d --pid-file=hg.pid
+  >   $ cat hg.pid >> \$DAEMON_PIDS
+  > EOF
+  $ rt test-serve-inuse.t
+  .
+  # Ran 1 tests, 0 skipped, 0 warned, 0 failed.
+  $ rm test-serve-inuse.t
+
 Running In Debug Mode
 ======================