commit edde133d39a3475f0adc60493f3a5ae4c1d4a976
parent 48ae1a36dabff33746c8399f190b92e4c77ecb6e
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Mon, 7 Nov 2022 16:13:15 +0300
Added tests with single and double folded header
Diffstat:
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/src/testcurl/Makefile.am b/src/testcurl/Makefile.am
@@ -142,6 +142,11 @@ check_PROGRAMS = \
test_put_large_header_fold \
test_put_header_fold_last \
test_put_header_fold_large \
+ test_get_header_double_fold \
+ test_put_header_double_fold \
+ test_put_large_header_double_fold \
+ test_put_header_double_fold_last \
+ test_put_header_double_fold_large \
$(EMPTY_ITEM)
if ENABLE_COOKIE
@@ -645,3 +650,13 @@ test_get_header_fold_SOURCES = $(test_put_header_fold_SOURCES)
test_put_header_fold_last_SOURCES = $(test_put_header_fold_SOURCES)
test_put_header_fold_large_SOURCES = $(test_put_header_fold_SOURCES)
+
+test_put_header_double_fold_SOURCES = $(test_put_header_fold_SOURCES)
+
+test_put_large_header_double_fold_SOURCES = $(test_put_large_header_fold_SOURCES)
+
+test_get_header_double_fold_SOURCES = $(test_put_header_fold_SOURCES)
+
+test_put_header_double_fold_last_SOURCES = $(test_put_header_fold_last_SOURCES)
+
+test_put_header_double_fold_large_SOURCES = $(test_put_header_fold_large_SOURCES)
diff --git a/src/testcurl/test_put_header_fold.c b/src/testcurl/test_put_header_fold.c
@@ -240,8 +240,12 @@ _mhdErrorExit_func (const char *errDesc, const char *funcName, int lineNum)
#define RQ_HEADER2_NAME "Folded"
#define RQ_HEADER2_VALUE_S "start"
#define RQ_HEADER2_VALUE_E "end"
-#define RQ_HEADER2_VALUE RQ_HEADER2_VALUE_S HDR_FOLD HDR_FOLD RQ_HEADER2_VALUE_E
+#define RQ_HEADER2_VALUE \
+ RQ_HEADER2_VALUE_S HDR_FOLD RQ_HEADER2_VALUE_E
+#define RQ_HEADER2_VALUE_DF \
+ RQ_HEADER2_VALUE_S HDR_FOLD HDR_FOLD RQ_HEADER2_VALUE_E
#define RQ_HEADER2 RQ_HEADER2_NAME ": " RQ_HEADER2_VALUE
+#define RQ_HEADER2_DF RQ_HEADER2_NAME ": " RQ_HEADER2_VALUE_DF
#define RQ_HEADER3_NAME RP_HEADER2_NAME
#define RQ_HEADER3_VALUE RP_HEADER2_VALUE
#define RQ_HEADER3 RQ_HEADER3_NAME ": " RQ_HEADER3_VALUE
@@ -267,6 +271,7 @@ static int oneone; /**< If false use HTTP/1.0 for requests*/
static int use_get;
static int use_put;
static int use_put_large;
+static int use_double_fold;
static int use_hdr_last; /**< If non-zero, folded header is placed last */
static int use_hdr_large; /**< If non-zero, folded header is large */
@@ -297,7 +302,10 @@ libcurl_headers_init (void)
if (! use_hdr_large)
{
- libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER2);
+ if (! use_double_fold)
+ libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER2);
+ else
+ libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER2_DF);
if (NULL == libcurl_headers)
libcurlErrorExitDesc ("curl_slist_append() failed");
}
@@ -318,6 +326,11 @@ libcurl_headers_init (void)
pos += MHD_STATICSTR_LEN_ (RQ_HEADER2_VALUE_S);
memcpy (buf + pos, HDR_FOLD, MHD_STATICSTR_LEN_ (HDR_FOLD));
pos += MHD_STATICSTR_LEN_ (HDR_FOLD);
+ if (use_double_fold)
+ {
+ memcpy (buf + pos, HDR_FOLD, MHD_STATICSTR_LEN_ (HDR_FOLD));
+ pos += MHD_STATICSTR_LEN_ (HDR_FOLD);
+ }
memset (buf + pos, 'a',
TEST_UPLOAD_DATA_SIZE - pos
- MHD_STATICSTR_LEN_ (RQ_HEADER2_VALUE_E) - 1);
@@ -1266,6 +1279,7 @@ main (int argc, char *const *argv)
use_get = has_in_name (argv[0], "_get");
use_put = has_in_name (argv[0], "_put");
+ use_double_fold = has_in_name (argv[0], "_double_fold");
use_put_large = has_in_name (argv[0], "_put_large");
use_hdr_last = has_in_name (argv[0], "_last");
use_hdr_large = has_in_name (argv[0], "_fold_large");