]> git.eshelyaron.com Git - emacs.git/commitdiff
Add tests for `let' (bug#66117)
authorIhor Radchenko <yantar92@posteo.net>
Sat, 23 Dec 2023 14:29:36 +0000 (15:29 +0100)
committerEli Zaretskii <eliz@gnu.org>
Sat, 30 Dec 2023 07:37:28 +0000 (09:37 +0200)
* test/src/eval-tests.el (eval-tests/default-value): New test.

test/src/eval-tests.el

index 4589763b2f5e6ec150f7f229b8d5c26f4e1231f6..c1219591e405217d21edc2ef58debe158a4b494f 100644 (file)
@@ -282,4 +282,25 @@ expressions works for identifiers starting with period."
   (should-error (defvaralias 'eval-tests--my-c 'eval-tests--my-d)
                 :type 'cyclic-variable-indirection))
 
+(defvar eval-tests/global-var 'value)
+(defvar-local eval-tests/buffer-local-var 'value)
+(ert-deftest eval-tests/default-value ()
+  ;; `let' overrides the default value for global variables.
+  (should (default-boundp 'eval-tests/global-var))
+  (should (eq 'value (default-value 'eval-tests/global-var)))
+  (should (eq 'value eval-tests/global-var))
+  (let ((eval-tests/global-var 'bar))
+    (should (eq 'bar (default-value 'eval-tests/global-var)))
+    (should (eq 'bar eval-tests/global-var)))
+  ;; `let' overrides the default value everywhere, but leaves
+  ;; buffer-local values unchanged in current buffer and in the
+  ;; buffers where there is no explicitly set buffer-local value.
+  (should (default-boundp 'eval-tests/buffer-local-var))
+  (should (eq 'value (default-value 'eval-tests/buffer-local-var)))
+  (should (eq 'value eval-tests/buffer-local-var))
+  (with-temp-buffer
+    (let ((eval-tests/buffer-local-var 'bar))
+      (should (eq 'bar (default-value 'eval-tests/buffer-local-var)))
+      (should (eq 'bar eval-tests/buffer-local-var)))))
+
 ;;; eval-tests.el ends here