;;;; absolutely no warranty. See the COPYING and CREDITS files for
;;;; more information.
-(in-package :cl-user)
-
(load "assertoid.lisp")
+(use-package "ASSERTOID")
;;; type errors for inappropriate stream arguments, fixed in
;;; sbcl-0.7.8.19
(make-string-output-stream)
(make-string-input-stream "foo"))
type-error)))
+
+;;; bug 225: STRING-STREAM was not a class
+(eval `(defgeneric bug225 (s)
+ ,@(mapcar (lambda (class)
+ `(:method :around ((s ,class)) (cons ',class (call-next-method))))
+ '(stream string-stream sb-impl::string-input-stream
+ sb-impl::string-output-stream))
+ (:method (class) nil)))
+
+(assert (equal (bug225 (make-string-input-stream "hello"))
+ '(sb-impl::string-input-stream string-stream stream)))
+(assert (equal (bug225 (make-string-output-stream))
+ '(sb-impl::string-output-stream string-stream stream)))
+
+\f
+;;; improper buffering on (SIGNED-BYTE 8) streams (fixed by David Lichteblau):
+(let ((p "signed-byte-8-test.data"))
+ (with-open-file (s p
+ :direction :output
+ :element-type '(unsigned-byte 8)
+ :if-exists :supersede)
+ (write-byte 255 s))
+ (with-open-file (s p :element-type '(signed-byte 8))
+ (assert (= (read-byte s) -1)))
+ (delete-file p))
\f
;;; success
(quit :unix-status 104)