src/server/test/httpclient.c

changeset 709
b446c4b12ad4
parent 705
30de3bfd0412
--- a/src/server/test/httpclient.c	Thu Feb 26 21:43:20 2026 +0100
+++ b/src/server/test/httpclient.c	Fri Feb 27 18:05:12 2026 +0100
@@ -252,7 +252,7 @@
                 "HTTP/1.1 200 OK\r\n"
                 "Content-length: 21\r\n"
                 "\r\n"
-                "Hello World!---post1\n");
+                "Hello World!---post2\n");
         cxstring *response = calloc(response_str.length, sizeof(cxstring));
         for(int i=0;i<response_str.length;i++) {
             response[i] = cx_strn(response_str.ptr+i, 1);
@@ -263,8 +263,31 @@
         CxBuffer *out = cxBufferCreate(NULL, NULL, 256, CX_BUFFER_AUTO_EXTEND|CX_BUFFER_FREE_CONTENTS);
         
         CX_TEST_CALL_SUBROUTINE(test_httpclient, request_body, TRUE, response, response_str.length, out);
-        CX_TEST_ASSERT(!cx_strcmp(cx_strn(out->space, out->size), "Hello World!---post1\n"));
+        CX_TEST_ASSERT(!cx_strcmp(cx_strn(out->space, out->size), "Hello World!---post2\n"));
         
         cxBufferFree(out);
     }
 }
+
+CX_TEST(test_http_client_post_ctlen_large) {
+    CX_TEST_DO {
+        cxstring response = cx_str(
+                "HTTP/1.1 200 OK\r\n"
+                "Content-length: 21\r\n"
+                "\r\n"
+                "Hello World!---post3\n");
+        
+        size_t ctlen = 1024*64;
+        char *req_body = malloc(ctlen);
+        cxstring request_body = cx_strn(req_body, ctlen);
+        
+        CxBuffer *out = cxBufferCreate(NULL, NULL, 256, CX_BUFFER_AUTO_EXTEND|CX_BUFFER_FREE_CONTENTS);
+        
+        request_body_max_read = 4096;
+        CX_TEST_CALL_SUBROUTINE(test_httpclient, request_body, FALSE, &response, 1, out);
+        CX_TEST_ASSERT(!cx_strcmp(cx_strn(out->space, out->size), "Hello World!---post3\n"));
+        
+        cxBufferFree(out);
+        free(req_body);
+    }
+}

mercurial