diff options
author | Vibhav Pant <vibhavp@gmail.com> | 2017-02-15 21:03:05 +0530 |
---|---|---|
committer | Vibhav Pant <vibhavp@gmail.com> | 2017-02-15 21:12:44 +0530 |
commit | 96e18ebb99ccd835028b8a12284f89c92cba2e5c (patch) | |
tree | f38bf7ee48bd48e1f3114078be421e2a2b1807b0 /test | |
parent | 1b685e7a0bd0e2ae26e9930075b826c9f40aa848 (diff) | |
download | emacs-96e18ebb99ccd835028b8a12284f89c92cba2e5c.tar.gz |
bytecomp-tests.el: Store all test forms in one constant.
* test/lisp/emacs-lisp/bytecomp-tests.el: Store all test expressions
in a single constant (byte-opt-testsuite-arith-data), add new forms
which generate lapcode with adjacent/redundant tags.
Diffstat (limited to 'test')
-rw-r--r-- | test/lisp/emacs-lisp/bytecomp-tests.el | 47 |
1 files changed, 33 insertions, 14 deletions
diff --git a/test/lisp/emacs-lisp/bytecomp-tests.el b/test/lisp/emacs-lisp/bytecomp-tests.el index acf9343914d..d0b97907389 100644 --- a/test/lisp/emacs-lisp/bytecomp-tests.el +++ b/test/lisp/emacs-lisp/bytecomp-tests.el @@ -26,6 +26,7 @@ ;;; Commentary: (require 'ert) +(require 'cl-lib) ;;; Code: (defconst byte-opt-testsuite-arith-data @@ -242,13 +243,8 @@ (let ((a 3) (b 2) (c 1.0)) (/ 1 a b c)) (let ((a 3) (b 2) (c 1.0)) (/ a b c 0)) (let ((a 3) (b 2) (c 1.0)) (/ a b c 1)) - (let ((a 3) (b 2) (c 1.0)) (/ a b c -1))) - "List of expression for test. -Each element will be executed by interpreter and with -bytecompiled code, and their results compared.") - -(defconst byte-opt-testsuite-cond-data - '( + (let ((a 3) (b 2) (c 1.0)) (/ a b c -1)) + ;; Test switch bytecode (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))) @@ -258,8 +254,36 @@ bytecompiled code, and their results compared.") (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.") + (t 'incorrect))) + (let ((a "foobar") (l t)) (pcase a + ("bar" 'incorrect) + ("foobar" (while l + a (setq l nil)) + 'correct))) + (let ((a 'foobar) (l t)) (cl-case a + ('foo 'incorrect) + ('bar 'incorrect) + ('foobar (while l + a (setq l nil)) + 'correct))) + (let ((a 'foobar) (l t)) (cond + ((eq a 'bar) 'incorrect) + ((eq a 'foo) 'incorrect) + ((eq a 'bar) 'incorrect) + (t (while l + a (setq l nil)) + 'correct))) + (let ((a 'foobar) (l t)) (cond + ((eq a 'bar) 'incorrect) + ((eq a 'foo) 'incorrect) + ((eq a 'foobar) + (while l + a (setq l nil)) + 'correct) + (t 'incorrect)))) + "List of expression for test. +Each element will be executed by interpreter and with +bytecompiled code, and their results compared.") (defun bytecomp-check-1 (pat) "Return non-nil if PAT is the same whether directly evalled or compiled." @@ -290,11 +314,6 @@ 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." |