diff options
author | Andrea Corallo <akrl@sdf.org> | 2021-04-13 12:06:23 +0200 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2021-04-13 12:06:23 +0200 |
commit | b064ddd3f600ed28e62b09d556ecced5f80d9883 (patch) | |
tree | 2ddf4889f385beb34cd064f245a7e59265377c37 /test/lisp/emacs-lisp/edebug-tests.el | |
parent | 2d23f19e7d5ff8a1ec1a188dcd530c185029d1f8 (diff) | |
parent | 6de79542e43ece9a12ebc032c275a6c3fee0b73b (diff) | |
download | emacs-b064ddd3f600ed28e62b09d556ecced5f80d9883.tar.gz emacs-b064ddd3f600ed28e62b09d556ecced5f80d9883.tar.bz2 emacs-b064ddd3f600ed28e62b09d556ecced5f80d9883.zip |
Merge remote-tracking branch 'savannah/master' into native-comp
Diffstat (limited to 'test/lisp/emacs-lisp/edebug-tests.el')
-rw-r--r-- | test/lisp/emacs-lisp/edebug-tests.el | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/edebug-tests.el b/test/lisp/emacs-lisp/edebug-tests.el index dcb261c2eb9..7d45432e57e 100644 --- a/test/lisp/emacs-lisp/edebug-tests.el +++ b/test/lisp/emacs-lisp/edebug-tests.el @@ -1061,5 +1061,30 @@ backtracking (Bug#42701)." "edebug-anon10001" "edebug-tests-duplicate-symbol-backtrack")))))) +(defmacro edebug-tests--duplicate-&define (_arg) + "Helper macro for the ERT test `edebug-tests-duplicate-&define'. +The Edebug specification is similar to the one used by `cl-flet' +previously; see Bug#41988." + (declare (debug (&or (&define name function-form) (defun))))) + +(ert-deftest edebug-tests-duplicate-&define () + "Check that Edebug doesn't backtrack out of `&define' forms. +This avoids potential duplicate definitions (Bug#41988)." + (with-temp-buffer + (print '(defun edebug-tests-duplicate-&define () + (edebug-tests--duplicate-&define + (edebug-tests-duplicate-&define-inner () nil))) + (current-buffer)) + (let* ((edebug-all-defs t) + (edebug-initial-mode 'Go-nonstop) + (instrumented-names ()) + (edebug-new-definition-function + (lambda (name) + (when (memq name instrumented-names) + (error "Duplicate definition of `%s'" name)) + (push name instrumented-names) + (edebug-new-definition name)))) + (should-error (eval-buffer) :type 'invalid-read-syntax)))) + (provide 'edebug-tests) ;;; edebug-tests.el ends here |