X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=t%2Futils%2Fstrbuf_test.c;h=749d5821622a0189e4fa8130d38b671a6f9958b4;hb=ead57d6d05d4b9fbfe3b47089b65fb889354d870;hp=d76c0f20adcdb9556ae8fa6910ea310cdf661ffa;hpb=c43901be69ea2cfb6f4de519595226cdc953cf26;p=sysdb.git diff --git a/t/utils/strbuf_test.c b/t/utils/strbuf_test.c index d76c0f2..749d582 100644 --- a/t/utils/strbuf_test.c +++ b/t/utils/strbuf_test.c @@ -55,15 +55,17 @@ teardown(void) * tests */ -START_TEST(test_empty) +START_TEST(test_null) { sdb_strbuf_t *b = NULL; va_list ap; /* check that methods don't crash */ sdb_strbuf_destroy(b); - sdb_strbuf_skip(b, 0); - sdb_strbuf_skip(b, 10); + 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, @@ -85,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; @@ -366,17 +390,28 @@ END_TEST /* input is "1234567890" */ static struct { + size_t offset; size_t n; const char *expected; size_t expected_len; } skip_golden_data[] = { - { 0, "1234567890", 10 }, - { 1, "234567890", 9 }, - { 2, "34567890", 8 }, - { 9, "0", 1 }, - { 10, "", 0 }, - { 11, "", 0 }, - { 100, "", 0 }, + { 0, 0, "1234567890", 10 }, + { 0, 1, "234567890", 9 }, + { 0, 2, "34567890", 8 }, + { 0, 9, "0", 1 }, + { 0, 10, "", 0 }, + { 0, 11, "", 0 }, + { 0, 100, "", 0 }, + { 1, 0, "1234567890", 10 }, + { 1, 1, "134567890", 9 }, + { 1, 2, "14567890", 8 }, + { 8, 1, "123456780", 9 }, + { 8, 2, "12345678", 8 }, + { 8, 3, "12345678", 8 }, + { 9, 1, "123456789", 9 }, + { 9, 2, "123456789", 9 }, + { 10, 1, "1234567890", 10 }, + { 10, 2, "1234567890", 10 }, }; START_TEST(test_sdb_strbuf_skip) @@ -389,7 +424,8 @@ START_TEST(test_sdb_strbuf_skip) size_t n; sdb_strbuf_sprintf(buf, input); - sdb_strbuf_skip(buf, skip_golden_data[i].n); + sdb_strbuf_skip(buf, skip_golden_data[i].offset, + skip_golden_data[i].n); n = sdb_strbuf_len(buf); fail_unless(n == skip_golden_data[i].expected_len, @@ -470,6 +506,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);