emacs-diffs
[Top][All Lists]
Advanced

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

master 9f46249: Add test to autorevert-tests.el


From: Michael Albinus
Subject: master 9f46249: Add test to autorevert-tests.el
Date: Wed, 2 Dec 2020 10:09:29 -0500 (EST)

branch: master
commit 9f462496ae06dae5e97ec5c68254c88365b850c0
Author: Michael Albinus <michael.albinus@gmx.de>
Commit: Michael Albinus <michael.albinus@gmx.de>

    Add test to autorevert-tests.el
    
    * test/lisp/autorevert-tests.el (auto-revert--wait-for-revert):
    Handle `auto-revert--messages' being nil.
    (auto-revert-test07-auto-revert-several-buffers): New test.
---
 test/lisp/autorevert-tests.el | 85 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 84 insertions(+), 1 deletion(-)

diff --git a/test/lisp/autorevert-tests.el b/test/lisp/autorevert-tests.el
index 9ebf137..f59a847 100644
--- a/test/lisp/autorevert-tests.el
+++ b/test/lisp/autorevert-tests.el
@@ -132,7 +132,7 @@ This expects `auto-revert--messages' to be bound by
                 (null (string-match
                        (format-message
                         "Reverting buffer `%s'\\." (buffer-name buffer))
-                       auto-revert--messages)))
+                       (or auto-revert--messages ""))))
       (if (with-current-buffer buffer auto-revert-use-notify)
           (read-event nil nil 0.05)
         (sleep-for 0.05)))))
@@ -583,6 +583,89 @@ This expects `auto-revert--messages' to be bound by
 (auto-revert--deftest-remote auto-revert-test06-write-file
   "Test `write-file' in `auto-revert-mode' for remote buffers.")
 
+;; This is inspired by Bug#44638.
+(ert-deftest auto-revert-test07-auto-revert-several-buffers ()
+  "Check autorevert for several buffers visiting the same file."
+  ;; (with-auto-revert-test
+   (let ((auto-revert-use-notify t)
+         (tmpfile (make-temp-file "auto-revert-test"))
+         (times '(60 30 15))
+         (num-buffers 10)
+         require-final-newline buffers)
+
+     (unwind-protect
+         ;; Check indirect buffers.
+         (ert-with-message-capture auto-revert--messages
+           (auto-revert-tests--write-file "any text" tmpfile (pop times))
+           (push (find-file-noselect tmpfile) buffers)
+           (with-current-buffer (car buffers)
+             (should (string-equal (buffer-string) "any text"))
+             ;; `buffer-stale--default-function' checks for
+             ;; `verify-visited-file-modtime'.  We must ensure that
+             ;; it returns nil.
+             (auto-revert-mode 1)
+             (should auto-revert-mode))
+
+           (dotimes (i num-buffers)
+             (add-to-list
+              'buffers
+              (make-indirect-buffer
+               (car buffers) (format "%s-%d" (buffer-file-name (car buffers)) 
i) 'clone)
+              'append))
+           (dolist (buf buffers)
+             (with-current-buffer buf
+               (should (string-equal (buffer-string) "any text"))
+               (should auto-revert-mode)))
+
+           (auto-revert-tests--write-file "another text" tmpfile (pop times))
+           ;; Check, that the buffer has been reverted.
+           (auto-revert--wait-for-revert (car buffers))
+           (dolist (buf buffers)
+             (with-current-buffer buf
+               (should (string-equal (buffer-string) "another text")))))
+
+       ;; Exit.
+       (ignore-errors
+         (dolist (buf buffers)
+           (with-current-buffer buf (set-buffer-modified-p nil))
+           (kill-buffer buf)))
+       (setq buffers nil)
+       (ignore-errors (delete-file tmpfile)))
+
+     ;; Check direct buffers.
+     (unwind-protect
+         (ert-with-message-capture auto-revert--messages
+           (auto-revert-tests--write-file "any text" tmpfile (pop times))
+
+           (dotimes (i num-buffers)
+             (add-to-list
+              'buffers
+              (generate-new-buffer (format "%s-%d" (file-name-nondirectory 
tmpfile) i))
+              'append))
+           (dolist (buf buffers)
+             (with-current-buffer buf
+               (insert-file-contents tmpfile 'visit)
+               (should (string-equal (buffer-string) "any text"))
+               (auto-revert-mode 1)
+               (should auto-revert-mode)))
+
+           (auto-revert-tests--write-file "another text" tmpfile (pop times))
+           ;; Check, that the buffers have been reverted.
+           (dolist (buf buffers)
+             (auto-revert--wait-for-revert buf)
+             (with-current-buffer buf
+               (should (string-equal (buffer-string) "another text")))))
+
+       ;; Exit.
+       (ignore-errors
+         (dolist (buf buffers)
+           (with-current-buffer buf (set-buffer-modified-p nil))
+           (kill-buffer buf)))
+       (ignore-errors (delete-file tmpfile)))));)
+
+(auto-revert--deftest-remote auto-revert-test07-auto-revert-several-buffers
+  "Check autorevert for several buffers visiting the same remote file.")
+
 (defun auto-revert-test-all (&optional interactive)
   "Run all tests for \\[auto-revert]."
   (interactive "p")



reply via email to

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