summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2015-03-17 14:30:42 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2015-03-17 14:30:42 -0400
commit6f73c465a8990560fedb1c9897c893056b4b04ef (patch)
treec11bc7dece47cffcc3d76065dcd4db4f07e1e7a4 /test
parent508049aae95c42a3e6fe989ff403bf7cb6f88433 (diff)
downloademacs-6f73c465a8990560fedb1c9897c893056b4b04ef.tar.gz
* cl-macs.el (cl--transform-lambda): Refine last change.
Fixes: debbugs:20125 * test/automated/cl-lib-tests.el: Use lexical-binding. (cl-lib-arglist-performance): Refine test to the case where one of the fields has a non-nil default value. Use existing `mystruct' defstruct. (cl-lib-struct-accessors): Use `pcase' to be a bit more flexible in the accepted outputs.
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog20
-rw-r--r--test/automated/cl-lib-tests.el30
2 files changed, 30 insertions, 20 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index a7d1dfdceae..e150aba2874 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,7 +1,15 @@
+2015-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * automated/cl-lib-tests.el: Use lexical-binding.
+ (cl-lib-arglist-performance): Refine test to the case where one of the
+ fields has a non-nil default value. Use existing `mystruct' defstruct.
+ (cl-lib-struct-accessors): Use `pcase' to be a bit more flexible in the
+ accepted outputs.
+
2015-03-16 Ken Brown <kbrown@cornell.edu>
- * automated/tramp-tests.el (tramp--test-special-characters): Don't
- test "\t" in file names on Cygwin. (Bug#20119)
+ * automated/tramp-tests.el (tramp--test-special-characters):
+ Don't test "\t" in file names on Cygwin. (Bug#20119)
2015-03-10 Jackson Ray Hamilton <jackson@jacksonrayhamilton.com>
@@ -78,8 +86,8 @@
2015-03-03 Daniel Colascione <dancol@dancol.org>
- * automated/generator-tests.el (cps-testcase): Use
- `cps-inhibit-atomic-optimization' instead of
+ * automated/generator-tests.el (cps-testcase):
+ Use `cps-inhibit-atomic-optimization' instead of
`cps-disable-atomic-optimization'.
(cps-test-declarations-preserved): New test.
@@ -184,8 +192,8 @@
2015-02-07 Dmitry Gutov <dgutov@yandex.ru>
- * automated/vc-tests.el (vc-test--working-revision): Fix
- `vc-working-revision' checks to be compared against nil, which is
+ * automated/vc-tests.el (vc-test--working-revision):
+ Fix `vc-working-revision' checks to be compared against nil, which is
what is should return for unregistered files.
2015-02-06 Nicolas Petton <nicolas@petton.fr>
diff --git a/test/automated/cl-lib-tests.el b/test/automated/cl-lib-tests.el
index 2c188a40059..ce0e5918653 100644
--- a/test/automated/cl-lib-tests.el
+++ b/test/automated/cl-lib-tests.el
@@ -1,4 +1,4 @@
-;;; cl-lib.el --- tests for emacs-lisp/cl-lib.el
+;;; cl-lib.el --- tests for emacs-lisp/cl-lib.el -*- lexical-binding:t -*-
;; Copyright (C) 2013-2015 Free Software Foundation, Inc.
@@ -204,7 +204,10 @@
:b :a :a 42)
'(42 :a))))
-(cl-defstruct mystruct (abc :readonly t) def)
+(cl-defstruct (mystruct
+ (:constructor cl-lib--con-1 (&aux (abc 1)))
+ (:constructor cl-lib--con-2 (&optional def)))
+ (abc 5 :readonly t) (def nil))
(ert-deftest cl-lib-struct-accessors ()
(let ((x (make-mystruct :abc 1 :def 2)))
(should (eql (cl-struct-slot-value 'mystruct 'abc x) 1))
@@ -213,8 +216,17 @@
(should (eql (cl-struct-slot-value 'mystruct 'def x) -1))
(should (eql (cl-struct-slot-offset 'mystruct 'abc) 1))
(should-error (cl-struct-slot-offset 'mystruct 'marypoppins))
- (should (equal (cl-struct-slot-info 'mystruct)
- '((cl-tag-slot) (abc :readonly t) (def))))))
+ (should (pcase (cl-struct-slot-info 'mystruct)
+ (`((cl-tag-slot) (abc 5 :readonly t)
+ (def . ,(or `nil `(nil))))
+ t)))))
+
+(ert-deftest cl-lib-arglist-performance ()
+ ;; An `&aux' should not cause lambda's arglist to be turned into an &rest
+ ;; that's parsed by hand.
+ (should (equal () (help-function-arglist 'cl-lib--con-1)))
+ (should (pcase (help-function-arglist 'cl-lib--con-2)
+ (`(&optional ,_) t))))
(ert-deftest cl-the ()
(should (eql (cl-the integer 42) 42))
@@ -434,14 +446,4 @@
(should (cl-typep '* 'cl-lib-test-type))
(should-not (cl-typep 1 'cl-lib-test-type)))
-(ert-deftest cl-lib-arglist-performance ()
- ;; An `&aux' should not cause lambda's arglist to be turned into an &rest
- ;; that's parsed by hand.
- (should (eq () (nth 1 (nth 1 (macroexpand
- '(cl-function (lambda (&aux (x 1)) x)))))))
- (cl-defstruct (cl-lib--s (:constructor cl-lib--s-make (&optional a))) a)
- ;; Similarly the &cl-defs thingy shouldn't cause fallback to manual parsing
- ;; of args if the default for optional args is nil.
- (should (equal '(&optional a) (help-function-arglist 'cl-lib--s-make))))
-
;;; cl-lib.el ends here