summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2021-02-24 18:39:06 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2021-02-24 18:39:06 -0500
commit8114a84b21b2463ea35db7f3a18fd3804396f47e (patch)
tree1fabbc1872183388273989aaac5dd07720bdf6c8
parentd527bc4b7d2f69d8b3ae76be78fb9610419bd800 (diff)
downloademacs-8114a84b21b2463ea35db7f3a18fd3804396f47e.tar.gz
* test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case
Add use of `macroexp-file-name` from a macro called from within a function, which works thanks to eager-macroexpansion (so the macro is expanded which the file is being loaded rather than only later when the function is called). * test/lisp/emacs-lisp/macroexp-resources/m1.el (macroexp--m1-tests-file-name): New function.
-rw-r--r--test/lisp/emacs-lisp/macroexp-resources/m1.el3
-rw-r--r--test/lisp/emacs-lisp/macroexp-tests.el5
2 files changed, 8 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/macroexp-resources/m1.el b/test/lisp/emacs-lisp/macroexp-resources/m1.el
index a2fe6ecf2ed..96b5f7091af 100644
--- a/test/lisp/emacs-lisp/macroexp-resources/m1.el
+++ b/test/lisp/emacs-lisp/macroexp-resources/m1.el
@@ -29,5 +29,8 @@
(eval-when-compile
(defconst macroexp--m1-tests-comp-filename (macroexp-file-name)))
+(defun macroexp--m1-tests-file-name ()
+ (macroexp--test-get-file-name))
+
(provide 'm1)
;;; m1.el ends here
diff --git a/test/lisp/emacs-lisp/macroexp-tests.el b/test/lisp/emacs-lisp/macroexp-tests.el
index 0b26f109b9e..89d3882d1da 100644
--- a/test/lisp/emacs-lisp/macroexp-tests.el
+++ b/test/lisp/emacs-lisp/macroexp-tests.el
@@ -34,6 +34,8 @@
(defconst macroexp--tests-filename (macroexp-file-name))
+(defmacro macroexp--test-get-file-name () (macroexp-file-name))
+
(ert-deftest macroexp--tests-file-name ()
(should (string-match
"\\`macroexp-tests.elc?\\'"
@@ -44,10 +46,13 @@
(with-current-buffer
(find-file-noselect (expand-file-name "m1.el" rsrc-dir))
(defvar macroexp--m1-tests-filename)
+ (declare-function macroexp--m1-tests-file-name "m1" ())
;; `macroexp-file-name' should work with `eval-buffer'.
(eval-buffer)
(should (equal "m1.el"
(file-name-nondirectory macroexp--m1-tests-filename)))
+ (should (equal "m1.el"
+ (file-name-nondirectory (macroexp--m1-tests-file-name))))
(search-forward "macroexp--m1-tests-filename")
(makunbound 'macroexp--m1-tests-filename)
;; `macroexp-file-name' should also work with `eval-defun'.