diff options
| author | Ihor Radchenko | 2024-01-02 12:06:16 +0100 |
|---|---|---|
| committer | Eli Zaretskii | 2024-02-19 15:12:42 +0200 |
| commit | be8f3e68a88a00bc12f1cc405a8a341666c41858 (patch) | |
| tree | 7169a692cedcf19115fb7035a4e36a7ea9a9b163 /test/src | |
| parent | 8f260bb93f534b24d9a93d3315804ffe0c1fec4f (diff) | |
| download | emacs-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.el | 37 |
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. |