X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Farray.pure.lisp;h=ba823a03d141626e12e01aa551509b4062652ef2;hb=56b6d13d2758753d18a7413aa14ea25d025cf13e;hp=5141d419ed259a898c61ec6f5359996a30e73372;hpb=7306e23c5a4687bef98fdfb3459aaf15fe79d5ca;p=sbcl.git diff --git a/tests/array.pure.lisp b/tests/array.pure.lisp index 5141d41..ba823a0 100644 --- a/tests/array.pure.lisp +++ b/tests/array.pure.lisp @@ -164,16 +164,18 @@ ;;; reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP ;;; test suite. (locally (declare (optimize (safety 3) (speed 0))) - (let* ((x (make-array 10 :fill-pointer 4 :element-type 'character - :initial-element #\space :adjustable t)) - (y (make-array 10 :fill-pointer 4 :element-type 'character - :displaced-to x))) - (handler-case - (adjust-array x '(5)) - (error (e) - (assert (typep e 'sb-int:simple-reference-error)) - (assert (equal '((:ansi-cl function adjust-array)) - (sb-int:reference-condition-references e))))))) + (let* ((x (make-array 10 :fill-pointer 4 :element-type 'character + :initial-element #\space :adjustable t)) + (y (make-array 10 :fill-pointer 4 :element-type 'character + :displaced-to x))) + (assert (eq x (adjust-array x '(5)))) + (assert (eq :error (handler-case + (char y 0) + (sb-int:invalid-array-error (e) + (assert (eq y (type-error-datum e))) + (assert (equal `(vector character 10) + (type-error-expected-type e))) + :error)))))) ;;; MISC.527: bit-vector bitwise operations used LENGTH to get a size ;;; of a vector @@ -275,3 +277,24 @@ (eql 6 (type-error-datum e))) :good)))))) +(with-test (:name :odd-keys-for-make-array) + (assert (eq :good + (handler-case + (compile nil '(lambda (m) (make-array m 1))) + (simple-warning () :good))))) + + +(with-test (:name :bug-1096359) + (let ((a (make-array 1 :initial-element 5))) + (assert (equalp (adjust-array a 2 :initial-element 10) + #(5 10))))) + +(with-test (:name (make-array-transform-unknown-type :bug-1156095)) + (assert + (handler-case + (compile nil `(lambda () (make-array '(1 2) + :element-type ',(gensym)))) + (style-warning () + t) + (:no-error (&rest args) + nil))))