Add a few more dbuf tests
This commit is contained in:
@@ -83,12 +83,90 @@ START_TEST (test_dbuf_take_fail)
|
|||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
|
||||||
|
START_TEST (test_dbuf_take_all)
|
||||||
|
DBuf buf;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
rc = uc_dbuf_init(&buf, 10);
|
||||||
|
|
||||||
|
fail_if(rc != 0);
|
||||||
|
fail_if(uc_dbuf_buflen(&buf) != 10);
|
||||||
|
fail_if(uc_dbuf_remaining(&buf) != 10);
|
||||||
|
|
||||||
|
strcpy((char *)buf.end, "12345679");
|
||||||
|
uc_dbuf_added(&buf, 10);
|
||||||
|
fail_if(uc_dbuf_len(&buf) != 10);
|
||||||
|
fail_if(uc_dbuf_remaining(&buf) != 0);
|
||||||
|
|
||||||
|
rc = uc_dbuf_take(&buf, 10);
|
||||||
|
fail_if(rc != 0);
|
||||||
|
fail_if(uc_dbuf_len(&buf) != 0);
|
||||||
|
fail_if(uc_dbuf_remaining(&buf) != 10);
|
||||||
|
|
||||||
|
uc_dbuf_free(&buf);
|
||||||
|
END_TEST
|
||||||
|
|
||||||
|
START_TEST (test_dbuf_add_ensure_take)
|
||||||
|
DBuf *buf;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
int i;
|
||||||
|
buf = malloc(sizeof *buf);
|
||||||
|
fail_if(buf == NULL);
|
||||||
|
|
||||||
|
|
||||||
|
rc = uc_dbuf_init(buf, 10);
|
||||||
|
|
||||||
|
fail_if(rc != 0);
|
||||||
|
fail_if(uc_dbuf_buflen(buf) != 10);
|
||||||
|
fail_if(uc_dbuf_remaining(buf) != 10);
|
||||||
|
|
||||||
|
for (i = 0; i < 10; i++) {
|
||||||
|
rc = uc_dbuf_ensure(buf,10);
|
||||||
|
fail_if(rc != 0);
|
||||||
|
|
||||||
|
uc_dbuf_added(buf, 2);
|
||||||
|
fail_if(uc_dbuf_len(buf) != 2);
|
||||||
|
fail_if(uc_dbuf_remaining(buf) != 8);
|
||||||
|
|
||||||
|
uc_dbuf_added(buf, 8);
|
||||||
|
fail_if(uc_dbuf_len(buf) != 10);
|
||||||
|
fail_if(uc_dbuf_remaining(buf) != 0);
|
||||||
|
|
||||||
|
rc = uc_dbuf_take(buf, 5);
|
||||||
|
fail_if(rc != 0);
|
||||||
|
fail_if(uc_dbuf_len(buf) != 5);
|
||||||
|
|
||||||
|
rc = uc_dbuf_take(buf, 5);
|
||||||
|
fail_if(rc != 0);
|
||||||
|
fail_if(uc_dbuf_len(buf) != 0);
|
||||||
|
fail_if(uc_dbuf_remaining(buf) != 10);
|
||||||
|
}
|
||||||
|
|
||||||
|
rc = uc_dbuf_ensure(buf,90);
|
||||||
|
fail_if(rc != 0);
|
||||||
|
//ok, dbuf adds the ensured capacity to the existing buflen
|
||||||
|
//so it becomes 100, not 90 even though the buffer is already empty
|
||||||
|
fail_if(uc_dbuf_remaining(buf) != 100, "remaining %zu", (uc_dbuf_remaining(buf)));
|
||||||
|
fail_if(uc_dbuf_buflen(buf) != 100);
|
||||||
|
memset(buf->end, 0xDE, 90);
|
||||||
|
uc_dbuf_added(buf, 90);
|
||||||
|
fail_if(uc_dbuf_remaining(buf) != 10);
|
||||||
|
|
||||||
|
uc_dbuf_free(buf);
|
||||||
|
free(buf);
|
||||||
|
END_TEST
|
||||||
|
|
||||||
|
|
||||||
Suite *dbuf_suite(void)
|
Suite *dbuf_suite(void)
|
||||||
{
|
{
|
||||||
Suite *s = suite_create("dbuf");
|
Suite *s = suite_create("dbuf");
|
||||||
TCase *tc = tcase_create("dbuf tests");
|
TCase *tc = tcase_create("dbuf tests");
|
||||||
tcase_add_test(tc, test_dbuf);
|
tcase_add_test(tc, test_dbuf);
|
||||||
|
|
||||||
|
tcase_add_test(tc, test_dbuf_take_all);
|
||||||
|
tcase_add_test(tc, test_dbuf_add_ensure_take);
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
tcase_add_test_raise_signal(tc, test_dbuf_take_fail, SIGABRT);
|
tcase_add_test_raise_signal(tc, test_dbuf_take_fail, SIGABRT);
|
||||||
#else
|
#else
|
||||||
|
|||||||
Reference in New Issue
Block a user