Add tests for some byte-compiler warnings

* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-warn/warn-interactive-only\.el)
(bytecomp-warn/warn-obsolete-defun\.el)
(bytecomp-warn/warn-obsolete-hook\.el)
(bytecomp-warn/warn-obsolete-variable-same-file\.el)
(bytecomp-warn/warn-obsolete-variable\.el): New tests.
* test/lisp/emacs-lisp/bytecomp-resources/warn-interactive-only.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-defun.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-hook.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable-same-file.el:
* test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable.el:
New files.
This commit is contained in:
Stefan Kangas 2020-12-01 04:46:33 +01:00
parent 90a543e630
commit 4457b9590c
6 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,3 @@
;;; -*- lexical-binding: t -*-
(defun foo ()
(next-line))

View file

@ -0,0 +1,8 @@
;;; -*- lexical-binding: t -*-
(defun foo-obsolete ()
(declare (obsolete nil "99.99"))
nil)
(defun foo ()
(foo-obsolete))

View file

@ -0,0 +1,3 @@
;;; -*- lexical-binding: t -*-
(defun foo ()
(add-hook 'bytecomp--tests-obsolete-var #'next-line))

View file

@ -0,0 +1,13 @@
;;; -*- lexical-binding: t -*-
(defvar foo-obsolete nil)
(make-obsolete-variable 'foo-obsolete nil "99.99")
;; From bytecomp.el:
;; If foo.el declares `toto' as obsolete, it is likely that foo.el will
;; actually use `toto' in order for this obsolete variable to still work
;; correctly, so paradoxically, while byte-compiling foo.el, the presence
;; of a make-obsolete-variable call for `toto' is an indication that `toto'
;; should not trigger obsolete-warnings in foo.el.
(defun foo ()
foo-obsolete)

View file

@ -0,0 +1,4 @@
;;; -*- lexical-binding: t -*-
(defun foo ()
bytecomp--tests-obsolete-var)

View file

@ -560,6 +560,24 @@ Subtests signal errors if something goes wrong."
(bytecomp--define-warning-file-test "warn-free-variable-reference.el" "free.*bar")
(bytecomp--define-warning-file-test "warn-obsolete-defun.el"
"foo-obsolete.*obsolete function.*99.99")
(defvar bytecomp--tests-obsolete-var nil)
(make-obsolete-variable 'bytecomp--tests-obsolete-var nil "99.99")
(bytecomp--define-warning-file-test "warn-obsolete-hook.el"
"bytecomp--tests-obs.*obsolete.*99.99")
(bytecomp--define-warning-file-test "warn-obsolete-variable-same-file.el"
"foo-obs.*obsolete.*99.99" t)
(bytecomp--define-warning-file-test "warn-obsolete-variable.el"
"bytecomp--tests-obs.*obsolete.*99.99")
(bytecomp--define-warning-file-test "warn-interactive-only.el"
"next-line.*interactive use only.*forward-line")
(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)