X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fvector.pure.lisp;h=27ac97ae1b350fbce3d460d3b192da2d5cbbcc39;hb=d30da16eea1fe05d17d337c5f392f12736199dc0;hp=ba4085990dcbf5c33a21ceed5376f99d5481f817;hpb=a530bbe337109d898d5b4a001fc8f1afa3b5dc39;p=sbcl.git diff --git a/tests/vector.pure.lisp b/tests/vector.pure.lisp index ba40859..27ac97a 100644 --- a/tests/vector.pure.lisp +++ b/tests/vector.pure.lisp @@ -1,12 +1,46 @@ -(in-package :cl-user) +;;;; This software is part of the SBCL system. See the README file for +;;;; more information. +;;;; +;;;; While most of SBCL is derived from the CMU CL system, the test +;;;; files (like this one) were written from scratch after the fork +;;;; from CMU CL. +;;;; +;;;; This software is in the public domain and is provided with +;;;; absolutely no warranty. See the COPYING and CREDITS files for +;;;; more information. -(defun vector-tests () - (let ((simple-t (make-array 35)) - (simple-u32 (make-array 50 :element-type '(unsigned-byte 32))) - (simple-character (make-string 44)) - (complex-t (make-array 35 :fill-pointer 3)) - (complex-u32 (make-array 88 :element-type '(unsigned-byte 32))) - (complex-character (make-array 14 - :element-type 'character - :fill-pointer t))) - (assert (= (length simple-t) 35)))) +(cl:in-package :cl-user) + +(funcall (lambda () + (let ((simple-t (make-array 35)) + (simple-u32 (make-array 50 + :element-type '(unsigned-byte 32))) + (simple-character (make-string 44)) + (complex-t (make-array 4 :fill-pointer 3)) + (complex-u32 (make-array 88 + :adjustable t + :element-type '(unsigned-byte 32))) + (complex-character (make-array 14 + :element-type 'character + :fill-pointer t))) + (assert (= (length simple-t) 35)) + (assert (= (length simple-u32) 50)) + (assert (= (length simple-character) 44)) + (assert (= (length complex-t) 3)) + (assert (= (length complex-u32) 88)) + (assert (= (length complex-character) 14)) + (vector-push-extend #\a complex-t) + (assert (= (length complex-t) 4)) + (assert (raises-error? (vector-push-extend #\b simple-t)))))) + +(multiple-value-bind (fp1 index fp2 bool) + (let ((a (make-array '(5) :fill-pointer 5 :adjustable 5 + :initial-contents '(a b c d e)))) + (values (fill-pointer a) + (vector-push-extend 'x a) + (fill-pointer a) + (<= (array-total-size a) 5))) + (assert (= fp1 5)) + (assert (= index 5)) + (assert (= fp2 6)) + (assert (not bool)))