Parcourir la source

Add unit test for mg_(v)snprintf

bel il y a 9 ans
Parent
commit
c58dac341f
1 fichiers modifiés avec 55 ajouts et 1 suppressions
  1. 55 1
      test/private.c

+ 55 - 1
test/private.c

@@ -46,6 +46,7 @@
  * http://check.sourceforge.net/doc/check_html/index.html
  * http://check.sourceforge.net/doc/check_html/index.html
  */
  */
 
 
+
 START_TEST(test_parse_http_message)
 START_TEST(test_parse_http_message)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -99,6 +100,7 @@ START_TEST(test_parse_http_message)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_should_keep_alive)
 START_TEST(test_should_keep_alive)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -146,6 +148,7 @@ START_TEST(test_should_keep_alive)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_match_prefix)
 START_TEST(test_match_prefix)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -182,6 +185,7 @@ START_TEST(test_match_prefix)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_remove_double_dots_and_double_slashes)
 START_TEST(test_remove_double_dots_and_double_slashes)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -210,6 +214,7 @@ START_TEST(test_remove_double_dots_and_double_slashes)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_is_valid_uri)
 START_TEST(test_is_valid_uri)
 {
 {
 	/* is_valid_uri is superseeded by get_uri_type */
 	/* is_valid_uri is superseeded by get_uri_type */
@@ -227,6 +232,7 @@ START_TEST(test_is_valid_uri)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_next_option)
 START_TEST(test_next_option)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -247,6 +253,7 @@ START_TEST(test_next_option)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_skip_quoted)
 START_TEST(test_skip_quoted)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -269,6 +276,7 @@ START_TEST(test_skip_quoted)
 }
 }
 END_TEST
 END_TEST
 
 
+
 static int
 static int
 alloc_printf(char **buf, size_t size, const char *fmt, ...)
 alloc_printf(char **buf, size_t size, const char *fmt, ...)
 {
 {
@@ -283,6 +291,7 @@ alloc_printf(char **buf, size_t size, const char *fmt, ...)
 	return ret;
 	return ret;
 }
 }
 
 
+
 static int
 static int
 alloc_printf2(char **buf, const char *fmt, ...)
 alloc_printf2(char **buf, const char *fmt, ...)
 {
 {
@@ -295,6 +304,7 @@ alloc_printf2(char **buf, const char *fmt, ...)
 	return ret;
 	return ret;
 }
 }
 
 
+
 START_TEST(test_alloc_vprintf)
 START_TEST(test_alloc_vprintf)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -325,6 +335,46 @@ START_TEST(test_alloc_vprintf)
 }
 }
 END_TEST
 END_TEST
 
 
+
+START_TEST(test_mg_vsnprintf)
+{
+    char buf[16];
+    int trunc;
+
+    memset(buf, 0, sizeof(buf));
+
+    trunc=777;
+    mg_snprintf(NULL, &trunc, buf, 10, "%8i", 123);
+    ck_assert_str_eq(buf, "     123");
+    ck_assert_int_eq(trunc, 0);
+
+    trunc=777;
+    mg_snprintf(NULL, &trunc, buf, 10, "%9i", 123);
+    ck_assert_str_eq(buf, "      123");
+    ck_assert_int_eq(trunc, 0);
+
+    trunc=777;
+    mg_snprintf(NULL, &trunc, buf, 9, "%9i", 123);
+    ck_assert_str_eq(buf, "      12");
+    ck_assert_int_eq(trunc, 1);
+
+    trunc=777;
+    mg_snprintf(NULL, &trunc, buf, 8, "%9i", 123);
+    ck_assert_str_eq(buf, "      1");
+    ck_assert_int_eq(trunc, 1);
+
+    trunc=777;
+    mg_snprintf(NULL, &trunc, buf, 7, "%9i", 123);
+    ck_assert_str_eq(buf, "      ");
+    ck_assert_int_eq(trunc, 1);
+
+    strcpy(buf, "1234567890");
+    mg_snprintf(NULL, &trunc, buf, 0, "%i", 543);
+    ck_assert_str_eq(buf, "1234567890");
+}
+END_TEST
+
+
 START_TEST(test_mg_strcasestr)
 START_TEST(test_mg_strcasestr)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -339,6 +389,7 @@ START_TEST(test_mg_strcasestr)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_parse_port_string)
 START_TEST(test_parse_port_string)
 {
 {
 	/* Adapted from unit_test.c */
 	/* Adapted from unit_test.c */
@@ -378,6 +429,7 @@ START_TEST(test_parse_port_string)
 }
 }
 END_TEST
 END_TEST
 
 
+
 START_TEST(test_encode_decode)
 START_TEST(test_encode_decode)
 {
 {
 	char buf[128];
 	char buf[128];
@@ -615,6 +667,7 @@ make_private_suite(void)
 	tcase_add_test(tcase_internal_parse, test_skip_quoted);
 	tcase_add_test(tcase_internal_parse, test_skip_quoted);
 	tcase_add_test(tcase_internal_parse, test_mg_strcasestr);
 	tcase_add_test(tcase_internal_parse, test_mg_strcasestr);
 	tcase_add_test(tcase_internal_parse, test_alloc_vprintf);
 	tcase_add_test(tcase_internal_parse, test_alloc_vprintf);
+    tcase_add_test(tcase_internal_parse, test_mg_vsnprintf);
 	tcase_add_test(tcase_internal_parse, test_parse_port_string);
 	tcase_add_test(tcase_internal_parse, test_parse_port_string);
 	tcase_set_timeout(tcase_internal_parse, civetweb_min_test_timeout);
 	tcase_set_timeout(tcase_internal_parse, civetweb_min_test_timeout);
 	suite_add_tcase(suite, tcase_internal_parse);
 	suite_add_tcase(suite, tcase_internal_parse);
@@ -639,9 +692,10 @@ make_private_suite(void)
 /* Used to debug test cases without using the check framework */
 /* Used to debug test cases without using the check framework */
 
 
 void
 void
-xmain(void)
+main(void)
 {
 {
 	test_alloc_vprintf(0);
 	test_alloc_vprintf(0);
+    test_mg_vsnprintf(0);
 	test_parse_date_string(0);
 	test_parse_date_string(0);
 }
 }