X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fgray-streams.impure.lisp;h=181e0c16d58a3f2a59b33eaed0eaaf8213844851;hb=81e608991b9f616a412564b26186fa29933d814c;hp=0c36e793cc4e12f398747354295ee41e9fe2aaaf;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/tests/gray-streams.impure.lisp b/tests/gray-streams.impure.lisp index 0c36e79..181e0c1 100644 --- a/tests/gray-streams.impure.lisp +++ b/tests/gray-streams.impure.lisp @@ -60,7 +60,8 @@ (defclass character-output-stream (fundamental-character-output-stream) ((lisp-stream :initarg :lisp-stream - :accessor character-output-stream-lisp-stream))) + :accessor character-output-stream-lisp-stream) + (position :initform 42 :accessor character-output-stream-position))) (defclass character-input-stream (fundamental-character-input-stream) ((lisp-stream :initarg :lisp-stream @@ -100,6 +101,11 @@ (defmethod stream-clear-output ((stream character-output-stream)) (clear-output (character-output-stream-lisp-stream stream))) + +(defmethod stream-file-position ((stream character-output-stream) &optional new-value) + (if new-value + (setf (character-output-stream-position stream) new-value) + (character-output-stream-position stream))) ;;;; example character input stream encapsulating a lisp-stream @@ -271,7 +277,11 @@ ((eq byte :eof)) (write-byte byte our-bin-to-char-output)))) test-string)))) + -;;;; Voila! -(quit :unix-status 104) ; success +;;; Minimal test of file-position +(let ((stream (make-instance 'character-output-stream))) + (assert (= (file-position stream) 42)) + (assert (file-position stream 50)) + (assert (= (file-position stream) 50)))