aboutsummaryrefslogtreecommitdiffstats
path: root/test/src
diff options
context:
space:
mode:
authorIhor Radchenko2024-01-02 12:06:16 +0100
committerEli Zaretskii2024-02-19 15:12:42 +0200
commitbe8f3e68a88a00bc12f1cc405a8a341666c41858 (patch)
tree7169a692cedcf19115fb7035a4e36a7ea9a9b163 /test/src
parent8f260bb93f534b24d9a93d3315804ffe0c1fec4f (diff)
downloademacs-be8f3e68a88a00bc12f1cc405a8a341666c41858.tar.gz
emacs-be8f3e68a88a00bc12f1cc405a8a341666c41858.zip
* test/src/eval-tests.el (eval-tests/default-value): Add new test case.
Bug#66117
Diffstat (limited to 'test/src')
-rw-r--r--test/src/eval-tests.el37
1 files changed, 25 insertions, 12 deletions
diff --git a/test/src/eval-tests.el b/test/src/eval-tests.el
index e1c90feb09a..187dc2f34d5 100644
--- a/test/src/eval-tests.el
+++ b/test/src/eval-tests.el
@@ -282,26 +282,39 @@ expressions works for identifiers starting with period."
282 (should-error (defvaralias 'eval-tests--my-c 'eval-tests--my-d) 282 (should-error (defvaralias 'eval-tests--my-c 'eval-tests--my-d)
283 :type 'cyclic-variable-indirection)) 283 :type 'cyclic-variable-indirection))
284 284
285(defvar eval-tests/global-var 'value) 285(defvar eval-tests/global-var 'global-value)
286(defvar-local eval-tests/buffer-local-var 'value) 286(defvar-local eval-tests/buffer-local-var 'default-value)
287(ert-deftest eval-tests/default-value () 287(ert-deftest eval-tests/default-value ()
288 ;; `let' overrides the default value for global variables. 288 ;; `let' overrides the default value for global variables.
289 (should (default-boundp 'eval-tests/global-var)) 289 (should (default-boundp 'eval-tests/global-var))
290 (should (eq 'value (default-value 'eval-tests/global-var))) 290 (should (eq 'global-value (default-value 'eval-tests/global-var)))
291 (should (eq 'value eval-tests/global-var)) 291 (should (eq 'global-value eval-tests/global-var))
292 (let ((eval-tests/global-var 'bar)) 292 (let ((eval-tests/global-var 'let-value))
293 (should (eq 'bar (default-value 'eval-tests/global-var))) 293 (should (eq 'let-value (default-value 'eval-tests/global-var)))
294 (should (eq 'bar eval-tests/global-var))) 294 (should (eq 'let-value eval-tests/global-var)))
295 ;; `let' overrides the default value everywhere, but leaves 295 ;; `let' overrides the default value everywhere, but leaves
296 ;; buffer-local values unchanged in current buffer and in the 296 ;; buffer-local values unchanged in current buffer and in the
297 ;; buffers where there is no explicitly set buffer-local value. 297 ;; buffers where there is no explicitly set buffer-local value.
298 (should (default-boundp 'eval-tests/buffer-local-var)) 298 (should (default-boundp 'eval-tests/buffer-local-var))
299 (should (eq 'value (default-value 'eval-tests/buffer-local-var))) 299 (should (eq 'default-value (default-value 'eval-tests/buffer-local-var)))
300 (should (eq 'value eval-tests/buffer-local-var)) 300 (should (eq 'default-value eval-tests/buffer-local-var))
301 (with-temp-buffer 301 (with-temp-buffer
302 (let ((eval-tests/buffer-local-var 'bar)) 302 (let ((eval-tests/buffer-local-var 'let-value))
303 (should (eq 'bar (default-value 'eval-tests/buffer-local-var))) 303 (should (eq 'let-value (default-value 'eval-tests/buffer-local-var)))
304 (should (eq 'bar eval-tests/buffer-local-var))))) 304 (should (eq 'let-value eval-tests/buffer-local-var))))
305 ;; When current buffer has explicit buffer-local binding, `let' does
306 ;; not alter the default binding.
307 (with-temp-buffer
308 (setq-local eval-tests/buffer-local-var 'local-value)
309 (let ((eval-tests/buffer-local-var 'let-value))
310 ;; Let in a buffer with local binding does not change the
311 ;; default value for variable.
312 (should (eq 'default-value (default-value 'eval-tests/buffer-local-var)))
313 (should (eq 'let-value eval-tests/buffer-local-var))
314 (with-temp-buffer
315 ;; We are in a new buffer - `eval-tests/buffer-local-var' has its global default value.
316 (should (eq 'default-value (default-value 'eval-tests/buffer-local-var)))
317 (should (eq 'default-value eval-tests/buffer-local-var))))))
305 318
306(ert-deftest eval-tests--handler-bind () 319(ert-deftest eval-tests--handler-bind ()
307 ;; A `handler-bind' has no effect if no error is signaled. 320 ;; A `handler-bind' has no effect if no error is signaled.