+;;; 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
+;;; :IF-EXISTS got :ERROR and NIL the wrong way round (reported by
+;;; Milan Zamazal)
+(let* ((p "this-file-will-exist")
+ (stream (open p :direction :output :if-exists :error)))
+ (assert (null (with-open-file (s p :direction :output :if-exists nil) s)))
+ (assert (raises-error?
+ (with-open-file (s p :direction :output :if-exists :error))))
+ (close stream)
+ (delete-file p))
+\f
+(assert (raises-error? (read-byte (make-string-input-stream "abc"))
+ type-error))
+(assert (raises-error? (with-open-file (s "/dev/zero")
+ (read-byte s))
+ type-error))