test: httpd multi-flush partial-buffer sub-range write coverage

ober

203c9a35986954623fc94e73e0741bef8d2231c6

diff --git a/tests/httpd-test.ss b/tests/httpd-test.ss
index b97ba1d..addf144 100644
--- a/tests/httpd-test.ss
+++ b/tests/httpd-test.ss
@@ -214,6 +214,15 @@
     (http-respond-chunk w "chunk3")
     (http-respond-chunk-end w)))
 
+(httpd-route "/multi-flush"
+  (lambda (req w)
+    (http-respond-chunk-begin w 200 '(("Content-Type" . "text/plain")))
+    (let loop ([i 0])
+      (when (< i 10)
+        (http-respond-chunk w (make-string 5000 (integer->char (+ 65 (mod i 26)))))
+        (loop (+ i 1))))
+    (http-respond-chunk-end w)))
+
 (httpd-route "/large"
   (lambda (req w)
     (http-respond w 200 '(("Content-Type" . "text/plain"))
@@ -334,6 +343,17 @@
       (assert-true (string-contains? (cdr r) "chunk2") "c2")
       (assert-true (string-contains? (cdr r) "chunk3") "c3"))))
 
+(test "GET /multi-flush assembles partial-buffer flushes correctly"
+  (lambda ()
+    (let ([r (http-request "GET" "/multi-flush" test-port)])
+      (assert-equal (car r) 200 "status")
+      (let loop ([i 0])
+        (when (< i 10)
+          (assert-true
+            (string-contains? (cdr r) (make-string 5000 (integer->char (+ 65 (mod i 26)))))
+            (string-append "chunk-" (number->string i)))
+          (loop (+ i 1)))))))
+
 (test "GET /large returns 100KB response"
   (lambda ()
     (let ([r (http-request "GET" "/large" test-port)])