GNU bug report logs - #30327
27.0.50; Failures in files-tests.el on macOS

Previous Next

Package: emacs;

Reported by: Alan Third <alan <at> idiocy.org>

Date: Fri, 2 Feb 2018 20:33:02 UTC

Severity: normal

Tags: fixed

Found in version 27.0.50

Done: Noam Postavsky <npostavs <at> users.sourceforge.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Noam Postavsky <npostavs <at> users.sourceforge.net>
To: Alan Third <alan <at> idiocy.org>
Cc: Philipp Stephani <p.stephani2 <at> gmail.com>, Michael Albinus <michael.albinus <at> gmx.de>, 30327 <at> debbugs.gnu.org
Subject: bug#30327: 27.0.50; Failures in files-tests.el on macOS
Date: Sat, 03 Feb 2018 11:29:29 -0500
[Message part 1 (text/plain, inline)]
Alan Third <alan <at> idiocy.org> writes:

> On Sat, Feb 03, 2018 at 12:47:29AM -0500, Noam Postavsky wrote:
>> Philipp Stephani <p.stephani2 <at> gmail.com> writes:
>> 
>> > The differing element is the last access time. This isn't surprising
>> > given that reading the directory accesses it. Probably the test
>> > should simply ignore the fifth element (the access time). 
>> 
>> Ah, good point.  I went through all the different file handlers pretty
>> quickly when writing these tests, so I missed these details.  It passes
>> for me because I mount with 'relatime'.
>> 
>> Element 9 is "unspecified", so I think we shouldn't check that either.
>
> The patch makes it even worse with two failures now:

Sorry about that, I made some initial fix, then after testing, extended
it, but completely forgot to actually try out the extended version.
Here's a patch actually works on my box (and hopefully on others too).

[v2-0001-Don-t-require-all-file-attributes-to-be-equal-Bug.patch (text/x-diff, inline)]
From 0276d2e2d438a4f9606e708ef6367800ad7a5bfc Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs <at> gmail.com>
Date: Sat, 3 Feb 2018 00:44:45 -0500
Subject: [PATCH v2] ; Don't require all file-attributes to be equal
 (Bug#30327)

* 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 | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/test/lisp/files-tests.el b/test/lisp/files-tests.el
index 3879ca8731..2c651c6715 100644
--- a/test/lisp/files-tests.el
+++ b/test/lisp/files-tests.el
@@ -408,10 +408,23 @@ files-tests--with-temp-file
     (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
@@ -442,7 +455,8 @@ files-tests--with-temp-file
 
 (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)
-- 
2.11.0


This bug report was last modified 7 years and 110 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.