Commit Diff


commit - 86df5ff4055857a4a9b024f7ed84c86ddff46016
commit + 001dad0e6901d683c4abfd226c939b5ba1e8f43b
blob - 5022c3d3462d8b03b9368b8a92ba335b0323a9f7
blob + 3d1c1e3ff9660d28b13aa5e8a120f742ccfa4939
--- regress/lisp/9p-test/kami-tests.lisp
+++ regress/lisp/9p-test/kami-tests.lisp
@@ -499,3 +499,32 @@
     (assert-equality #'=
         amount
         (length (read-a-tiny-amount-of-data *remote-test-path-huge* amount)))))
+
+(defun read-data-exceeding-msize (path buffer-size &optional (root "/"))
+  (with-open-ssl-stream (stream
+                         socket
+                         *host*
+                         *port*
+                         *client-certificate*
+                         *certificate-key*)
+    (let* ((*messages-sent* ())
+           (*buffer-size*   buffer-size)
+           (root-fid        (mount stream root))
+           (path-fid        (open-path stream root-fid path))
+           (results         nil))
+      (9p-read stream
+               path-fid
+               0
+               (* 2 buffer-size)
+               :callback (lambda (x reply)
+                           (declare (ignore x))
+                           (let ((data (decode-read-reply reply nil)))
+                             (setf results data))))
+      (read-all-pending-message stream)
+      results)))
+
+(deftest test-read-a-tiny-amount-of-data ((kami-suite) (test-write-huge-file))
+  (let ((buffer-size 256))
+    (assert-equality #'=
+        buffer-size
+        (length (read-data-exceeding-msize *remote-test-path-huge* buffer-size)))))