Test for byte-compiler warning "variable lacks prefix"

* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp--with-warning-test): New macro.
(bytecomp-warn-wrong-args, bytecomp-warn-wrong-args-subr):
Use above new macro.
(bytecomp-warn-variable-lacks-prefix): New test.
This commit is contained in:
Stefan Kangas 2020-11-22 07:19:11 +01:00
parent b6339fc19c
commit 9490f12c4d

View file

@ -516,19 +516,25 @@ Subtests signal errors if something goes wrong."
;; Should not warn that mt--test2 is not known to be defined.
(should-not (re-search-forward "my--test2" nil t))))
(defmacro bytecomp--with-warning-test (re-warning &rest form)
(declare (indent 1))
`(with-current-buffer (get-buffer-create "*Compile-Log*")
(let ((inhibit-read-only t)) (erase-buffer))
(byte-compile ,@form)
(ert-info ((buffer-string) :prefix "buffer: ")
(should (re-search-forward ,re-warning)))))
(ert-deftest bytecomp-warn-wrong-args ()
(with-current-buffer (get-buffer-create "*Compile-Log*")
(let ((inhibit-read-only t)) (erase-buffer))
(byte-compile '(remq 1 2 3))
(ert-info ((buffer-string) :prefix "buffer: ")
(should (re-search-forward "remq.*3.*2")))))
(bytecomp--with-warning-test "remq.*3.*2"
'(remq 1 2 3)))
(ert-deftest bytecomp-warn-wrong-args-subr ()
(with-current-buffer (get-buffer-create "*Compile-Log*")
(let ((inhibit-read-only t)) (erase-buffer))
(byte-compile '(safe-length 1 2 3))
(ert-info ((buffer-string) :prefix "buffer: ")
(should (re-search-forward "safe-length.*3.*1")))))
(bytecomp--with-warning-test "safe-length.*3.*1"
'(safe-length 1 2 3)))
(ert-deftest bytecomp-warn-variable-lacks-prefix ()
(bytecomp--with-warning-test "foo.*lacks a prefix"
'(defvar foo nil)))
(ert-deftest test-eager-load-macro-expansion ()
(test-byte-comp-compile-and-load nil