|
@@ -283,6 +283,18 @@ alloc_printf(char **buf, size_t size, const char *fmt, ...)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+static int
|
|
|
+alloc_printf2(char **buf, const char *fmt, ...)
|
|
|
+{
|
|
|
+ /* Test alternative implementation */
|
|
|
+ va_list ap;
|
|
|
+ int ret = 0;
|
|
|
+ va_start(ap, fmt);
|
|
|
+ ret = alloc_vprintf2(buf, fmt, ap);
|
|
|
+ va_end(ap);
|
|
|
+ return ret;
|
|
|
+}
|
|
|
+
|
|
|
START_TEST(test_alloc_vprintf)
|
|
|
{
|
|
|
/* Adapted from unit_test.c */
|
|
@@ -292,13 +304,24 @@ START_TEST(test_alloc_vprintf)
|
|
|
|
|
|
ck_assert(alloc_printf(&p, sizeof(buf), "%s", "hi") == 2);
|
|
|
ck_assert(p == buf);
|
|
|
+
|
|
|
ck_assert(alloc_printf(&p, sizeof(buf), "%s", "") == 0);
|
|
|
+ ck_assert(p == buf);
|
|
|
+
|
|
|
ck_assert(alloc_printf(&p, sizeof(buf), "") == 0);
|
|
|
+ ck_assert(p == buf);
|
|
|
|
|
|
/* Pass small buffer, make sure alloc_printf allocates */
|
|
|
ck_assert(alloc_printf(&p, 1, "%s", "hello") == 5);
|
|
|
ck_assert(p != buf);
|
|
|
mg_free(p);
|
|
|
+ p = buf;
|
|
|
+
|
|
|
+ /* Test alternative implementation */
|
|
|
+ ck_assert(alloc_printf2(&p, "%s", "hello") == 5);
|
|
|
+ ck_assert(p != buf);
|
|
|
+ mg_free(p);
|
|
|
+ p = buf;
|
|
|
}
|
|
|
END_TEST
|
|
|
|
|
@@ -511,6 +534,16 @@ START_TEST(test_mask_data)
|
|
|
END_TEST
|
|
|
|
|
|
|
|
|
+START_TEST(test_parse_date_string)
|
|
|
+{
|
|
|
+ ch_assert_uint_eq(parse_date_string("1/Jan/1970 00:01:02"), 62);
|
|
|
+ ch_assert_uint_eq(parse_date_string("1 Jan 1970 00:02:03"), 123);
|
|
|
+ ch_assert_uint_eq(parse_date_string("1-Jan-1970 00:03:04"), 184);
|
|
|
+ ch_assert_uint_eq(parse_date_string("Xyz, 1 Jan 1970 00:04:05"), 245);
|
|
|
+}
|
|
|
+END_TEST
|
|
|
+
|
|
|
+
|
|
|
Suite *
|
|
|
make_private_suite(void)
|
|
|
{
|
|
@@ -521,6 +554,7 @@ make_private_suite(void)
|
|
|
TCase *const tcase_internal_parse = tcase_create("Internal Parsing");
|
|
|
TCase *const tcase_encode_decode = tcase_create("Encode Decode");
|
|
|
TCase *const tcase_mask_data = tcase_create("Mask Data");
|
|
|
+ TCase *const tcase_parse_date_string = tcase_create("Date Parsing");
|
|
|
|
|
|
tcase_add_test(tcase_http_message, test_parse_http_message);
|
|
|
tcase_add_test(tcase_http_message, test_should_keep_alive);
|
|
@@ -550,5 +584,9 @@ make_private_suite(void)
|
|
|
tcase_set_timeout(tcase_mask_data, civetweb_min_test_timeout);
|
|
|
suite_add_tcase(suite, tcase_mask_data);
|
|
|
|
|
|
+ tcase_add_test(tcase_parse_date_string, test_parse_date_string);
|
|
|
+ tcase_set_timeout(tcase_mask_data, civetweb_min_test_timeout);
|
|
|
+ suite_add_tcase(suite, tcase_parse_date_string);
|
|
|
+
|
|
|
return suite;
|
|
|
}
|