Subject: 25.0.50; python-tests.el hangs on MS-WIndows
From: Eli Zaretskii <[email-masked]>
To: [email-masked]
Cc: Fabián Ezequiel Gallina <[email-masked]>
Date: Wed, 01 Oct 2014 18:09:15 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

When running Emacs tests on MS-Windows, Emacs hangs in python-tests.el
if Python is installed.  Also, the python-shell-make-comint-3 test
fails gratuitously because it compares file names as strings.

The patches below fix both of these issues.  OK to commit to the
trunk (with suitable ChangeLog entries)?

--- test/automated/python-tests.el~0	2014-09-04 06:51:35 +0300
+++ test/automated/python-tests.el	2014-10-01 18:04:09 +0300
@@ -1736,7 +1736,8 @@
     (should (equal (getenv "PYTHONPATH")
                    (concat
                     (mapconcat 'identity paths path-separator)
-                    path-separator original-pythonpath)))))
+                    (if original-pythonpath path-separator)
+                    original-pythonpath)))))
 
 (ert-deftest python-shell-calculate-process-environment-3 ()
   "Test `python-shell-virtualenv-path' modification."
@@ -1842,8 +1843,9 @@
           (should (process-live-p process))
           (with-current-buffer shell-buffer
             (should (eq major-mode 'inferior-python-mode))
-            (should (string= python-shell-interpreter
-                             (executable-find python-tests-shell-interpreter)))
+            (should (file-equal-p
+                     python-shell-interpreter
+                     (executable-find python-tests-shell-interpreter)))
             (should (string= python-shell-interpreter-args "-i"))))
       (kill-buffer shell-buffer))))
 
@@ -1933,10 +1935,13 @@
    ""
    (let* ((python-shell-interpreter
            (executable-find python-tests-shell-interpreter))
+          (python-cmd (if (eq system-type 'windows-nt)
+                          (concat python-shell-interpreter " -i -u")
+                        python-shell-interpreter))
           (use-dialog-box)
           (dedicated-process-name (python-shell-get-process-name t))
           (dedicated-process
-           (python-shell-get-or-create-process python-shell-interpreter t))
+           (python-shell-get-or-create-process python-cmd t))
           (dedicated-shell-buffer (process-buffer dedicated-process)))
      (unwind-protect
          (progn
@@ -1956,10 +1961,13 @@
    ""
    (let* ((python-shell-interpreter
            (executable-find python-tests-shell-interpreter))
+          (python-cmd (if (eq system-type 'windows-nt)
+                          (concat python-shell-interpreter " -i -u")
+                        python-shell-interpreter))
           (use-dialog-box)
           (process-name (python-shell-get-process-name nil))
           (process
-           (python-shell-get-or-create-process python-shell-interpreter))
+           (python-shell-get-or-create-process python-cmd))
           (shell-buffer (process-buffer process)))
      (unwind-protect
          (progn
@@ -1978,6 +1986,9 @@
    ""
    (let* ((python-shell-interpreter
            (executable-find python-tests-shell-interpreter))
+          (python-cmd (if (eq system-type 'windows-nt)
+                          (concat python-shell-interpreter " -i -u")
+                        python-shell-interpreter))
           (use-dialog-box)
           (dedicated-process-name (python-shell-get-process-name t))
           (global-process)
@@ -1985,12 +1996,12 @@
      (unwind-protect
          (progn
            ;; Create global process
-           (run-python python-shell-interpreter nil)
+           (run-python python-cmd nil)
            (setq global-process (get-buffer-process "*Python*"))
            (should global-process)
            (set-process-query-on-exit-flag global-process nil)
            ;; Create dedicated process
-           (run-python python-shell-interpreter t)
+           (run-python python-cmd t)
            (setq dedicated-process (get-process dedicated-process-name))
            (should dedicated-process)
            (set-process-query-on-exit-flag dedicated-process nil)

In GNU Emacs 25.0.50.10 (i686-pc-mingw32)
 of 2014-10-01 on HOME-C4E4A596F7
Repository revision: 117996 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --prefix=/d/usr --enable-checking=yes,glyphs 'CFLAGS=-O0
 -g3''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent input:
M-x r e p o r t - e m <tab> <return>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message dired format-spec
rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util help-fns mail-prsvr mail-utils time-date tooltip
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32
ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32notify w32 multi-tty emacs)

Memory information:
((conses 8 78634 6057)
 (symbols 32 17980 0)
 (miscs 32 36 97)
 (strings 16 12838 3605)
 (string-bytes 1 313631)
 (vectors 8 9979)
 (vector-slots 4 389897 2816)
 (floats 8 64 105)
 (intervals 28 240 95)
 (buffers 516 11))