static int test_empty_value () { struct MHD_Connection connection; struct MHD_HTTP_Header header; struct MHD_PostProcessor *pp; unsigned int want_off = URL_EMPTY_VALUE_START; int i; int delta; size_t size; memset (&connection, 0, sizeof (struct MHD_Connection)); memset (&header, 0, sizeof (struct MHD_HTTP_Header)); connection.headers_received = &header; header.header = MHD_HTTP_HEADER_CONTENT_TYPE; header.value = MHD_HTTP_POST_ENCODING_FORM_URLENCODED; header.kind = MHD_HEADER_KIND; pp = MHD_create_post_processor (&connection, 1024, &value_checker, &want_off); i = 0; size = strlen (URL_EMPTY_VALUE_DATA); while (i < size) { delta = 1 + MHD_random_ () % (size - i); MHD_post_process (pp, &URL_EMPTY_VALUE_DATA[i], delta); i += delta; } MHD_destroy_post_processor (pp); if (want_off != URL_EMPTY_VALUE_END) return 8; return 0; }
static int test_nested_multipart () { struct MHD_Connection connection; struct MHD_HTTP_Header header; struct MHD_PostProcessor *pp; unsigned int want_off = FORM_NESTED_START; int i; int delta; size_t size; memset (&connection, 0, sizeof (struct MHD_Connection)); memset (&header, 0, sizeof (struct MHD_HTTP_Header)); connection.headers_received = &header; header.header = MHD_HTTP_HEADER_CONTENT_TYPE; header.value = MHD_HTTP_POST_ENCODING_MULTIPART_FORMDATA ", boundary=AaB03x"; header.kind = MHD_HEADER_KIND; pp = MHD_create_post_processor (&connection, 1024, &value_checker, &want_off); i = 0; size = strlen (FORM_NESTED_DATA); while (i < size) { delta = 1 + MHD_random_ () % (size - i); MHD_post_process (pp, &FORM_NESTED_DATA[i], delta); i += delta; } MHD_destroy_post_processor (pp); if (want_off != FORM_NESTED_END) return 4; return 0; }
static int test_simple_large () { struct MHD_Connection connection; struct MHD_HTTP_Header header; struct MHD_PostProcessor *pp; int i; int delta; size_t size; char data[102400]; unsigned int pos; pos = 0; memset (data, 'A', sizeof (data)); memcpy (data, "key=", 4); data[sizeof (data) - 1] = '\0'; memset (&connection, 0, sizeof (struct MHD_Connection)); memset (&header, 0, sizeof (struct MHD_HTTP_Header)); connection.headers_received = &header; header.header = MHD_HTTP_HEADER_CONTENT_TYPE; header.value = MHD_HTTP_POST_ENCODING_FORM_URLENCODED; header.kind = MHD_HEADER_KIND; pp = MHD_create_post_processor (&connection, 1024, &value_checker, &pos); i = 0; size = strlen (data); while (i < size) { delta = 1 + MHD_random_ () % (size - i); MHD_post_process (pp, &data[i], delta); i += delta; } MHD_destroy_post_processor (pp); if (pos != sizeof (data) - 5) /* minus 0-termination and 'key=' */ return 1; return 0; }