]> git.ipfire.org Git - thirdparty/json-c.git/commitdiff
Increased the test coverage of printbuf.c 82% to 92%. 526/head
authorchenguoping <chenguopingdota@163.com>
Fri, 3 Jan 2020 06:34:35 +0000 (14:34 +0800)
committerchenguoping <chenguopingdota@163.com>
Fri, 3 Jan 2020 06:34:35 +0000 (14:34 +0800)
tests/test_printbuf.c
tests/test_printbuf.expected

index 06dd13d9477085574b0ec3f32e780216f79f3335..c74fe6b8851aa2d1b759d22473bd008c527de8c1 100644 (file)
@@ -127,6 +127,10 @@ static void test_sprintbuf(int before_resize);
 static void test_sprintbuf(int before_resize)
 {
        struct printbuf *pb;
+       const char  *max_char = "if string is greater than stack buffer, then use dynamic string"
+               " with vasprintf.  Note: some implementation of vsnprintf return -1 "
+               " if output is truncated whereas some return the number of bytes that "
+               " would have been written - this code handles both cases.";
 
        printf("%s: starting test\n", __func__);
        pb = printbuf_new();
@@ -155,6 +159,8 @@ static void test_sprintbuf(int before_resize)
        sprintbuf(pb, "%s", "%s");
        printf("%d, [%s]\n", printbuf_length(pb), pb->buf);
 
+       sprintbuf(pb, max_char);
+       printf("%d, [%s]\n", printbuf_length(pb), pb->buf);
        printbuf_free(pb);
        printf("%s: end test\n", __func__);
 }
index 64644125b91dc03e2c90b7476247508a5680fc65..a4ebc2a621be42b46bcd87730a36afb88669042b 100644 (file)
@@ -29,5 +29,6 @@ sprintbuf to just after resize(31+1): 32, [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX], st
 16, [plain12147483647]
 27, [plain12147483647-2147483648]
 29, [plain12147483647-2147483648%s]
+284, [plain12147483647-2147483648%sif string is greater than stack buffer, then use dynamic string with vasprintf.  Note: some implementation of vsnprintf return -1  if output is truncated whereas some return the number of bytes that  would have been written - this code handles both cases.]
 test_sprintbuf: end test
 ========================================