emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] scratch/nonspecial-handlers 0c3c28f 2/2: Avoid test failur


From: Noam Postavsky
Subject: [Emacs-diffs] scratch/nonspecial-handlers 0c3c28f 2/2: Avoid test failures on w32 systems
Date: Fri, 26 Jan 2018 16:59:52 -0500 (EST)

branch: scratch/nonspecial-handlers
commit 0c3c28f4a0fcb85afb4e52ff072fc12a4af2e970
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Avoid test failures on w32 systems
    
    * test/lisp/files-tests.el
    (files-file-name-non-special-dired-compress-handler): New skipped
    test, extracted from files-file-name-non-special-handlers.
    * test/lisp/files-tests.el (files-file-name-non-special-handlers):
    Don't pass nil SWITCHES to `insert-directory', the w32 implementation
    doesn't handle it (this is likely a bug, but not the focus of this
    test).  Put "$FOO" in the string passed to substitute-in-file-name so
    that we actually test "/:" quoting prevents substitution.
---
 test/lisp/files-tests.el | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index e90b260..530d2bf 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -345,6 +345,19 @@ be invoked with the right arguments."
       (should (file-notify-valid-p watch))
       (file-notify-rm-watch watch))))
 
+(ert-deftest files-file-name-non-special-dired-compress-handler ()
+  ;; `dired-compress-file' can get confused by filenames with ":" in
+  ;; them, which causes this to fail on `windows-nt' systems.  This
+  ;; test does seem to pass on GNU/Linux systems, but it's not clear
+  ;; why since the "/:" quoted file names also have ":" in them.  Just
+  ;; skip for now.
+  (ert-skip "FIXME: dired-compress-file unreliable for names containing `:'." )
+  (files-tests--with-temp-file tmpfile
+    (let* ((nospecial (concat "/:" tmpfile))
+           (compressed (dired-compress-file nospecial)))
+      (when compressed
+        (should (equal nospecial (dired-compress-file compressed)))))))
+
 (ert-deftest files-file-name-non-special-handlers ()
   (files-tests--with-temp-file tmpfile
     (files-tests--with-temp-dir tmpdir
@@ -376,7 +389,6 @@ be invoked with the right arguments."
                        (directory-files tmpdir)))
         (should (equal (directory-files-and-attributes nospecial-dir)
                        (directory-files-and-attributes tmpdir)))
-        (dired-compress-file (dired-compress-file nospecial))
         (dired-uncache nospecial-dir)
         (should (equal (expand-file-name nospecial)
                        nospecial))
@@ -430,10 +442,10 @@ be invoked with the right arguments."
                                (find-backup-file-name tmpfile))))
         (should-not (get-file-buffer nospecial))
         (should (equal (with-temp-buffer
-                         (insert-directory nospecial-dir nil)
+                         (insert-directory nospecial-dir "")
                          (buffer-string))
                        (with-temp-buffer
-                         (insert-directory tmpdir nil)
+                         (insert-directory tmpdir "")
                          (buffer-string))))
         (with-temp-buffer
           (insert-file-contents nospecial)
@@ -505,9 +517,10 @@ be invoked with the right arguments."
               (should (search-forward emacs-version nil t))
               (kill-process proc)
               (accept-process-output proc ))))
-        (let ((process-environment (cons "FOO=foo" process-environment)))
+        (let ((process-environment (cons "FOO=foo" process-environment))
+              (nospecial-foo (concat nospecial "$FOO")))
           ;; The "/:" prevents substitution.
-          (equal (substitute-in-file-name nospecial) nospecial))
+          (equal (substitute-in-file-name nospecial-foo) nospecial-foo))
         (let ((default-directory nospecial-dir))
           (equal (temporary-file-directory) temporary-file-directory))
         (equal (unhandled-file-name-directory nospecial-dir)



reply via email to

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