X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=tests%2Fdump.impure-cload.lisp;h=d5854cec46868c62b52001db7b2104704e280d81;hb=1714224f33ba559eab11af8827a78f9a5aebd698;hp=2b1ad115458289473c804d2f5ca722c8ba53adea;hpb=3a10f894e7867fa2c27a3af05380abc3247f728d;p=sbcl.git diff --git a/tests/dump.impure-cload.lisp b/tests/dump.impure-cload.lisp index 2b1ad11..d5854ce 100644 --- a/tests/dump.impure-cload.lisp +++ b/tests/dump.impure-cload.lisp @@ -90,4 +90,38 @@ (assert (eql (savable-structure-d *savable-structure*) 39)) (assert (eql (savable-structure-e *savable-structure*) 19)) +;;; ensure that we can dump and reload specialized arrays whose element +;;; size is smaller than a byte (caused a few problems circa SBCL +;;; 0.8.14.4) + +(defvar *1-bit* #.(make-array 5 :element-type 'bit :initial-element 0)) +(defvar *2-bit* #.(make-array 5 :element-type '(unsigned-byte 2) :initial-element 0)) +(defvar *4-bit* #.(make-array 5 :element-type '(unsigned-byte 4) :initial-element 1)) + +;;; tests for constant coalescing (and absence of such) in the +;;; presence of strings. +(progn + (defvar *character-string-1* #.(make-string 5 :initial-element #\a)) + (defvar *character-string-2* #.(make-string 5 :initial-element #\a)) + (assert (eq *character-string-1* *character-string-2*)) + (assert (typep *character-string-1* '(simple-array character (5))))) + +(progn + (defvar *base-string-1* + #.(make-string 5 :initial-element #\b :element-type 'base-char)) + (defvar *base-string-2* + #.(make-string 5 :initial-element #\b :element-type 'base-char)) + (assert (eq *base-string-1* *base-string-2*)) + (assert (typep *base-string-1* '(simple-base-string 5)))) + +#-#.(cl:if (cl:subtypep 'cl:character 'cl:base-char) '(and) '(or)) +(progn + (defvar *base-string* + #.(make-string 5 :element-type 'base-char :initial-element #\x)) + (defvar *character-string* + #.(make-string 5 :initial-element #\x)) + (assert (not (eq *base-string* *character-string*))) + (assert (typep *base-string* 'base-string)) + (assert (typep *character-string* '(vector character)))) + (sb-ext:quit :unix-status 104) ; success