X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fstream.impure.lisp;h=8ecee3a6c5a5b5c5c9bbca74b9e7a138bddc6ac0;hb=d8659f1e656234e8f0f47d5295b503dd6cff4aba;hp=c0830a66b6e2c7f85af8b86f3d9b8a82d09622d7;hpb=81a75e4657328daad0d63bdbf9555ef4d309c39d;p=sbcl.git diff --git a/tests/stream.impure.lisp b/tests/stream.impure.lisp index c0830a6..8ecee3a 100644 --- a/tests/stream.impure.lisp +++ b/tests/stream.impure.lisp @@ -291,6 +291,7 @@ (let ((sequence (make-array 1 :element-type '(signed-byte 8)))) (with-open-file (stream pathname :direction :input + :external-format :latin1 :element-type :default) (handler-case (progn (read-sequence sequence stream) @@ -299,7 +300,6 @@ (assert (eql (type-error-datum condition) (code-char 255))) (assert (subtypep (type-error-expected-type condition) '(signed-byte 8)))))))) - ;;; Check WRITE-SEQUENCE signals a TYPE-ERROR when the stream can't ;;; write a sequence element. @@ -412,4 +412,28 @@ (assert (subtypep (type-error-expected-type condition) '(unsigned-byte 8))))))) +;;; writing looong lines. takes way too long and way too much space +;;; to test on 64 bit platforms +#-#.(cl:if (cl:= sb-vm:n-word-bits 64) '(and) '(or)) +(progn + (defun write-n-chars (n stream) + (format t "~&/writing ~D chars on a single line~%" n) + (finish-output t) + (loop repeat n + do (write-char #\x stream)) + (terpri stream) + n) + + (let ((test "long-lines-write-test.tmp")) + (unwind-protect + (with-open-file (f test + :direction :output + :external-format :ascii + :element-type 'character + :if-does-not-exist :create + :if-exists :supersede) + (write-n-chars (+ most-positive-fixnum 7) f)) + (when (probe-file test) + (delete-file test))))) + ;;; success