]> code.delx.au - gnu-emacs/commitdiff
Do not hard-code port for package test server. (Bug#23708)
authorGlenn Morris <rgm@gnu.org>
Wed, 8 Jun 2016 01:25:20 +0000 (21:25 -0400)
committerGlenn Morris <rgm@gnu.org>
Wed, 8 Jun 2016 01:25:20 +0000 (21:25 -0400)
* test/lisp/emacs-lisp/package-resources/package-test-server.py:
Do not hard-code port.
* test/lisp/emacs-lisp/package-tests.el (package-test-update-archives-async):
Update for the above change.

test/lisp/emacs-lisp/package-resources/package-test-server.py
test/lisp/emacs-lisp/package-tests.el

index 35ca820f31f097e75eecdf2baad366fa05552515..1acd9f744b9fa8e0155634c9b5c78ce8fdf5fe0d 100644 (file)
@@ -10,7 +10,7 @@ Protocol     = "HTTP/1.0"
 if sys.argv[1:]:
     port = int(sys.argv[1])
 else:
-    port = 8000
+    port = 0
     server_address = ('127.0.0.1', port)
 
 HandlerClass.protocol_version = Protocol
index c7a5cc7af22412a8b52188d51dc465818e090296..0a446fde086049faeadad638a7a2693ad5ccf9a6 100644 (file)
@@ -372,16 +372,28 @@ Must called from within a `tar-mode' buffer."
   (skip-unless (executable-find "python2"))
   ;; For some reason this test doesn't work reliably on hydra.nixos.org.
   (skip-unless (not (getenv "NIX_STORE")))
-  (with-package-test (:basedir
-                      package-test-data-dir
-                      :location "http://0.0.0.0:8000/")
-    (let* ((package-menu-async t)
-           (process (start-process
-                     "package-server" "package-server-buffer"
-                     (executable-find "python2")
-                     (expand-file-name "package-test-server.py"))))
-      (unwind-protect
-          (progn
+  (let* ((package-menu-async t)
+         (default-directory package-test-data-dir)
+         (process (start-process
+                   "package-server" "package-server-buffer"
+                   (executable-find "python2")
+                   "package-test-server.py"))
+         port)
+    (unwind-protect
+        (progn
+          (with-current-buffer "package-server-buffer"
+            (should
+             (with-timeout (10 nil)
+               (while (not port)
+                 (accept-process-output nil 1)
+                 (goto-char (point-min))
+                 (if (re-search-forward "Serving HTTP on .* port \\([0-9]+\\) "
+                                        nil t)
+                     (setq port (match-string 1))))
+               port)))
+          (with-package-test (:basedir
+                              package-test-data-dir
+                              :location (format "http://0.0.0.0:%s/" port))
             (list-packages)
             (should package--downloads-in-progress)
             (should mode-line-process)
@@ -395,8 +407,8 @@ Must called from within a `tar-mode' buffer."
             (skip-unless (process-live-p process))
             (goto-char (point-min))
             (should
-             (search-forward-regexp "^ +simple-single" nil t)))
-        (if (process-live-p process) (kill-process process))))))
+             (search-forward-regexp "^ +simple-single" nil t))))
+      (if (process-live-p process) (kill-process process)))))
 
 (ert-deftest package-test-describe-package ()
   "Test displaying help for a package."