]> git.eshelyaron.com Git - emacs.git/commitdiff
Test for byte-compiler warning "variable lacks prefix"
authorStefan Kangas <stefan@marxist.se>
Sun, 22 Nov 2020 06:19:11 +0000 (07:19 +0100)
committerStefan Kangas <stefan@marxist.se>
Sun, 22 Nov 2020 06:19:11 +0000 (07:19 +0100)
* 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.

test/lisp/emacs-lisp/bytecomp-tests.el

index e0a3cc2fb823000b8e29252397644fac0b7f0e89..680aa514a2700310c99fcf9b3f0a73103f38bc05 100644 (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