diff --git a/lib/core/test/testpkbuf.c b/lib/core/test/testpkbuf.c new file mode 100644 index 000000000..607ea60e7 --- /dev/null +++ b/lib/core/test/testpkbuf.c @@ -0,0 +1,61 @@ +#include "core_pkbuf.h" +#include "testutil.h" + +static void pkbuf_test1(abts_case *tc, void *data) +{ + char *ptr = core_malloc(256); + ABTS_PTR_NOTNULL(tc, ptr); + core_free(ptr); +} + +static void pkbuf_test2(abts_case *tc, void *data) +{ + char *ptr = core_calloc(2, 10); + for (int i = 0; i < 2*10; i++) + { + ABTS_INT_EQUAL(tc, 0, ptr[i]); + } + ABTS_PTR_NOTNULL(tc, ptr); + core_free(ptr); +} + +static void pkbuf_test3(abts_case *tc, void *data) +{ + char *ptr = core_realloc(0, 10); + ABTS_PTR_NOTNULL(tc, ptr); + core_free(ptr); + + ptr = core_malloc(20); + ABTS_PTR_NOTNULL(tc, ptr); + ptr = core_realloc(ptr, 0); +} + +static void pkbuf_test4(abts_case *tc, void *data) +{ + char *p, *q; + + p = core_malloc(10); + ABTS_PTR_NOTNULL(tc, p); + memset(p, 1, 10); + + q = core_realloc(p, 248); + ABTS_TRUE(tc, p == q); + + p = core_realloc(q, 249); + ABTS_TRUE(tc, p != q); + ABTS_TRUE(tc, memcmp(p, q, 10) == 0); + core_free(p); +} + + +abts_suite *testpkbuf(abts_suite *suite) +{ + suite = ADD_SUITE(suite) + + abts_run_test(suite, pkbuf_test1, NULL); + abts_run_test(suite, pkbuf_test2, NULL); + abts_run_test(suite, pkbuf_test3, NULL); + abts_run_test(suite, pkbuf_test4, NULL); + + return suite; +}