Generate new buffer/get buffer create
For testing, would it make sense to repurpose the following from `/src/buffer-tests.el`?
```
(ert-deftest buffer-tests-inhibit-buffer-hooks ()
"Test `get-buffer-create' argument INHIBIT-BUFFER-HOOKS."
(let* (run-bluh (bluh (lambda () (setq run-bluh t))))
(unwind-protect
(let* ( run-kbh (kbh (lambda () (setq run-kbh t)))
run-kbqf (kbqf (lambda () (setq run-kbqf t))) )
;; Inhibited.
(add-hook 'buffer-list-update-hook bluh)
(with-current-buffer (generate-new-buffer " foo" t)
(add-hook 'kill-buffer-hook kbh nil t)
(add-hook 'kill-buffer-query-functions kbqf nil t)
(kill-buffer))
(with-temp-buffer (ignore))
(with-output-to-string (ignore))
(should-not run-bluh)
(should-not run-kbh)
(should-not run-kbqf)
;; Not inhibited.
(with-current-buffer (generate-new-buffer " foo")
(should run-bluh)
(add-hook 'kill-buffer-hook kbh nil t)
(add-hook 'kill-buffer-query-functions kbqf nil t)
(kill-buffer))
(should run-kbh)
(should run-kbqf))
(remove-hook 'buffer-list-update-hook bluh))))
(ert-deftest buffer-tests-inhibit-buffer-hooks-indirect ()
"Test `make-indirect-buffer' argument INHIBIT-BUFFER-HOOKS."
(let* ( base run-bluh run-kbh run-kbqf
(bluh (lambda () (setq run-bluh t)))
(kbh (lambda () (setq run-kbh t)))
(kbqf (lambda () (setq run-kbqf t))))
(dolist (inhibit-base '(nil t))
(unwind-protect
(let (indirect)
(setq base (generate-new-buffer " base" inhibit-base))
(dolist (inhibit-indirect '(nil t))
(dotimes (_ 11)
(unwind-protect
(let ((name (generate-new-buffer-name " indirect")))
(setq run-bluh nil run-kbh nil run-kbqf nil)
(add-hook 'buffer-list-update-hook bluh)
(with-current-buffer
(setq indirect (make-indirect-buffer
base name nil inhibit-indirect))
(add-hook 'kill-buffer-hook kbh nil t)
(add-hook 'kill-buffer-query-functions kbqf nil t)
(kill-buffer))
(should (xor inhibit-indirect run-bluh))
(should (xor inhibit-indirect run-kbh))
(should (xor inhibit-indirect run-kbqf)))
(remove-hook 'buffer-list-update-hook bluh)
(when (buffer-live-p indirect)
(kill-buffer indirect))))))
(when (buffer-live-p base)
(kill-buffer base))))))
```
合并状态:未合并 关闭于 2024-06-02 14 条评论