[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libmicrohttpd] 02/02: test_postprocessor: added test with double value
From: |
gnunet |
Subject: |
[libmicrohttpd] 02/02: test_postprocessor: added test with double value |
Date: |
Wed, 15 Sep 2021 18:47:34 +0200 |
This is an automated email from the git hooks/post-receive script.
karlson2k pushed a commit to branch master
in repository libmicrohttpd.
commit 1cf2ccde32386b2d93305ff6667b088522e03f10
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Wed Sep 15 19:47:17 2021 +0300
test_postprocessor: added test with double value
---
src/microhttpd/test_postprocessor.c | 81 +++++++++++++++++++++++++++++++++++++
1 file changed, 81 insertions(+)
diff --git a/src/microhttpd/test_postprocessor.c
b/src/microhttpd/test_postprocessor.c
index 9f89e7fd..b3231c0e 100644
--- a/src/microhttpd/test_postprocessor.c
+++ b/src/microhttpd/test_postprocessor.c
@@ -707,6 +707,86 @@ test_empty_key (void)
}
+static int
+test_double_value (void)
+{
+ const char form_data[] = URL_DATA "=abcdef";
+ size_t step;
+ const size_t size = MHD_STATICSTR_LEN_ (form_data);
+ const size_t safe_size = MHD_STATICSTR_LEN_ (URL_DATA);
+
+ for (step = 1; size >= step; ++step)
+ {
+ size_t i;
+ struct MHD_Connection connection;
+ struct MHD_HTTP_Header header;
+ struct MHD_PostProcessor *pp;
+ unsigned int results_off = URL_START;
+ unsigned int results_final = results_off + 1; /* First value is correct */
+ memset (&connection, 0, sizeof (struct MHD_Connection));
+ memset (&header, 0, sizeof (struct MHD_HTTP_Header));
+
+ connection.headers_received = &header;
+ connection.headers_received_tail = &header;
+ header.header = MHD_HTTP_HEADER_CONTENT_TYPE;
+ header.header_size = MHD_STATICSTR_LEN_ (MHD_HTTP_HEADER_CONTENT_TYPE);
+ header.value = MHD_HTTP_POST_ENCODING_FORM_URLENCODED;
+ header.value_size =
+ MHD_STATICSTR_LEN_ (MHD_HTTP_POST_ENCODING_FORM_URLENCODED);
+ header.kind = MHD_HEADER_KIND;
+ pp = MHD_create_post_processor (&connection,
+ 1024, &value_checker, &results_off);
+ if (NULL == pp)
+ {
+ fprintf (stderr, "Failed to create post processor.\n"
+ "Line: %u\n", (unsigned int) __LINE__);
+ exit (50);
+ }
+ for (i = 0; size > i; i += step)
+ {
+ if (MHD_NO != MHD_post_process (pp,
+ form_data + i,
+ (step > size - i) ? (size - i) : step))
+ {
+ if (safe_size == i + step)
+ results_final = URL_END;
+ if (safe_size < i + step)
+ {
+ fprintf (stderr, "Succeed to process the broken data.\n"
+ "i: %u. step: %u.\n"
+ "Line: %u\n", (unsigned) i, (unsigned) step,
+ (unsigned int) __LINE__);
+ exit (49);
+ }
+ }
+ else
+ {
+ if (safe_size >= i + step)
+ {
+ fprintf (stderr, "Failed to process the data.\n"
+ "i: %u. step: %u.\n"
+ "Line: %u\n", (unsigned) i, (unsigned) step,
+ (unsigned int) __LINE__);
+ exit (49);
+ }
+ }
+ }
+ MHD_destroy_post_processor (pp);
+ if (results_final != results_off)
+ {
+ fprintf (stderr,
+ "Test failed in line %u.\tStep:%u\n Got: %u\tExpected: %u\n",
+ (unsigned int) __LINE__,
+ (unsigned int) step,
+ results_off,
+ results_final);
+ return 1;
+ }
+ }
+ return 0;
+}
+
+
int
main (int argc, char *const *argv)
{
@@ -719,6 +799,7 @@ main (int argc, char *const *argv)
errorCount += test_multipart ();
errorCount += test_nested_multipart ();
errorCount += test_empty_key ();
+ errorCount += test_double_value ();
errorCount += test_overflow ();
if (errorCount != 0)
fprintf (stderr, "Error (code: %u)\n", errorCount);
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.