diff options
| author | Joakim Verona | 2015-01-18 10:53:38 +0100 |
|---|---|---|
| committer | Joakim Verona | 2015-01-18 10:53:38 +0100 |
| commit | 54efd2ab176dd6cc33bb1e86a9c37908c26d0a46 (patch) | |
| tree | ae7dfc525e25275235b1d6de84cf067a751742e4 /test | |
| parent | 576960211cb54bc77dc6969591420bca89c59456 (diff) | |
| parent | 253d44bd27b7d90b614b6b968a3b125eeb0a48f2 (diff) | |
| download | emacs-54efd2ab176dd6cc33bb1e86a9c37908c26d0a46.tar.gz emacs-54efd2ab176dd6cc33bb1e86a9c37908c26d0a46.zip | |
merge master
Diffstat (limited to 'test')
| -rw-r--r-- | test/ChangeLog | 31 | ||||
| -rw-r--r-- | test/automated/cl-generic-tests.el | 26 | ||||
| -rw-r--r-- | test/automated/cl-lib-tests.el | 3 | ||||
| -rw-r--r-- | test/automated/eieio-test-methodinvoke.el | 53 | ||||
| -rw-r--r-- | test/automated/eieio-tests.el | 52 | ||||
| -rw-r--r-- | test/automated/seq-tests.el | 7 |
6 files changed, 125 insertions, 47 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index 8ed02ee341b..15baf866f37 100644 --- a/test/ChangeLog +++ b/test/ChangeLog | |||
| @@ -1,3 +1,34 @@ | |||
| 1 | 2015-01-18 Leo Liu <sdl.web@gmail.com> | ||
| 2 | |||
| 3 | * automated/seq-tests.el (test-seq-subseq): Add more tests. | ||
| 4 | (Bug#19434) | ||
| 5 | |||
| 6 | 2015-01-17 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | * automated/eieio-tests.el | ||
| 9 | (eieio-test-37-obsolete-name-in-constructor): New test. | ||
| 10 | |||
| 11 | 2015-01-17 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 12 | |||
| 13 | * automated/eieio-tests.el (eieio-test-25-slot-tests) | ||
| 14 | (eieio-test-26-default-inheritance, eieio-test-28-slot-protection) | ||
| 15 | (eieio-test-30-slot-attribute-override) | ||
| 16 | (eieio-test-31-slot-attribute-override-class-allocation): Don't check | ||
| 17 | that we enforce :protection since we don't any more. | ||
| 18 | |||
| 19 | * automated/eieio-test-methodinvoke.el (eieio-test-method-store): | ||
| 20 | Use an explicit arg instead of eieio--scoped-class. Update all callers. | ||
| 21 | |||
| 22 | 2015-01-17 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 23 | |||
| 24 | * automated/eieio-test-methodinvoke.el (eieio-test-cl-generic-1): | ||
| 25 | Reset eieio-test--1. | ||
| 26 | |||
| 27 | * automated/cl-generic-tests.el (cl-generic-test-8-after/before): | ||
| 28 | Rename from cl-generic-test-7-after/before. | ||
| 29 | (cl--generic-test-advice): New function. | ||
| 30 | (cl-generic-test-9-advice): New test. | ||
| 31 | |||
| 1 | 2015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> | 32 | 2015-01-16 Jorgen Schaefer <contact@jorgenschaefer.de> |
| 2 | 33 | ||
| 3 | * automated/package-test.el (package-test-install-prioritized): | 34 | * automated/package-test.el (package-test-install-prioritized): |
diff --git a/test/automated/cl-generic-tests.el b/test/automated/cl-generic-tests.el index 17bce6a3157..46397fb7f51 100644 --- a/test/automated/cl-generic-tests.el +++ b/test/automated/cl-generic-tests.el | |||
| @@ -129,5 +129,31 @@ | |||
| 129 | (cons "x&y-int" (cl-call-next-method))) | 129 | (cons "x&y-int" (cl-call-next-method))) |
| 130 | (should (equal (cl--generic-1 1 2) '("x&y-int" "y-int" "x-int" 1 2)))) | 130 | (should (equal (cl--generic-1 1 2) '("x&y-int" "y-int" "x-int" 1 2)))) |
| 131 | 131 | ||
| 132 | (ert-deftest cl-generic-test-8-after/before () | ||
| 133 | (let ((log ())) | ||
| 134 | (cl-defgeneric cl--generic-1 (x y)) | ||
| 135 | (cl-defmethod cl--generic-1 ((_x t) y) (cons y log)) | ||
| 136 | (cl-defmethod cl--generic-1 ((_x (eql 4)) _y) | ||
| 137 | (cons "quatre" (cl-call-next-method))) | ||
| 138 | (cl-defmethod cl--generic-1 :after (x _y) | ||
| 139 | (push (list :after x) log)) | ||
| 140 | (cl-defmethod cl--generic-1 :before (x _y) | ||
| 141 | (push (list :before x) log)) | ||
| 142 | (should (equal (cl--generic-1 4 6) '("quatre" 6 (:before 4)))) | ||
| 143 | (should (equal log '((:after 4) (:before 4)))))) | ||
| 144 | |||
| 145 | (defun cl--generic-test-advice (&rest args) (cons "advice" (apply args))) | ||
| 146 | |||
| 147 | (ert-deftest cl-generic-test-9-advice () | ||
| 148 | (cl-defgeneric cl--generic-1 (x y) "My doc.") | ||
| 149 | (cl-defmethod cl--generic-1 (x y) (list x y)) | ||
| 150 | (advice-add 'cl--generic-1 :around #'cl--generic-test-advice) | ||
| 151 | (should (equal (cl--generic-1 4 5) '("advice" 4 5))) | ||
| 152 | (cl-defmethod cl--generic-1 ((_x integer) _y) | ||
| 153 | (cons "integer" (cl-call-next-method))) | ||
| 154 | (should (equal (cl--generic-1 4 5) '("advice" "integer" 4 5))) | ||
| 155 | (advice-remove 'cl--generic-1 #'cl--generic-test-advice) | ||
| 156 | (should (equal (cl--generic-1 4 5) '("integer" 4 5)))) | ||
| 157 | |||
| 132 | (provide 'cl-generic-tests) | 158 | (provide 'cl-generic-tests) |
| 133 | ;;; cl-generic-tests.el ends here | 159 | ;;; cl-generic-tests.el ends here |
diff --git a/test/automated/cl-lib-tests.el b/test/automated/cl-lib-tests.el index bbfb8d1f1da..c83391b1cc5 100644 --- a/test/automated/cl-lib-tests.el +++ b/test/automated/cl-lib-tests.el | |||
| @@ -245,4 +245,7 @@ | |||
| 245 | (ert-deftest cl-loop-destructuring-with () | 245 | (ert-deftest cl-loop-destructuring-with () |
| 246 | (should (equal (cl-loop with (a b c) = '(1 2 3) return (+ a b c)) 6))) | 246 | (should (equal (cl-loop with (a b c) = '(1 2 3) return (+ a b c)) 6))) |
| 247 | 247 | ||
| 248 | (ert-deftest cl-flet-test () | ||
| 249 | (should (equal (cl-flet ((f1 (x) x)) (let ((x #'f1)) (funcall x 5))) 5))) | ||
| 250 | |||
| 248 | ;;; cl-lib.el ends here | 251 | ;;; cl-lib.el ends here |
diff --git a/test/automated/eieio-test-methodinvoke.el b/test/automated/eieio-test-methodinvoke.el index 6362fc5a8d9..b6d60b85815 100644 --- a/test/automated/eieio-test-methodinvoke.el +++ b/test/automated/eieio-test-methodinvoke.el | |||
| @@ -58,11 +58,9 @@ | |||
| 58 | (defvar eieio-test-method-order-list nil | 58 | (defvar eieio-test-method-order-list nil |
| 59 | "List of symbols stored during method invocation.") | 59 | "List of symbols stored during method invocation.") |
| 60 | 60 | ||
| 61 | (defun eieio-test-method-store (keysym) | 61 | (defun eieio-test-method-store (&rest args) |
| 62 | "Store current invocation class symbol in the invocation order list." | 62 | "Store current invocation class symbol in the invocation order list." |
| 63 | ;; FIXME: Don't depend on `eieio--scoped-class'! | 63 | (push args eieio-test-method-order-list)) |
| 64 | (let* ((c (list keysym (eieio--class-symbol (eieio--scoped-class))))) | ||
| 65 | (push c eieio-test-method-order-list))) | ||
| 66 | 64 | ||
| 67 | (defun eieio-test-match (rightanswer) | 65 | (defun eieio-test-match (rightanswer) |
| 68 | "Do a test match." | 66 | "Do a test match." |
| @@ -86,36 +84,36 @@ | |||
| 86 | (defclass eitest-B (eitest-B-base1 eitest-B-base2) ()) | 84 | (defclass eitest-B (eitest-B-base1 eitest-B-base2) ()) |
| 87 | 85 | ||
| 88 | (defmethod eitest-F :BEFORE ((p eitest-B-base1)) | 86 | (defmethod eitest-F :BEFORE ((p eitest-B-base1)) |
| 89 | (eieio-test-method-store :BEFORE)) | 87 | (eieio-test-method-store :BEFORE 'eitest-B-base1)) |
| 90 | 88 | ||
| 91 | (defmethod eitest-F :BEFORE ((p eitest-B-base2)) | 89 | (defmethod eitest-F :BEFORE ((p eitest-B-base2)) |
| 92 | (eieio-test-method-store :BEFORE)) | 90 | (eieio-test-method-store :BEFORE 'eitest-B-base2)) |
| 93 | 91 | ||
| 94 | (defmethod eitest-F :BEFORE ((p eitest-B)) | 92 | (defmethod eitest-F :BEFORE ((p eitest-B)) |
| 95 | (eieio-test-method-store :BEFORE)) | 93 | (eieio-test-method-store :BEFORE 'eitest-B)) |
| 96 | 94 | ||
| 97 | (defmethod eitest-F ((p eitest-B)) | 95 | (defmethod eitest-F ((p eitest-B)) |
| 98 | (eieio-test-method-store :PRIMARY) | 96 | (eieio-test-method-store :PRIMARY 'eitest-B) |
| 99 | (call-next-method)) | 97 | (call-next-method)) |
| 100 | 98 | ||
| 101 | (defmethod eitest-F ((p eitest-B-base1)) | 99 | (defmethod eitest-F ((p eitest-B-base1)) |
| 102 | (eieio-test-method-store :PRIMARY) | 100 | (eieio-test-method-store :PRIMARY 'eitest-B-base1) |
| 103 | (call-next-method)) | 101 | (call-next-method)) |
| 104 | 102 | ||
| 105 | (defmethod eitest-F ((p eitest-B-base2)) | 103 | (defmethod eitest-F ((p eitest-B-base2)) |
| 106 | (eieio-test-method-store :PRIMARY) | 104 | (eieio-test-method-store :PRIMARY 'eitest-B-base2) |
| 107 | (when (next-method-p) | 105 | (when (next-method-p) |
| 108 | (call-next-method)) | 106 | (call-next-method)) |
| 109 | ) | 107 | ) |
| 110 | 108 | ||
| 111 | (defmethod eitest-F :AFTER ((p eitest-B-base1)) | 109 | (defmethod eitest-F :AFTER ((p eitest-B-base1)) |
| 112 | (eieio-test-method-store :AFTER)) | 110 | (eieio-test-method-store :AFTER 'eitest-B-base1)) |
| 113 | 111 | ||
| 114 | (defmethod eitest-F :AFTER ((p eitest-B-base2)) | 112 | (defmethod eitest-F :AFTER ((p eitest-B-base2)) |
| 115 | (eieio-test-method-store :AFTER)) | 113 | (eieio-test-method-store :AFTER 'eitest-B-base2)) |
| 116 | 114 | ||
| 117 | (defmethod eitest-F :AFTER ((p eitest-B)) | 115 | (defmethod eitest-F :AFTER ((p eitest-B)) |
| 118 | (eieio-test-method-store :AFTER)) | 116 | (eieio-test-method-store :AFTER 'eitest-B)) |
| 119 | 117 | ||
| 120 | (ert-deftest eieio-test-method-order-list-3 () | 118 | (ert-deftest eieio-test-method-order-list-3 () |
| 121 | (let ((eieio-test-method-order-list nil) | 119 | (let ((eieio-test-method-order-list nil) |
| @@ -150,15 +148,15 @@ | |||
| 150 | ;;; Return value from :PRIMARY | 148 | ;;; Return value from :PRIMARY |
| 151 | ;; | 149 | ;; |
| 152 | (defmethod eitest-I :BEFORE ((a eitest-A)) | 150 | (defmethod eitest-I :BEFORE ((a eitest-A)) |
| 153 | (eieio-test-method-store :BEFORE) | 151 | (eieio-test-method-store :BEFORE 'eitest-A) |
| 154 | ":before") | 152 | ":before") |
| 155 | 153 | ||
| 156 | (defmethod eitest-I :PRIMARY ((a eitest-A)) | 154 | (defmethod eitest-I :PRIMARY ((a eitest-A)) |
| 157 | (eieio-test-method-store :PRIMARY) | 155 | (eieio-test-method-store :PRIMARY 'eitest-A) |
| 158 | ":primary") | 156 | ":primary") |
| 159 | 157 | ||
| 160 | (defmethod eitest-I :AFTER ((a eitest-A)) | 158 | (defmethod eitest-I :AFTER ((a eitest-A)) |
| 161 | (eieio-test-method-store :AFTER) | 159 | (eieio-test-method-store :AFTER 'eitest-A) |
| 162 | ":after") | 160 | ":after") |
| 163 | 161 | ||
| 164 | (ert-deftest eieio-test-method-order-list-5 () | 162 | (ert-deftest eieio-test-method-order-list-5 () |
| @@ -177,17 +175,17 @@ | |||
| 177 | 175 | ||
| 178 | ;; Just use the obsolete name once, to make sure it also works. | 176 | ;; Just use the obsolete name once, to make sure it also works. |
| 179 | (defmethod constructor :STATIC ((p C-base1) &rest args) | 177 | (defmethod constructor :STATIC ((p C-base1) &rest args) |
| 180 | (eieio-test-method-store :STATIC) | 178 | (eieio-test-method-store :STATIC 'C-base1) |
| 181 | (if (next-method-p) (call-next-method)) | 179 | (if (next-method-p) (call-next-method)) |
| 182 | ) | 180 | ) |
| 183 | 181 | ||
| 184 | (defmethod eieio-constructor :STATIC ((p C-base2) &rest args) | 182 | (defmethod eieio-constructor :STATIC ((p C-base2) &rest args) |
| 185 | (eieio-test-method-store :STATIC) | 183 | (eieio-test-method-store :STATIC 'C-base2) |
| 186 | (if (next-method-p) (call-next-method)) | 184 | (if (next-method-p) (call-next-method)) |
| 187 | ) | 185 | ) |
| 188 | 186 | ||
| 189 | (defmethod eieio-constructor :STATIC ((p C) &rest args) | 187 | (defmethod eieio-constructor :STATIC ((p C) &rest args) |
| 190 | (eieio-test-method-store :STATIC) | 188 | (eieio-test-method-store :STATIC 'C) |
| 191 | (call-next-method) | 189 | (call-next-method) |
| 192 | ) | 190 | ) |
| 193 | 191 | ||
| @@ -214,24 +212,24 @@ | |||
| 214 | 212 | ||
| 215 | (defmethod eitest-F ((p D)) | 213 | (defmethod eitest-F ((p D)) |
| 216 | "D" | 214 | "D" |
| 217 | (eieio-test-method-store :PRIMARY) | 215 | (eieio-test-method-store :PRIMARY 'D) |
| 218 | (call-next-method)) | 216 | (call-next-method)) |
| 219 | 217 | ||
| 220 | (defmethod eitest-F ((p D-base0)) | 218 | (defmethod eitest-F ((p D-base0)) |
| 221 | "D-base0" | 219 | "D-base0" |
| 222 | (eieio-test-method-store :PRIMARY) | 220 | (eieio-test-method-store :PRIMARY 'D-base0) |
| 223 | ;; This should have no next | 221 | ;; This should have no next |
| 224 | ;; (when (next-method-p) (call-next-method)) | 222 | ;; (when (next-method-p) (call-next-method)) |
| 225 | ) | 223 | ) |
| 226 | 224 | ||
| 227 | (defmethod eitest-F ((p D-base1)) | 225 | (defmethod eitest-F ((p D-base1)) |
| 228 | "D-base1" | 226 | "D-base1" |
| 229 | (eieio-test-method-store :PRIMARY) | 227 | (eieio-test-method-store :PRIMARY 'D-base1) |
| 230 | (call-next-method)) | 228 | (call-next-method)) |
| 231 | 229 | ||
| 232 | (defmethod eitest-F ((p D-base2)) | 230 | (defmethod eitest-F ((p D-base2)) |
| 233 | "D-base2" | 231 | "D-base2" |
| 234 | (eieio-test-method-store :PRIMARY) | 232 | (eieio-test-method-store :PRIMARY 'D-base2) |
| 235 | (when (next-method-p) | 233 | (when (next-method-p) |
| 236 | (call-next-method)) | 234 | (call-next-method)) |
| 237 | ) | 235 | ) |
| @@ -256,21 +254,21 @@ | |||
| 256 | (defclass E (E-base1 E-base2) () :method-invocation-order :breadth-first) | 254 | (defclass E (E-base1 E-base2) () :method-invocation-order :breadth-first) |
| 257 | 255 | ||
| 258 | (defmethod eitest-F ((p E)) | 256 | (defmethod eitest-F ((p E)) |
| 259 | (eieio-test-method-store :PRIMARY) | 257 | (eieio-test-method-store :PRIMARY 'E) |
| 260 | (call-next-method)) | 258 | (call-next-method)) |
| 261 | 259 | ||
| 262 | (defmethod eitest-F ((p E-base0)) | 260 | (defmethod eitest-F ((p E-base0)) |
| 263 | (eieio-test-method-store :PRIMARY) | 261 | (eieio-test-method-store :PRIMARY 'E-base0) |
| 264 | ;; This should have no next | 262 | ;; This should have no next |
| 265 | ;; (when (next-method-p) (call-next-method)) | 263 | ;; (when (next-method-p) (call-next-method)) |
| 266 | ) | 264 | ) |
| 267 | 265 | ||
| 268 | (defmethod eitest-F ((p E-base1)) | 266 | (defmethod eitest-F ((p E-base1)) |
| 269 | (eieio-test-method-store :PRIMARY) | 267 | (eieio-test-method-store :PRIMARY 'E-base1) |
| 270 | (call-next-method)) | 268 | (call-next-method)) |
| 271 | 269 | ||
| 272 | (defmethod eitest-F ((p E-base2)) | 270 | (defmethod eitest-F ((p E-base2)) |
| 273 | (eieio-test-method-store :PRIMARY) | 271 | (eieio-test-method-store :PRIMARY 'E-base2) |
| 274 | (when (next-method-p) | 272 | (when (next-method-p) |
| 275 | (call-next-method)) | 273 | (call-next-method)) |
| 276 | ) | 274 | ) |
| @@ -384,6 +382,7 @@ | |||
| 384 | (cl-defgeneric eieio-test--1 (x y)) | 382 | (cl-defgeneric eieio-test--1 (x y)) |
| 385 | 383 | ||
| 386 | (ert-deftest eieio-test-cl-generic-1 () | 384 | (ert-deftest eieio-test-cl-generic-1 () |
| 385 | (cl-defgeneric eieio-test--1 (x y)) | ||
| 387 | (cl-defmethod eieio-test--1 (x y) (list x y)) | 386 | (cl-defmethod eieio-test--1 (x y) (list x y)) |
| 388 | (cl-defmethod eieio-test--1 ((_x CNM-0) y) | 387 | (cl-defmethod eieio-test--1 ((_x CNM-0) y) |
| 389 | (cons "CNM-0" (cl-call-next-method 7 y))) | 388 | (cons "CNM-0" (cl-call-next-method 7 y))) |
diff --git a/test/automated/eieio-tests.el b/test/automated/eieio-tests.el index 0b1ff1fd93b..e0120b4b5b8 100644 --- a/test/automated/eieio-tests.el +++ b/test/automated/eieio-tests.el | |||
| @@ -563,7 +563,7 @@ METHOD is the method that was attempting to be called." | |||
| 563 | (should (eq (oref eitest-t1 slot-1) 'moose)) | 563 | (should (eq (oref eitest-t1 slot-1) 'moose)) |
| 564 | (should (eq (oref eitest-t1 :moose) 'moose)) | 564 | (should (eq (oref eitest-t1 :moose) 'moose)) |
| 565 | ;; Don't pass reference of private slot | 565 | ;; Don't pass reference of private slot |
| 566 | (should-error (oref eitest-t1 slot-2) :type 'invalid-slot-name) | 566 | ;;PRIVATE (should-error (oref eitest-t1 slot-2) :type 'invalid-slot-name) |
| 567 | ;; Check private slot accessor | 567 | ;; Check private slot accessor |
| 568 | (should (string= (get-slot-2 eitest-t1) "penguin")) | 568 | (should (string= (get-slot-2 eitest-t1) "penguin")) |
| 569 | ;; Pass string instead of symbol | 569 | ;; Pass string instead of symbol |
| @@ -583,7 +583,7 @@ METHOD is the method that was attempting to be called." | |||
| 583 | (should (eq (oref eitest-t2 slot-1) 'moose)) | 583 | (should (eq (oref eitest-t2 slot-1) 'moose)) |
| 584 | (should (eq (oref eitest-t2 :moose) 'moose)) | 584 | (should (eq (oref eitest-t2 :moose) 'moose)) |
| 585 | (should (string= (get-slot-2 eitest-t2) "linux")) | 585 | (should (string= (get-slot-2 eitest-t2) "linux")) |
| 586 | (should-error (oref eitest-t2 slot-2) :type 'invalid-slot-name) | 586 | ;;PRIVATE (should-error (oref eitest-t2 slot-2) :type 'invalid-slot-name) |
| 587 | (should (string= (get-slot-2 eitest-t2) "linux")) | 587 | (should (string= (get-slot-2 eitest-t2) "linux")) |
| 588 | (should-error (class-subc :moose "not a symbol") :type 'invalid-slot-type)) | 588 | (should-error (class-subc :moose "not a symbol") :type 'invalid-slot-type)) |
| 589 | 589 | ||
| @@ -654,20 +654,23 @@ Do not override for `prot-2'." | |||
| 654 | ;; Access public slots | 654 | ;; Access public slots |
| 655 | (oref eitest-p1 slot-1) | 655 | (oref eitest-p1 slot-1) |
| 656 | (oref eitest-p2 slot-1) | 656 | (oref eitest-p2 slot-1) |
| 657 | ;; Accessing protected slot out of context must fail | 657 | ;; Accessing protected slot out of context used to fail, but we dropped this |
| 658 | (should-error (oref eitest-p1 slot-2) :type 'invalid-slot-name) | 658 | ;; feature, since it was underused and noone noticed that the check was |
| 659 | ;; incorrect (much too loose). | ||
| 660 | ;;PROTECTED (should-error (oref eitest-p1 slot-2) :type 'invalid-slot-name) | ||
| 659 | ;; Access protected slot in method | 661 | ;; Access protected slot in method |
| 660 | (prot1-slot-2 eitest-p1) | 662 | (prot1-slot-2 eitest-p1) |
| 661 | ;; Protected slot in subclass method | 663 | ;; Protected slot in subclass method |
| 662 | (prot1-slot-2 eitest-p2) | 664 | (prot1-slot-2 eitest-p2) |
| 663 | ;; Protected slot from parent class method | 665 | ;; Protected slot from parent class method |
| 664 | (prot0-slot-2 eitest-p1) | 666 | (prot0-slot-2 eitest-p1) |
| 665 | ;; Accessing private slot out of context must fail | 667 | ;; Accessing private slot out of context used to fail, but we dropped this |
| 666 | (should-error (oref eitest-p1 slot-3) :type 'invalid-slot-name) | 668 | ;; feature, since it was not used. |
| 669 | ;;PRIVATE (should-error (oref eitest-p1 slot-3) :type 'invalid-slot-name) | ||
| 667 | ;; Access private slot in method | 670 | ;; Access private slot in method |
| 668 | (prot1-slot-3 eitest-p1) | 671 | (prot1-slot-3 eitest-p1) |
| 669 | ;; Access private slot in subclass method must fail | 672 | ;; Access private slot in subclass method must fail |
| 670 | (should-error (prot1-slot-3 eitest-p2) :type 'invalid-slot-name) | 673 | ;;PRIVATE (should-error (prot1-slot-3 eitest-p2) :type 'invalid-slot-name) |
| 671 | ;; Access private slot by same class | 674 | ;; Access private slot by same class |
| 672 | (prot1-slot-3-only eitest-p1) | 675 | (prot1-slot-3-only eitest-p1) |
| 673 | ;; Access private slot by subclass in sameclass method | 676 | ;; Access private slot by subclass in sameclass method |
| @@ -729,12 +732,13 @@ Subclasses to override slot attributes.") | |||
| 729 | 732 | ||
| 730 | (ert-deftest eieio-test-30-slot-attribute-override () | 733 | (ert-deftest eieio-test-30-slot-attribute-override () |
| 731 | ;; Subclass should not override :protection slot attribute | 734 | ;; Subclass should not override :protection slot attribute |
| 732 | (should-error | 735 | ;;PROTECTION is gone. |
| 733 | (eval | 736 | ;;(should-error |
| 734 | '(defclass slotattr-fail (slotattr-base) | 737 | ;; (eval |
| 735 | ((protection :protection :public) | 738 | ;; '(defclass slotattr-fail (slotattr-base) |
| 736 | ) | 739 | ;; ((protection :protection :public) |
| 737 | "This class should throw an error."))) | 740 | ;; ) |
| 741 | ;; "This class should throw an error."))) | ||
| 738 | 742 | ||
| 739 | ;; Subclass should not override :type slot attribute | 743 | ;; Subclass should not override :type slot attribute |
| 740 | (should-error | 744 | (should-error |
| @@ -782,12 +786,13 @@ Subclasses to override slot attributes.") | |||
| 782 | 786 | ||
| 783 | (ert-deftest eieio-test-31-slot-attribute-override-class-allocation () | 787 | (ert-deftest eieio-test-31-slot-attribute-override-class-allocation () |
| 784 | ;; Same as test-30, but with class allocation | 788 | ;; Same as test-30, but with class allocation |
| 785 | (should-error | 789 | ;;PROTECTION is gone. |
| 786 | (eval | 790 | ;;(should-error |
| 787 | '(defclass slotattr-fail (slotattr-class-base) | 791 | ;; (eval |
| 788 | ((protection :protection :public) | 792 | ;; '(defclass slotattr-fail (slotattr-class-base) |
| 789 | ) | 793 | ;; ((protection :protection :public) |
| 790 | "This class should throw an error."))) | 794 | ;; ) |
| 795 | ;; "This class should throw an error."))) | ||
| 791 | (should-error | 796 | (should-error |
| 792 | (eval | 797 | (eval |
| 793 | '(defclass slotattr-fail (slotattr-class-base) | 798 | '(defclass slotattr-fail (slotattr-class-base) |
| @@ -887,6 +892,15 @@ Subclasses to override slot attributes.") | |||
| 887 | (should (= (length (eieio-build-class-alist 'opt-test1 nil)) 2)) | 892 | (should (= (length (eieio-build-class-alist 'opt-test1 nil)) 2)) |
| 888 | (should (= (length (eieio-build-class-alist 'opt-test1 t)) 1))) | 893 | (should (= (length (eieio-build-class-alist 'opt-test1 t)) 1))) |
| 889 | 894 | ||
| 895 | (defclass eieio--testing () | ||
| 896 | ()) | ||
| 897 | |||
| 898 | (defmethod constructor :static ((_x eieio--testing) newname &rest _args) | ||
| 899 | (list newname 2)) | ||
| 900 | |||
| 901 | (ert-deftest eieio-test-37-obsolete-name-in-constructor () | ||
| 902 | (should (equal (eieio--testing "toto") '("toto" 2)))) | ||
| 903 | |||
| 890 | (provide 'eieio-tests) | 904 | (provide 'eieio-tests) |
| 891 | 905 | ||
| 892 | ;;; eieio-tests.el ends here | 906 | ;;; eieio-tests.el ends here |
diff --git a/test/automated/seq-tests.el b/test/automated/seq-tests.el index 9fcda7f7c9d..23989799306 100644 --- a/test/automated/seq-tests.el +++ b/test/automated/seq-tests.el | |||
| @@ -182,7 +182,12 @@ Evaluate BODY for each created sequence. | |||
| 182 | (should (same-contents-p (seq-subseq seq 1 -1) '(3 4)))) | 182 | (should (same-contents-p (seq-subseq seq 1 -1) '(3 4)))) |
| 183 | (should (vectorp (seq-subseq [2 3 4 5] 2))) | 183 | (should (vectorp (seq-subseq [2 3 4 5] 2))) |
| 184 | (should (stringp (seq-subseq "foo" 2 3))) | 184 | (should (stringp (seq-subseq "foo" 2 3))) |
| 185 | (should (listp (seq-subseq '(2 3 4 4) 2 3)))) | 185 | (should (listp (seq-subseq '(2 3 4 4) 2 3))) |
| 186 | (should-error (seq-subseq '(1 2 3) 4)) | ||
| 187 | (should-not (seq-subseq '(1 2 3) 3)) | ||
| 188 | (should (seq-subseq '(1 2 3) -3)) | ||
| 189 | (should-error (seq-subseq '(1 2 3) 1 4)) | ||
| 190 | (should (seq-subseq '(1 2 3) 1 3))) | ||
| 186 | 191 | ||
| 187 | (ert-deftest test-seq-concatenate () | 192 | (ert-deftest test-seq-concatenate () |
| 188 | (with-test-sequences (seq '(2 4 6)) | 193 | (with-test-sequences (seq '(2 4 6)) |