]> git.eshelyaron.com Git - emacs.git/commitdiff
; More instrumentation in autorevert-tests.el
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 27 Sep 2021 12:28:32 +0000 (14:28 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 27 Sep 2021 12:28:32 +0000 (14:28 +0200)
* test/lisp/autorevert-tests.el
(auto-revert-test--instrument-kill-buffer-hook): New defun.
(auto-revert-test05-global-notify): More instrumentation.

test/lisp/autorevert-tests.el

index d0c52f6103fb4463e854850a0d611b42c08625ac..162c8c8a86a60b741bed0b979d0c7e163fe87689 100644 (file)
@@ -469,6 +469,17 @@ This expects `auto-revert--messages' to be bound by
    (lambda () (string-equal (auto-revert-test--buffer-string buffer) string))
    max-wait))
 
+(defun auto-revert-test--instrument-kill-buffer-hook (buffer)
+  "Instrument local `kill-buffer-hook' with messages."
+  (when auto-revert-debug
+    (with-current-buffer buffer
+      (add-hook
+       'kill-buffer-hook
+       (lambda ()
+         (message
+          "%s killed\n%s" (current-buffer) (with-output-to-string (backtrace))))
+       nil 'local))))
+
 (ert-deftest auto-revert-test05-global-notify ()
   "Test `global-auto-revert-mode' without polling."
   (skip-unless (or file-notify--library
@@ -476,6 +487,8 @@ This expects `auto-revert--messages' to be bound by
   (with-auto-revert-test
    (let* ((auto-revert-use-notify t)
           (auto-revert-avoid-polling t)
+          (auto-revert-debug (getenv "EMACS_EMBA_CI"))
+          (file-notify-debug (getenv "EMACS_EMBA_CI"))
           (was-in-global-auto-revert-mode global-auto-revert-mode)
           (file-1 (make-temp-file "global-auto-revert-test-1"))
           (file-2 (make-temp-file "global-auto-revert-test-2"))
@@ -485,7 +498,9 @@ This expects `auto-revert--messages' to be bound by
      (unwind-protect
          (progn
            (setq buf-1 (find-file-noselect file-1))
+           (auto-revert-test--instrument-kill-buffer-hook buf-1)
            (setq buf-2 (find-file-noselect file-2))
+           (auto-revert-test--instrument-kill-buffer-hook buf-2)
            (auto-revert-test--write-file "1-a" file-1)
            (should (equal (auto-revert-test--buffer-string buf-1) ""))
 
@@ -508,11 +523,12 @@ This expects `auto-revert--messages' to be bound by
 
            ;; Visit a file, and modify it on disk.
            (setq buf-3 (find-file-noselect file-3))
+           (auto-revert-test--instrument-kill-buffer-hook buf-3)
            ;; Newly opened buffers won't be use notification until the
            ;; first poll cycle; wait for it.
            (auto-revert-test--wait-for
             (lambda () (buffer-local-value
-                   'auto-revert-notify-watch-descriptor buf-3))
+                        'auto-revert-notify-watch-descriptor buf-3))
             (auto-revert--timeout))
            (message "Hallo0")
            (should (buffer-local-value
@@ -528,7 +544,13 @@ This expects `auto-revert--messages' to be bound by
            (auto-revert-test--wait-for-buffer-text
             buf-1 "1-b" (auto-revert--timeout))
            ;; On emba, `buf-1' is a killed buffer.
-           (message "Hallo1 %s %s %s %s %s %s %s" buf-1 (buffer-name buf-1) (buffer-live-p buf-1) file-1 (get-file-buffer file-1) (buffer-name (get-file-buffer file-1)) (buffer-live-p (get-file-buffer file-1)))
+           (when auto-revert-debug
+             (message
+              "Hallo1 %s %s %s %s %s %s %s"
+              buf-1 (buffer-name buf-1) (buffer-live-p buf-1)
+              file-1 (get-file-buffer file-1)
+              (buffer-name (get-file-buffer file-1))
+              (buffer-live-p (get-file-buffer file-1))))
            (should
             (buffer-local-value
              'auto-revert-notify-watch-descriptor (get-file-buffer file-1)))
@@ -548,6 +570,7 @@ This expects `auto-revert--messages' to be bound by
        (unless was-in-global-auto-revert-mode
          (global-auto-revert-mode 0))    ; Turn it off.
        (dolist (buf (list buf-1 buf-2 buf-3))
+         (with-current-buffer buf (setq-local kill-buffer-hook nil))
          (ignore-errors (kill-buffer buf)))
        (dolist (file (list file-1 file-2 file-2b file-3))
          (ignore-errors (delete-file file)))