1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 06:31:13 -08:00

Add tests for checking byte-switch code.

* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-cond): New test,
  test byte-switch bytecode.
This commit is contained in:
Vibhav Pant 2017-02-07 19:35:20 +05:30
parent c4316a2661
commit 96c4e367f9

View file

@ -247,6 +247,15 @@
Each element will be executed by interpreter and with
bytecompiled code, and their results compared.")
(defconst byte-opt-testsuite-cond-data
'(
(let ((a 3)) (cond ((eq a 1) 'one) ((eq a 2) 'two) ((eq a 3) 'three) (t t)))
(let ((a 'three)) (cond ((eq a 'one) 1) ((eq a 2) 'two) ((eq a 'three) 3)
(t t)))
(let ((a 2)) (cond ((eq a 'one) 1) ((eq a 1) 'one) ((eq a 2) 'two)
(t nil))))
"List of expressions for testing byte-switch.")
(defun bytecomp-check-1 (pat)
"Return non-nil if PAT is the same whether directly evalled or compiled."
(let ((warning-minimum-log-level :emergency)
@ -276,6 +285,11 @@ bytecompiled code, and their results compared.")
(dolist (pat byte-opt-testsuite-arith-data)
(should (bytecomp-check-1 pat))))
(ert-deftest bytecomp-cond ()
"Test the Emacs byte compiler."
(dolist (pat byte-opt-testsuite-cond-data)
(should (bytecomp-check-1 pat))))
(defun test-byte-opt-arithmetic (&optional arg)
"Unit test for byte-opt arithmetic operations.
Subtests signal errors if something goes wrong."