diff options
Diffstat (limited to 'test/lisp/emacs-lisp/bytecomp-tests.el')
-rw-r--r-- | test/lisp/emacs-lisp/bytecomp-tests.el | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index bc47c82c1e1..acf9343914d 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el @@ -247,6 +247,20 @@ 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))) + (let ((a 2.0)) (cond ((eql a 2) 'incorrect) ((eql a 2.00) 'correct))) + (let ((a "foobar")) (cond ((equal "notfoobar" a) 'incorrect) + ((equal 1 a) 'incorrect) + ((equal a "foobar") 'correct) + (t 'incorrect)))) + "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 +290,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." |