[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libmicrohttpd] 03/03: test_parse_cookie: split into two tests
From: |
gnunet |
Subject: |
[libmicrohttpd] 03/03: test_parse_cookie: split into two tests |
Date: |
Sun, 15 May 2022 19:30:58 +0200 |
This is an automated email from the git hooks/post-receive script.
karlson2k pushed a commit to branch master
in repository libmicrohttpd.
commit a76f989d572ad0c5cea6d7b9e008e4b13b24f364
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Sun May 15 20:30:10 2022 +0300
test_parse_cookie: split into two tests
One test with valid cookie, second test with invalid/empty cookies
---
src/testcurl/Makefile.am | 4 +
src/testcurl/test_parse_cookies.c | 231 +++++++++++++++++++++++++++++++-------
2 files changed, 196 insertions(+), 39 deletions(-)
diff --git a/src/testcurl/Makefile.am b/src/testcurl/Makefile.am
index cc67b87a..58158b18 100644
--- a/src/testcurl/Makefile.am
+++ b/src/testcurl/Makefile.am
@@ -103,6 +103,7 @@ check_PROGRAMS = \
test_process_headers \
test_process_arguments \
test_parse_cookies \
+ test_parse_cookies_invalid \
test_toolarge_method \
test_toolarge_url \
test_toolarge_request_header_name \
@@ -330,6 +331,9 @@ test_process_headers_SOURCES = \
test_parse_cookies_SOURCES = \
test_parse_cookies.c mhd_has_in_name.h
+test_parse_cookies_invalid_SOURCES = \
+ test_parse_cookies.c mhd_has_in_name.h
+
test_process_arguments_SOURCES = \
test_process_arguments.c mhd_has_in_name.h
diff --git a/src/testcurl/test_parse_cookies.c
b/src/testcurl/test_parse_cookies.c
index af86f14f..7de83c32 100644
--- a/src/testcurl/test_parse_cookies.c
+++ b/src/testcurl/test_parse_cookies.c
@@ -40,7 +40,7 @@
#include <unistd.h>
#endif
-static int oneone;
+static int use_invalid;
struct CBC
{
@@ -119,10 +119,10 @@ ahc_echo (void *cls,
fprintf (stderr, "'name5' cookie decoded incorrectly.\n");
exit (11);
}
- if (4 != MHD_get_connection_values_n (connection, MHD_COOKIE_KIND,
+ if (5 != MHD_get_connection_values_n (connection, MHD_COOKIE_KIND,
NULL, NULL))
{
- fprintf (stderr, "The total number of cookie is not four.\n");
+ fprintf (stderr, "The total number of cookie is not five.\n");
exit (12);
}
}
@@ -149,7 +149,7 @@ ahc_echo (void *cls,
static unsigned int port;
static unsigned int
-testExternalGet (int use_invalid)
+testExternalGet (int test_number)
{
struct MHD_Daemon *d;
CURL *c;
@@ -196,44 +196,192 @@ testExternalGet (int use_invalid)
curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, ©Buffer);
curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
curl_easy_setopt (c, CURLOPT_FAILONERROR, 1L);
- if (0 == use_invalid)
+ if (! use_invalid)
{
- curl_easy_setopt (c, CURLOPT_COOKIE,
- "name1=var1; name2=var2; name3=; " \
- "name4=\"var4 with spaces\"; " \
- "name5=var_with_=_char" \
- " ; ;; ;");
- }
- else if (1 == use_invalid)
- {
- curl_easy_setopt (c, CURLOPT_COOKIE,
- "var1=value1;=;");
- }
- else if (2 == use_invalid)
- {
- curl_easy_setopt (c, CURLOPT_COOKIE,
- "=");
- }
- else if (3 == use_invalid)
- {
- curl_easy_setopt (c, CURLOPT_COOKIE,
- ";=");
- }
- else if (4 == use_invalid)
- {
- curl_easy_setopt (c, CURLOPT_COOKIE,
- "=;");
+ if (0 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1; name2=var2; name3=; " \
+ "name4=\"var4 with spaces\"; " \
+ "name5=var_with_=_char");
+ }
+ else if (1 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1;name2=var2;name3=;" \
+ "name4=\"var4 with spaces\";" \
+ "name5=var_with_=_char");
+ }
+ else if (2 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1; name2=var2; name3=; " \
+ "name4=\"var4 with spaces\"; " \
+ "name5=var_with_=_char\t \t");
+ }
+ else if (3 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1;;name2=var2;;name3=;;" \
+ "name4=\"var4 with spaces\";;" \
+ "name5=var_with_=_char;\t \t");
+ }
+ else if (4 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1 ;name2=var2 ;name3= ;" \
+ "name4=\"var4 with spaces\" ;" \
+ "name5=var_with_=_char ;");
+ }
+ else if (5 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name3=; name1=var1; name2=var2; " \
+ "name5=var_with_=_char;" \
+ "name4=\"var4 with spaces\"");
+ }
+ else if (6 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name2=var2; name1=var1; " \
+ "name5=var_with_=_char; name3=; " \
+ "name4=\"var4 with spaces\";");
+ }
+ else if (7 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name2=var2; name1=var1; " \
+ "name5=var_with_=_char; " \
+ "name4=\"var4 with spaces\"; name3=");
+ }
+ else if (8 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name2=var2; name1=var1; " \
+ "name4=\"var4 with spaces\"; " \
+ "name5=var_with_=_char; name3=;");
+ }
+ else if (9 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ ";;;;;;;;name1=var1; name2=var2; name3=; " \
+ "name4=\"var4 with spaces\"; " \
+ "name5=var_with_=_char");
+ }
+ else if (10 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1; name2=var2; name3=; " \
+ "name4=\"var4 with spaces\"; ; ; ; ; " \
+ "name5=var_with_=_char");
+ }
+ else if (11 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1; name2=var2; name3=; " \
+ "name4=\"var4 with spaces\"; " \
+ "name5=var_with_=_char;;;;;;;;");
+ }
+ else if (12 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name1=var1; name2=var2; " \
+ "name4=\"var4 with spaces\"" \
+ "name5=var_with_=_char; ; ; ; ; name3=");
+ }
+ else if (13 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name5=var_with_=_char ;" \
+ "name1=var1; name2=var2; name3=; " \
+ "name4=\"var4 with spaces\" ");
+ }
+ else if (14 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "name5=var_with_=_char; name4=\"var4 with spaces\";" \
+ "name1=var1; name2=var2; name3=");
+ }
}
- else if (5 == use_invalid)
+ else
{
- curl_easy_setopt (c, CURLOPT_COOKIE,
- "a=b,d=c");
+ if (0 == test_number)
+ {
+ (void) 0; /* No cookie */
+ }
+ else if (1 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "");
+ }
+ else if (2 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ " ");
+ }
+ else if (3 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "\t");
+ }
+ else if (4 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "var=,");
+ }
+ else if (5 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "var=\"\\ \"");
+ }
+ else if (6 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "var=value space");
+ }
+ else if (7 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "var=value\ttab");
+ }
+ else if (8 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "=");
+ }
+ else if (9 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "====");
+ }
+ else if (10 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ ";=");
+ }
+ else if (11 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "var");
+ }
+ else if (12 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "=;");
+ }
+ else if (13 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ "= ;");
+ }
+ else if (14 == test_number)
+ {
+ curl_easy_setopt (c, CURLOPT_COOKIE,
+ ";= ;");
+ }
}
- if (oneone)
- curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
- else
- curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
+ curl_easy_setopt (c, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_easy_setopt (c, CURLOPT_TIMEOUT, 150L);
curl_easy_setopt (c, CURLOPT_CONNECTTIMEOUT, 150L);
/* NOTE: use of CONNECTTIMEOUT without also
@@ -365,7 +513,7 @@ main (int argc, char *const *argv)
if ((NULL == argv) || (0 == argv[0]))
return 99;
- oneone = has_in_name (argv[0], "11");
+ use_invalid = has_in_name (argv[0], "_invalid");
if (0 != curl_global_init (CURL_GLOBAL_WIN32))
return 2;
if (MHD_NO != MHD_is_feature_supported (MHD_FEATURE_AUTODETECT_BIND_PORT))
@@ -373,7 +521,7 @@ main (int argc, char *const *argv)
else
{
port = 1340;
- if (oneone)
+ if (use_invalid)
port += 5;
}
errorCount += testExternalGet (0);
@@ -383,6 +531,11 @@ main (int argc, char *const *argv)
errorCount += testExternalGet (4);
errorCount += testExternalGet (5);
errorCount += testExternalGet (6);
+ errorCount += testExternalGet (7);
+ errorCount += testExternalGet (8);
+ errorCount += testExternalGet (9);
+ errorCount += testExternalGet (10);
+ errorCount += testExternalGet (11);
if (errorCount != 0)
fprintf (stderr, "Error (code: %u)\n", errorCount);
curl_global_cleanup ();
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.