Added tests with single and double folded header

This commit is contained in:
Evgeny Grin (Karlson2k)
2023-06-20 23:22:55 +03:00
parent 48ae1a36da
commit edde133d39
2 changed files with 31 additions and 2 deletions
+15
View File
@@ -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)
+16 -2
View File
@@ -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");