From: Christophe R. <cr...@us...> - 2004-04-14 16:42:34
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9902/tests Modified Files: stream.pure.lisp Log Message: 0.8.9.40: Yay! Finally, a patch inspired by PFD's ansi-tests ... make ECHO-STREAMs understand READ-SEQUENCE; ... add more tests than are in ansi-tests, because the interaction with UNREAD-CHAR is potentially tricky. Index: stream.pure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/stream.pure.lisp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- stream.pure.lisp 13 Apr 2004 10:30:39 -0000 1.10 +++ stream.pure.lisp 14 Apr 2004 16:42:25 -0000 1.11 @@ -242,3 +242,30 @@ (with-open-file (s "/dev/null" :element-type '(signed-byte 48)) (assert (eq :eof (read-byte s nil :eof)))) + +(let* ((is (make-string-input-stream "foo")) + (os (make-string-output-stream)) + (s (make-echo-stream is os)) + (sequence (copy-seq "abcdef"))) + (assert (= (read-sequence sequence s) 3)) + (assert (string= sequence "foodef")) + (assert (string= (get-output-stream-string os) "foo"))) + +(let* ((is (make-string-input-stream "foo")) + (os (make-string-output-stream)) + (s (make-echo-stream is os)) + (sequence (copy-seq "abcdef"))) + (assert (char= #\f (read-char s))) + (assert (= (read-sequence sequence s) 2)) + (assert (string= sequence "oocdef")) + (assert (string= (get-output-stream-string os) "foo"))) + +(let* ((is (make-string-input-stream "foo")) + (os (make-string-output-stream)) + (s (make-echo-stream is os)) + (sequence (copy-seq "abcdef"))) + (assert (char= #\f (read-char s))) + (unread-char #\f s) + (assert (= (read-sequence sequence s) 3)) + (assert (string= sequence "foodef")) + (assert (string= (get-output-stream-string os) "foo"))) |