X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fstream.impure.lisp;h=d01b63e6a5ab1a9d97da4538634444f7790bc318;hb=87cd7d9848d9beddbf74e9d56a0c0aea6e189ead;hp=64d589cd6f7c81549629fc843d7001a016ba0601;hpb=43ed30b023d8ea5d0cd9c6a8928b4169aa0275ef;p=sbcl.git diff --git a/tests/stream.impure.lisp b/tests/stream.impure.lisp index 64d589c..d01b63e 100644 --- a/tests/stream.impure.lisp +++ b/tests/stream.impure.lisp @@ -467,4 +467,24 @@ (assert (equal copy string))) (delete-file "read-sequence-character-test-data.tmp")) +;;; ANSI-STREAM-OUTPUT-STREAM-P used to assume that a SYNONYM-STREAM's +;;; target was an ANSI stream, but it could be a user-defined stream, +;;; e.g., a SLIME stream. +(defclass user-output-stream (fundamental-output-stream) + ()) + +(let ((*stream* (make-instance 'user-output-stream))) + (declare (special *stream*)) + (with-open-stream (stream (make-synonym-stream '*stream*)) + (assert (output-stream-p stream)))) + +(defclass user-input-stream (fundamental-input-stream) + ()) + +(let ((*stream* (make-instance 'user-input-stream))) + (declare (special *stream*)) + (with-open-stream (stream (make-synonym-stream '*stream*)) + (assert (input-stream-p stream)))) + + ;;; success