]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't use IP 0.0.0.0 for package test server (Bug#22582)
authorNoam Postavsky <npostavs@gmail.com>
Wed, 22 Feb 2017 21:56:14 +0000 (16:56 -0500)
committerNoam Postavsky <npostavs@gmail.com>
Sat, 25 Feb 2017 17:56:09 +0000 (12:56 -0500)
* test/lisp/emacs-lisp/package-resources/package-test-server.py: Set
'server_address' when port number is given on the command line.  Print
IP and port number as a URL, and flush it after printing.
* test/lisp/emacs-lisp/package-tests.el:
(package-test-update-archives-async): Grab the whole URL from server
output.

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

index 1acd9f744b9fa8e0155634c9b5c78ce8fdf5fe0d..128b4249ec366854db028e186262d89aabbf3dda 100644 (file)
@@ -11,11 +11,15 @@ if sys.argv[1:]:
     port = int(sys.argv[1])
 else:
     port = 0
-    server_address = ('127.0.0.1', port)
+server_address = ('127.0.0.1', port)
 
 HandlerClass.protocol_version = Protocol
 httpd = ServerClass(server_address, HandlerClass)
 
-sa = httpd.socket.getsockname()
-print "Serving HTTP on", sa[0], "port", sa[1], "..."
+ip, port = httpd.socket.getsockname()[0:2]
+print ("Server started, http://%s:%s/" % (ip, port))
+# Flush in case we're in full buffering mode (instead of line
+# buffering), this might happen if python is a cygwin program and we
+# run it from a native w32 program.
+sys.stdout.flush()
 httpd.serve_forever()
index 2e4666e7fe33527c853aeb3ed42dca1e662b18ed..5172b482cb0de156755ae886b8b67794a370f4ed 100644 (file)
@@ -376,22 +376,19 @@ Must called from within a `tar-mode' buffer."
                    "package-server" "package-server-buffer"
                    (executable-find "python2")
                    "package-test-server.py"))
-         port)
+         (addr nil))
     (unwind-protect
         (progn
           (with-current-buffer "package-server-buffer"
             (should
              (with-timeout (10 nil)
-               (while (not port)
+               (while (not addr)
                  (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))
+                 (when (re-search-forward "Server started, \\(.*\\)\n" nil t)
+                   (setq addr (match-string 1))))
+               addr)))
+          (with-package-test (:basedir package-test-data-dir :location addr)
             (list-packages)
             (should package--downloads-in-progress)
             (should mode-line-process)