X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Farray.pure.lisp;h=7f5c11f70258a3b214142bd9df60643da24909b1;hb=aa0ed5a420ea5295d586b3f323b5375d3b506860;hp=31975cc7586a85593a4ceb074dc411e692ae3f85;hpb=5758a6ab4c2d046b68b5409d13ed6b8d6199ba7c;p=sbcl.git diff --git a/tests/array.pure.lisp b/tests/array.pure.lisp index 31975cc..7f5c11f 100644 --- a/tests/array.pure.lisp +++ b/tests/array.pure.lisp @@ -228,7 +228,7 @@ (assert (not (array-has-fill-pointer-p (adjust-array ary '(2 2))))))) (with-test (:name %set-fill-pointer/error) - (let ((v (make-array 3 :fill-pointer 0))) + (let ((v (make-array 3 :fill-pointer 0))) (handler-case (progn (setf (fill-pointer v) 12) @@ -236,3 +236,28 @@ (error (e) (assert (eql 12 (type-error-datum e))) (assert (equal '(integer 0 3) (type-error-expected-type e))))))) + +(with-test (:name array-storage-vector) + (let ((vec (vector 1 2 3))) + (assert (eq vec (sb-ext:array-storage-vector vec))) + (assert (equalp (vector 1 2 3 4) + (sb-ext:array-storage-vector + (make-array '(2 2) :initial-contents '((1 2) (3 4)))))) + (assert (eq 'fixnum (array-element-type + (sb-ext:array-storage-vector (make-array '(3 4 5) + :element-type 'fixnum))))) + (assert (not (array-has-fill-pointer-p + (sb-ext::array-storage-vector + (make-array 5 :fill-pointer 4))))))) + +(with-test (:name invalid-array-index-error) + (let ((array (make-array '(3 3 3)))) + (assert + (eq :right + (handler-case + (eval `(aref ,array 0 1 3)) + (sb-int:invalid-array-index-error (e) + (when (and (eq array (sb-kernel::invalid-array-index-error-array e)) + (= 3 (type-error-datum e)) + (equal '(integer 0 (3)) (type-error-expected-type e))) + :right)))))))