+;;; 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))
+\f
+;;; 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))))