]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't require all file-attributes to be equal (Bug#30327)
authorNoam Postavsky <npostavs@gmail.com>
Sat, 3 Feb 2018 05:44:45 +0000 (00:44 -0500)
committerNoam Postavsky <npostavs@gmail.com>
Sat, 3 Feb 2018 19:36:14 +0000 (14:36 -0500)
* test/lisp/files-tests.el (files-tests-file-attributes-equal): New
function.
(files-tests-file-name-non-special-directory-files-and-attributes)
(files-tests-file-name-non-special-file-attributes): Use it instead of
`equal'.

test/lisp/files-tests.el

index 4e1d20edf05e6183b989d1c56371b36d8526b766..d07df02877c3f28cef83bbf89785528dc3654239 100644 (file)
@@ -417,10 +417,23 @@ be invoked with the right arguments."
     (should (equal (directory-files nospecial-dir)
                    (directory-files tmpdir)))))
 
+(defun files-tests-file-attributes-equal (attr1 attr2)
+  ;; Element 4 is access time, which may be changed by the act of
+  ;; checking the attributes.
+  (setf (nth 4 attr1) nil)
+  (setf (nth 4 attr2) nil)
+  ;; Element 9 is unspecified.
+  (setf (nth 9 attr1) nil)
+  (setf (nth 9 attr2) nil)
+  (equal attr1 attr2))
+
 (ert-deftest files-tests-file-name-non-special-directory-files-and-attributes ()
   (files-tests--with-temp-non-special (tmpdir nospecial-dir t)
-    (should (equal (directory-files-and-attributes nospecial-dir)
-                   (directory-files-and-attributes tmpdir)))))
+    (cl-loop for (file1 . attr1) in (directory-files-and-attributes nospecial-dir)
+             for (file2 . attr2) in (directory-files-and-attributes tmpdir)
+             do
+             (should (equal file1 file2))
+             (should (files-tests-file-attributes-equal attr1 attr2)))))
 
 (ert-deftest files-tests-file-name-non-special-dired-compress-handler ()
   ;; `dired-compress-file' can get confused by filenames with ":" in
@@ -451,7 +464,8 @@ be invoked with the right arguments."
 
 (ert-deftest files-tests-file-name-non-special-file-attributes ()
   (files-tests--with-temp-non-special (tmpfile nospecial)
-    (should (equal (file-attributes nospecial) (file-attributes tmpfile)))))
+    (should (files-tests-file-attributes-equal
+             (file-attributes nospecial) (file-attributes tmpfile)))))
 
 (ert-deftest files-tests-file-name-non-special-file-directory-p ()
   (files-tests--with-temp-non-special (tmpdir nospecial-dir t)