Package: emacs;
Reported by: Eli Zaretskii <eliz <at> gnu.org>
Date: Sat, 29 Aug 2015 12:14:01 UTC
Severity: normal
Found in version 25.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Eli Zaretskii <eliz <at> gnu.org> To: 21375 <at> debbugs.gnu.org, fgallina <at> gnu.org Subject: bug#21375: 25.0.50; Python tests fail on MS-Windows -- portability issues Date: Sat, 29 Aug 2015 15:13:33 +0300
As I reported in the past, some Python tests fail on MS-Windows. 13 of them, to be more accurate. The changes below reduce those 13 to just 4. The main problems fixed by these changes are: (a) the assumption that "/foo" is an absolute file name that expand-file-name cannot possibly change, and (b) use of a literal ':' character is PATH-style lists of directories. Also, one of the failures was because python-shell-calculate-command always quotes the interpreter's file name on MS-Windows, which the test didn't expect. Fabián, if these are OK with you, I will commit them. I will file a separate bug about the other 4 failures, as I need help there in figuring out how to fix them. Thanks. Here are the proposed changes, relative to today's master: diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el index 30b1b48..219f99e 100644 --- a/test/automated/python-tests.el +++ b/test/automated/python-tests.el @@ -2436,7 +2436,7 @@ (ert-deftest python-shell-calculate-command-1 () (python-shell-interpreter-args "-B")) (should (string= (format "%s %s" - python-shell-interpreter + (shell-quote-argument python-shell-interpreter) python-shell-interpreter-args) (python-shell-calculate-command))))) @@ -2445,14 +2445,17 @@ (ert-deftest python-shell-calculate-pythonpath-1 () (let ((process-environment '("PYTHONPATH=/path0")) (python-shell-extra-pythonpaths '("/path1" "/path2"))) (should (string= (python-shell-calculate-pythonpath) - "/path1:/path2:/path0")))) + (concat "/path1" path-separator + "/path2" path-separator "/path0"))))) (ert-deftest python-shell-calculate-pythonpath-2 () "Test existing paths are moved to front." - (let ((process-environment '("PYTHONPATH=/path0:/path1")) + (let ((process-environment + (list (concat "PYTHONPATH=/path0" path-separator "/path1"))) (python-shell-extra-pythonpaths '("/path1" "/path2"))) (should (string= (python-shell-calculate-pythonpath) - "/path1:/path2:/path0")))) + (concat "/path1" path-separator + "/path2" path-separator "/path0"))))) (ert-deftest python-shell-calculate-process-environment-1 () "Test `python-shell-process-environment' modification." @@ -2468,7 +2471,9 @@ (ert-deftest python-shell-calculate-process-environment-2 () (original-pythonpath (setenv "PYTHONPATH" "/path0")) (python-shell-extra-pythonpaths '("/path1" "/path2")) (process-environment (python-shell-calculate-process-environment))) - (should (equal (getenv "PYTHONPATH") "/path1:/path2:/path0")))) + (should (equal (getenv "PYTHONPATH") + (concat "/path1" path-separator + "/path2" path-separator "/path0"))))) (ert-deftest python-shell-calculate-process-environment-3 () "Test `python-shell-virtualenv-root' modification." @@ -2545,7 +2550,8 @@ (ert-deftest python-shell-calculate-exec-path-2 () (let* ((exec-path '("/path0")) (python-shell-virtualenv-root "/env") (new-exec-path (python-shell-calculate-exec-path))) - (should (equal new-exec-path '("/env/bin" "/path0"))))) + (should (equal new-exec-path + (list (expand-file-name "/env/bin") "/path0"))))) (ert-deftest python-shell-calculate-exec-path-3 () "Test complete `python-shell-virtualenv-root' modification." @@ -2553,7 +2559,9 @@ (ert-deftest python-shell-calculate-exec-path-3 () (python-shell-exec-path '("/path1" "/path2")) (python-shell-virtualenv-root "/env") (new-exec-path (python-shell-calculate-exec-path))) - (should (equal new-exec-path '("/env/bin" "/path1" "/path2" "/path0"))))) + (should (equal new-exec-path + (list (expand-file-name "/env/bin") + "/path1" "/path2" "/path0"))))) (ert-deftest python-shell-calculate-exec-path-4 () "Test complete `python-shell-virtualenv-root' with remote." @@ -2562,7 +2570,9 @@ (ert-deftest python-shell-calculate-exec-path-4 () (python-shell-exec-path '("/path1" "/path2")) (python-shell-virtualenv-root "/env") (new-exec-path (python-shell-calculate-exec-path))) - (should (equal new-exec-path '("/env/bin" "/path1" "/path2" "/path0"))))) + (should (equal new-exec-path + (list (expand-file-name "/env/bin") + "/path1" "/path2" "/path0"))))) (ert-deftest python-shell-calculate-exec-path-5 () "Test no side-effects on `exec-path'." @@ -2590,7 +2600,9 @@ (ert-deftest python-shell-with-environment-1 () (original-exec-path exec-path) (python-shell-virtualenv-root "/env")) (python-shell-with-environment - (should (equal exec-path '("/env/bin" "/path1" "/path2" "/path0"))) + (should (equal exec-path + (list (expand-file-name "/env/bin") + "/path1" "/path2" "/path0"))) (should (not (getenv "PYTHONHOME"))) (should (string= (getenv "VIRTUAL_ENV") "/env"))) (should (equal exec-path original-exec-path)))) @@ -2605,7 +2617,8 @@ (ert-deftest python-shell-with-environment-2 () (python-shell-virtualenv-root "/env")) (python-shell-with-environment (should (equal (python-shell-calculate-exec-path) - '("/env/bin" "/path1" "/path2" "/remote1" "/remote2"))) + (list (expand-file-name "/env/bin") + "/path1" "/path2" "/remote1" "/remote2"))) (let ((process-environment (python-shell-calculate-process-environment))) (should (not (getenv "PYTHONHOME"))) (should (string= (getenv "VIRTUAL_ENV") "/env")) In GNU Emacs 25.0.50.384 (i686-pc-mingw32) of 2015-08-29 Repository revision: 5e63c842007b0f85e91735a7c4e00be0b7fe9ba5 Windowing system distributor `Microsoft Corp.', version 5.1.2600 Configured using: `configure --prefix=/d/usr --enable-checking=yes,glyphs --with-wide-int 'CFLAGS=-gdwarf-4 -g3 -O0'' Configured features: XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS Important settings: value of $LANG: ENU locale-coding-system: cp1255 Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-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 transient-mark-mode: t 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 mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp disp-table w32-win w32-vars term/common-win 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 cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded 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 w32notify w32 multi-tty make-network-process emacs) Memory information: ((conses 16 84975 6948) (symbols 56 19924 0) (miscs 48 36 107) (strings 16 15967 5012) (string-bytes 1 393017) (vectors 16 11212) (vector-slots 8 402827 5209) (floats 8 125 127) (intervals 40 260 63) (buffers 856 11))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.