X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Futils%2Fstrbuf_test.c;h=0acb1de0521849d6533a347fd8a8858a106ce72b;hb=6413d25dbe573432ece20d45d940e00176723de6;hp=c68a23efcf22df1157d2ac4adb02ceaf5f3b7f38;hpb=f835433a5aed1c1d01eeaa853e0dcff3ce8e5db8;p=sysdb.git diff --git a/t/utils/strbuf_test.c b/t/utils/strbuf_test.c index c68a23e..0acb1de 100644 --- a/t/utils/strbuf_test.c +++ b/t/utils/strbuf_test.c @@ -55,7 +55,7 @@ teardown(void) * tests */ -START_TEST(test_empty) +START_TEST(test_null) { sdb_strbuf_t *b = NULL; va_list ap; @@ -65,6 +65,7 @@ START_TEST(test_empty) sdb_strbuf_skip(b, 0, 0); sdb_strbuf_skip(b, 0, 10); sdb_strbuf_skip(b, 10, 10); + sdb_strbuf_clear(b); /* check that methods return an error */ fail_unless(sdb_strbuf_vappend(b, "test", ap) < 0, @@ -86,6 +87,28 @@ START_TEST(test_empty) } END_TEST +START_TEST(test_empty) +{ + sdb_strbuf_t *b = sdb_strbuf_create(0); + const char *data; + size_t len; + + /* check that methods don't crash */ + sdb_strbuf_skip(b, 1, 1); + sdb_strbuf_clear(b); + sdb_strbuf_chomp(b); + + data = sdb_strbuf_string(b); + fail_unless(data && (*data == '\0'), + "sdb_strbuf_string() = '%s'; expected: ''", data); + len = sdb_strbuf_len(b); + fail_unless(len == 0, + "sdb_strbuf_len() = %zu; expected: 0", len); + + sdb_strbuf_destroy(b); +} +END_TEST + START_TEST(test_sdb_strbuf_create) { sdb_strbuf_t *s; @@ -424,6 +447,27 @@ START_TEST(test_sdb_strbuf_skip) } END_TEST +START_TEST(test_sdb_strbuf_clear) +{ + const char *data; + size_t len; + + sdb_strbuf_append(buf, "abc"); + len = sdb_strbuf_len(buf); + fail_unless(len != 0, + "sdb_strbuf_len() = %zu; expected: != 0", len); + + sdb_strbuf_clear(buf); + len = sdb_strbuf_len(buf); + fail_unless(len == 0, + "sdb_strbuf_len() = %zu (after clear); expected: 0", len); + + data = sdb_strbuf_string(buf); + fail_unless(*data == '\0', + "sdb_strbuf_string() = '%s' (after clear); expected: ''", data); +} +END_TEST + static struct { const char *input; const char *expected; @@ -483,6 +527,7 @@ util_strbuf_suite(void) TCase *tc; tc = tcase_create("empty"); + tcase_add_test(tc, test_null); tcase_add_test(tc, test_empty); suite_add_tcase(s, tc); @@ -496,6 +541,7 @@ util_strbuf_suite(void) tcase_add_test(tc, test_sdb_strbuf_memappend); tcase_add_test(tc, test_sdb_strbuf_chomp); tcase_add_test(tc, test_sdb_strbuf_skip); + tcase_add_test(tc, test_sdb_strbuf_clear); tcase_add_test(tc, test_sdb_strbuf_string); tcase_add_test(tc, test_sdb_strbuf_len); suite_add_tcase(s, tc);