aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorPhilipp Stephani2020-06-14 18:18:13 +0200
committerPhilipp Stephani2020-06-14 18:18:13 +0200
commit62cf8f1649468fc2f6c4f8926ab5c4bb184bfbe8 (patch)
tree8d5f6bf7b9d21548712f3638ebe895a36424be54 /test
parentb3e7d046c3a94556fcaf6f9ce72aa2ecb20262a6 (diff)
downloademacs-62cf8f1649468fc2f6c4f8926ab5c4bb184bfbe8.tar.gz
emacs-62cf8f1649468fc2f6c4f8926ab5c4bb184bfbe8.zip
Ensure that getters and setters can be edebugged at the same time.
It's necessary to add a name suffix to setters defined with 'gv-define-setter' so that Edebug can distinguish between the getter and the setter (Bug#41853). * lisp/emacs-lisp/gv.el (gv-define-setter): Add a name suffix to setter definitions. * test/lisp/emacs-lisp/gv-tests.el (gv-setter-edebug): New regression test.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/emacs-lisp/gv-tests.el19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/gv-tests.el b/test/lisp/emacs-lisp/gv-tests.el
index 7fa4cd50b08..7a8402be074 100644
--- a/test/lisp/emacs-lisp/gv-tests.el
+++ b/test/lisp/emacs-lisp/gv-tests.el
@@ -19,6 +19,7 @@
19 19
20;;; Code: 20;;; Code:
21 21
22(require 'edebug)
22(require 'ert) 23(require 'ert)
23(eval-when-compile (require 'cl-lib)) 24(eval-when-compile (require 'cl-lib))
24 25
@@ -137,6 +138,24 @@
137 (should (equal (buffer-string) 138 (should (equal (buffer-string)
138 "Symbol's function definition is void: \\(setf\\ gv-test-foo\\)\n"))))) 139 "Symbol's function definition is void: \\(setf\\ gv-test-foo\\)\n")))))
139 140
141(ert-deftest gv-setter-edebug ()
142 "Check that a setter can be defined and edebugged together with
143its getter (Bug#41853)."
144 (with-temp-buffer
145 (let ((edebug-all-defs t)
146 (edebug-initial-mode 'Go-nonstop))
147 (dolist (form '((defun gv-setter-edebug-help (b) b)
148 (defun gv-setter-edebug-get (a b)
149 (get a (gv-setter-edebug-help b)))
150 (gv-define-setter gv-setter-edebug-get (x a b)
151 `(setf (get ,a (gv-setter-edebug-help ,b)) ,x))
152 (push 123 (gv-setter-edebug-get 'gv-setter-edebug
153 'gv-setter-edebug-prop))))
154 (print form (current-buffer)))
155 ;; Only check whether evaluation works in general.
156 (eval-buffer)))
157 (should (equal (get 'gv-setter-edebug 'gv-setter-edebug-prop) '(123))))
158
140;; `ert-deftest' messes up macroexpansion when the test file itself is 159;; `ert-deftest' messes up macroexpansion when the test file itself is
141;; compiled (see Bug #24402). 160;; compiled (see Bug #24402).
142 161