Test byte-compiler free variable warning
* test/lisp/emacs-lisp/bytecomp-tests.el (ert-x): Require. (bytecomp--define-warning-file-test): New macro. (bytecomp-warn/warn-free-setq\.el) (bytecomp-warn/warn-free-variable-reference\.el): New tests. * test/lisp/emacs-lisp/bytecomp-resources/warn-free-setq.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-free-variable-reference.el: New files.
This commit is contained in:
parent
713bac483b
commit
a126c3684f
3 changed files with 20 additions and 0 deletions
|
@ -0,0 +1,2 @@
|
|||
;;; -*- lexical-binding: t -*-
|
||||
(setq foo 'bar)
|
|
@ -0,0 +1,4 @@
|
|||
;;; -*- lexical-binding: t -*-
|
||||
(defvar xxx-test)
|
||||
(defun foo ()
|
||||
(setq xxx-test bar))
|
|
@ -26,6 +26,7 @@
|
|||
;;; Commentary:
|
||||
|
||||
(require 'ert)
|
||||
(require 'ert-x)
|
||||
(require 'cl-lib)
|
||||
(require 'subr-x)
|
||||
(require 'bytecomp)
|
||||
|
@ -546,6 +547,19 @@ Subtests signal errors if something goes wrong."
|
|||
'(eval-and-compile (defmacro abc (arg) -1) (defun def () (abc 2))))
|
||||
(should (equal (funcall 'def) -1)))
|
||||
|
||||
(defmacro bytecomp--define-warning-file-test (file re-warning &optional reverse)
|
||||
`(ert-deftest ,(intern (format "bytecomp-warn/%s" file)) ()
|
||||
:expected-result ,(if reverse :failed :passed)
|
||||
(with-current-buffer (get-buffer-create "*Compile-Log*")
|
||||
(let ((inhibit-read-only t)) (erase-buffer))
|
||||
(byte-compile-file ,(ert-resource-file file))
|
||||
(ert-info ((buffer-string) :prefix "buffer: ")
|
||||
(should (re-search-forward ,re-warning))))))
|
||||
|
||||
(bytecomp--define-warning-file-test "warn-free-setq.el" "free.*foo")
|
||||
|
||||
(bytecomp--define-warning-file-test "warn-free-variable-reference.el" "free.*bar")
|
||||
|
||||
(ert-deftest test-eager-load-macro-expansion-eval-when-compile ()
|
||||
;; Make sure we interpret eval-when-compile forms properly. CLISP
|
||||
;; and SBCL interpreter eval-when-compile (well, the CL equivalent)
|
||||
|
|
Loading…
Add table
Reference in a new issue