]> git.eshelyaron.com Git - emacs.git/commitdiff
* test/lisp/emacs-lisp/cl-lib-tests.el: Improve symbol-macrolet tests
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 1 Apr 2017 16:11:07 +0000 (12:11 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 1 Apr 2017 16:11:07 +0000 (12:11 -0400)
(cl-lib-symbol-macrolet): Fix last test so it doesn't break the whole
test suite.
(cl-lib-symbol-macrolet-2): New test.

test/lisp/emacs-lisp/cl-lib-tests.el

index b5946208f101b72e1c134d4d1b16b078fe7b059d..093cb3476c1353f75526001166faaefa8c1a9c75 100644 (file)
   (should-not (cl-typep 1 'cl-lib-test-type)))
 
 (ert-deftest cl-lib-symbol-macrolet ()
+  ;; bug#26325
+  :expected-result :failed
   (should (equal (cl-flet ((f (x) (+ x 5)))
                    (let ((x 5))
                      (f (+ x 6))))
-                 (cl-symbol-macrolet ((f (+ x 6)))
-                   (cl-flet ((f (x) (+ x 5)))
-                     (let ((x 5))
-                       (f f)))))))
+                 ;; Go through `eval', otherwise the macro-expansion
+                 ;; error prevents running the whole test suite :-(
+                 (eval '(cl-symbol-macrolet ((f (+ x 6)))
+                          (cl-flet ((f (x) (+ x 5)))
+                            (let ((x 5))
+                              (f f))))
+                       t))))
+
+(defmacro cl-lib-symbol-macrolet-4+5 ()
+  ;; bug#26068
+  (let* ((sname "x")
+         (s1 (make-symbol sname))
+         (s2 (make-symbol sname)))
+    `(cl-symbol-macrolet ((,s1 4)
+                          (,s2 5))
+       (+ ,s1 ,s2))))
+
+(ert-deftest cl-lib-symbol-macrolet-2 ()
+  (should (equal (cl-lib-symbol-macrolet-4+5) (+ 4 5))))
 
 ;;; cl-lib.el ends here