emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3a28d64: Do not hard-code port for package test ser


From: Glenn Morris
Subject: [Emacs-diffs] master 3a28d64: Do not hard-code port for package test server. (Bug#23708)
Date: Wed, 8 Jun 2016 01:25:34 +0000 (UTC)

branch: master
commit 3a28d64e275ca6860f81016b04a2024d9c66da1f
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Do not hard-code port for package test server.  (Bug#23708)
    
    * 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.
---
 .../package-resources/package-test-server.py       |    2 +-
 test/lisp/emacs-lisp/package-tests.el              |   36 +++++++++++++-------
 2 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/test/lisp/emacs-lisp/package-resources/package-test-server.py 
b/test/lisp/emacs-lisp/package-resources/package-test-server.py
index 35ca820..1acd9f7 100644
--- a/test/lisp/emacs-lisp/package-resources/package-test-server.py
+++ b/test/lisp/emacs-lisp/package-resources/package-test-server.py
@@ -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
diff --git a/test/lisp/emacs-lisp/package-tests.el 
b/test/lisp/emacs-lisp/package-tests.el
index c7a5cc7..0a446fd 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]