From 4537fe6463592ba3d48150f32b48cd1ffe261343 Mon Sep 17 00:00:00 2001
From: rtoy <rtoy>
Date: Sun, 11 Jul 2004 04:53:06 +0000
Subject: [PATCH] Add a few tests for read-sequence.

---
 .../rt/simple-streams-test.lisp               | 65 +++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/pcl/simple-streams/rt/simple-streams-test.lisp b/pcl/simple-streams/rt/simple-streams-test.lisp
index 9fee275a5..81430c134 100644
--- a/pcl/simple-streams/rt/simple-streams-test.lisp
+++ b/pcl/simple-streams/rt/simple-streams-test.lisp
@@ -166,6 +166,24 @@
         (string= content seq))))
   t)
 
+(deftest write-read-large-sc-read-seq-2
+  (let* ((stream (make-instance 'file-simple-stream
+                                :filename *test-file* :direction :output
+                                :if-exists :overwrite
+                                :if-does-not-exist :create))
+         (length (1+ (* 3 (device-buffer-length stream))))
+         (content (make-string length)))
+    (dotimes (i (length content))
+      (setf (aref content i) (code-char (random 256))))
+    (with-open-stream (s stream)
+      (write-string content s))
+    (with-test-file (s *test-file* :class 'file-simple-stream
+                       :direction :input :if-does-not-exist :error)
+      (let ((seq (make-string length)))
+        (read-sequence seq s)
+        (string= content seq))))
+  t)
+
 (deftest write-read-large-sc-3
   (let* ((stream (make-instance 'file-simple-stream
                                 :filename *test-file* :direction :output
@@ -186,6 +204,24 @@
         (equalp content seq))))
   t)
 
+(deftest write-read-large-sc-read-seq-3
+  (let* ((stream (make-instance 'file-simple-stream
+                                :filename *test-file* :direction :output
+                                :if-exists :overwrite
+                                :if-does-not-exist :create))
+         (length (1+ (* 3 (device-buffer-length stream))))
+         (content (make-array length :element-type '(unsigned-byte 8))))
+    (dotimes (i (length content))
+      (setf (aref content i) (random 256)))
+    (with-open-stream (s stream)
+      (write-sequence content s))
+    (with-test-file (s *test-file* :class 'file-simple-stream
+                       :direction :input :if-does-not-exist :error)
+      (let ((seq (make-array length :element-type '(unsigned-byte 8))))
+        (read-sequence seq s)
+        (equalp content seq))))
+  t)
+
 (deftest write-read-large-dc-1
   ;; Do write and read with more data than the buffer will hold
   ;; (dual-channel simple-stream; we only have socket streams atm)
@@ -346,3 +382,32 @@
            (equalp uvector result-uvector)
            (equalp svector result-svector)))
   T)
+
+(deftest create-read-mapped-file-read-seq-1
+    ;; Read data via a mapped-file-simple-stream object using
+    ;; read-sequence.
+    (let ((result t))
+      (with-test-file (s *test-file* :class 'mapped-file-simple-stream
+			 :direction :input :if-does-not-exist :error
+			 :initial-content *dumb-string*)
+	(let ((seq (make-string (length *dumb-string*))))
+	  (read-sequence seq s)
+	  (setf result (and result (string= seq *dumb-string*)))))
+      result)
+  t)
+
+(deftest create-read-mapped-file-read-seq-2
+    ;; Read data via a mapped-file-simple-stream object using
+    ;; read-sequence.
+    (let ((result t))
+      (with-test-file (s *test-file* :class 'mapped-file-simple-stream
+			 :direction :input :if-does-not-exist :error
+			 :initial-content *dumb-string*)
+	(let ((seq (make-string (+ 10 (length *dumb-string*)))))
+	  (read-sequence seq s)
+	  (setf result (and result
+			    (string= seq *dumb-string*
+				     :end1 (length *dumb-string*))))))
+      result)
+  t)
+
-- 
GitLab