From 3a28d64e275ca6860f81016b04a2024d9c66da1f Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 7 Jun 2016 21:25:20 -0400 Subject: [PATCH 1/1] 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 35ca820f31..1acd9f744b 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 c7a5cc7af2..0a446fde08 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." -- 2.39.2