diff options
Diffstat (limited to 'test/pkbktarr.c')
| -rw-r--r-- | test/pkbktarr.c | 469 |
1 files changed, 256 insertions, 213 deletions
diff --git a/test/pkbktarr.c b/test/pkbktarr.c index 1b89b53..da8d888 100644 --- a/test/pkbktarr.c +++ b/test/pkbktarr.c @@ -4,6 +4,9 @@ #define PK_IMPL_MEM #define PK_IMPL_BKTARR #include "../pkbktarr.h" +#define PK_IMPL_TST +#include "../pktst.h" + #include <setjmp.h> #include <unistd.h> @@ -71,9 +74,12 @@ int main(int argc, char *argv[]) handles[b][i].i = i; } } - if (v = pk_bkt_arr_handle_compare(handles[0][0], handles[0][0]), v != 0) exit(1); - if (v = pk_bkt_arr_handle_compare(handles[1][0], handles[1][1]), v <= 0) exit(1); - if (v = pk_bkt_arr_handle_compare(handles[1][1], handles[1][0]), v >= 0) exit(1); + v = pk_bkt_arr_handle_compare(handles[0][0], handles[0][0]); + PK_TEST_ASSERT_EQ_EXIT((int)0, v); + v = pk_bkt_arr_handle_compare(handles[1][0], handles[1][1]); + PK_TEST_ASSERT_LTE_EXIT((int)0, v); + v = pk_bkt_arr_handle_compare(handles[1][1], handles[1][0]); + PK_TEST_ASSERT_GTE_EXIT((int)0, v); } // test ancillary 2 @@ -85,25 +91,39 @@ int main(int argc, char *argv[]) h1.b = 0; h1.i = 0; - if (h2 = pk_bkt_arr_handle_increment(&arr, h1), h2.b != 0 || h2.i != 1) exit(1); + h2 = pk_bkt_arr_handle_increment(&arr, h1); + PK_TEST_ASSERT_EQ_EXIT(0, h2.b); + PK_TEST_ASSERT_EQ_EXIT(1, h2.i); h1.b = 1; h1.i = 1; - if (h2 = pk_bkt_arr_handle_increment(&arr, h1), h2.b != 1 || h2.i != 2) exit(1); + h2 = pk_bkt_arr_handle_increment(&arr, h1); + PK_TEST_ASSERT_EQ_EXIT(1, h2.b); + PK_TEST_ASSERT_EQ_EXIT(2, h2.i); h1.b = 1; h1.i = 2; - if (h2 = pk_bkt_arr_handle_increment(&arr, h1), h2.b != 2 || h2.i != 0) exit(1); + h2 = pk_bkt_arr_handle_increment(&arr, h1); + PK_TEST_ASSERT_EQ_EXIT(2, h2.b); + PK_TEST_ASSERT_EQ_EXIT(0, h2.i); h1.b = 2; h1.i = 2; - if (h2 = pk_bkt_arr_handle_increment(&arr, h1), h2.b != 2 || h2.i != 2) exit(1); + h2 = pk_bkt_arr_handle_increment(&arr, h1); + PK_TEST_ASSERT_EQ_EXIT(2, h2.b); + PK_TEST_ASSERT_EQ_EXIT(2, h2.i); h1.b = 0; h1.i = 0; - if (h2 = pk_bkt_arr_handle_decrement(&arr, h1), h2.b != 0 || h2.i != 0) exit(1); + h2 = pk_bkt_arr_handle_decrement(&arr, h1); + PK_TEST_ASSERT_EQ_EXIT(0, h2.b); + PK_TEST_ASSERT_EQ_EXIT(0, h2.i); h1.b = 2; h1.i = 2; - if (h2 = pk_bkt_arr_handle_decrement(&arr, h1), h2.b != 2 || h2.i != 1) exit(1); + h2 = pk_bkt_arr_handle_decrement(&arr, h1); + PK_TEST_ASSERT_EQ_EXIT(2, h2.b); + PK_TEST_ASSERT_EQ_EXIT(1, h2.i); h1.b = 2; h1.i = 0; - if (h2 = pk_bkt_arr_handle_decrement(&arr, h1), h2.b != 1 || h2.i != 2) exit(1); + h2 = pk_bkt_arr_handle_decrement(&arr, h1); + PK_TEST_ASSERT_EQ_EXIT(1, h2.b); + PK_TEST_ASSERT_EQ_EXIT(2, h2.i); } // test it works @@ -115,26 +135,30 @@ int main(int argc, char *argv[]) pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); - if (h.b != 0) exit(1); - if (h.i != 0) exit(1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 1) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h.b); + PK_TEST_ASSERT_EQ_EXIT(0, h.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif pk_bkt_arr_free_handle(&arr, h); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 0) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif pk_bkt_arr_teardown(&arr); - if (bkt_buckets->alloc_count != 0) exit(1); - if (bkt_data->alloc_count != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_data->alloc_count); } test_teardown(&bkt_buckets, &bkt_data); @@ -147,36 +171,42 @@ int main(int argc, char *argv[]) pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); - if (h.b != 0) exit(1); - if (h.i != 0) exit(1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 1) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h.b); + PK_TEST_ASSERT_EQ_EXIT(0, h.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif pk_bkt_arr_clear(&arr); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 0) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 0) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif h = pk_bkt_arr_new_handle(&arr); - if (h.b != 0) exit(1); - if (h.i != 0) exit(1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 1) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h.b); + PK_TEST_ASSERT_EQ_EXIT(0, h.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif pk_bkt_arr_teardown(&arr); - if (bkt_buckets->alloc_count != 0) exit(1); - if (bkt_data->alloc_count != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_data->alloc_count); } test_teardown(&bkt_buckets, &bkt_data); @@ -189,23 +219,25 @@ int main(int argc, char *argv[]) pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); - if (h.b != 0) exit(1); - if (h.i != 0) exit(1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 1) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h.b); + PK_TEST_ASSERT_EQ_EXIT(0, h.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif int val = 69; ((int**)arr.bucketed_data)[h.b][h.i] = val; struct pk_bkt_arr_handle found_h = pk_bkt_arr_find_first_handle(&arr, find_int_val, NULL, &val); - if (pk_bkt_arr_handle_compare(h, found_h) != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, pk_bkt_arr_handle_compare(h, found_h)); pk_bkt_arr_teardown(&arr); - if (bkt_buckets->alloc_count != 0) exit(1); - if (bkt_data->alloc_count != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_data->alloc_count); } test_teardown(&bkt_buckets, &bkt_data); @@ -218,21 +250,23 @@ int main(int argc, char *argv[]) pk_bkt_arr_init(&arr, sizeof(int), alignof(int), pk_bkt_arr_handle_MAX, bkt_buckets, bkt_data); struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); - if (h.b != 0) exit(1); - if (h.i != 0) exit(1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 1) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h.b); + PK_TEST_ASSERT_EQ_EXIT(0, h.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif pk_bkt_arr_iterate(&arr, iter, NULL); - if (global_counter != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(1, global_counter); pk_bkt_arr_teardown(&arr); - if (bkt_buckets->alloc_count != 0) exit(1); - if (bkt_data->alloc_count != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_data->alloc_count); } test_teardown(&bkt_buckets, &bkt_data); @@ -247,41 +281,47 @@ int main(int argc, char *argv[]) h1 = pk_bkt_arr_new_handle(&arr); h2 = pk_bkt_arr_new_handle(&arr); - if (h1.b != 0) exit(1); - if (h1.i != 0) exit(1); - if (h2.b != 0) exit(1); - if (h2.i != 1) exit(1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 2) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFFFC) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h1.b); + PK_TEST_ASSERT_EQ_EXIT(0, h1.i); + PK_TEST_ASSERT_EQ_EXIT(0, h2.b); + PK_TEST_ASSERT_EQ_EXIT(1, h2.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFC, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif pk_bkt_arr_free_handle(&arr, h1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 0) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFFFD) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFD, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif h2 = pk_bkt_arr_new_handle(&arr); - if (h2.b != 0) exit(1); - if (h2.i != 0) exit(1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 2) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFFFC) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h2.b); + PK_TEST_ASSERT_EQ_EXIT(0, h2.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFC, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif pk_bkt_arr_teardown(&arr); - if (bkt_buckets->alloc_count != 0) exit(1); - if (bkt_data->alloc_count != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_data->alloc_count); } test_teardown(&bkt_buckets, &bkt_data); @@ -299,75 +339,85 @@ int main(int argc, char *argv[]) for (i = 0; i < limits.i; ++i) { handles[0][i] = pk_bkt_arr_new_handle(&arr); - if (handles[0][i].b != 0) exit(1); - if (handles[0][i].i != i) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, handles[0][i].b); + PK_TEST_ASSERT_EQ_EXIT(i, handles[0][i].i); if (i == limits.i - 1) { - if (arr.head_l.b != 1) exit(1); - if (arr.head_l.i != 0) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.i); } else { - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != i + 1) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != i + 1) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(i+1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(i+1, arr.head_r.i); } - if (arr.reserved_buckets != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(1, arr.reserved_buckets); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(1, bkt_data->alloc_count); +#endif } h1 = pk_bkt_arr_new_handle(&arr); - if (h1.b != 1) exit(1); - if (h1.i != 0) exit(1); - if (arr.head_l.b != 1) exit(1); - if (arr.head_l.i != 1) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 1) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFF00) exit(1); - if (arr.idx_unused[1] != 0xFFFFFFFFFFFFFFFE) exit(1); - if (arr.reserved_buckets != 2) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 2) exit(1); + PK_TEST_ASSERT_EQ_EXIT(1, h1.b); + PK_TEST_ASSERT_EQ_EXIT(0, h1.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFF00, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFE, arr.idx_unused[1]); + PK_TEST_ASSERT_EQ_EXIT(2, arr.reserved_buckets); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_data->alloc_count); +#endif h1 = pk_bkt_arr_new_handle(&arr); - if (h1.b != 1) exit(1); - if (h1.i != 1) exit(1); - if (arr.head_l.b != 1) exit(1); - if (arr.head_l.i != 2) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFF00) exit(1); - if (arr.idx_unused[1] != 0xFFFFFFFFFFFFFFFC) exit(1); - if (arr.reserved_buckets != 2) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 2) exit(1); + PK_TEST_ASSERT_EQ_EXIT(1, h1.b); + PK_TEST_ASSERT_EQ_EXIT(1, h1.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFF00, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFC, arr.idx_unused[1]); + PK_TEST_ASSERT_EQ_EXIT(2, arr.reserved_buckets); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_data->alloc_count); +#endif h1.b = 0; h1.i = 3; pk_bkt_arr_free_handle(&arr, h1); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 3) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFF08) exit(1); - if (arr.idx_unused[1] != 0xFFFFFFFFFFFFFFFC) exit(1); - if (arr.reserved_buckets != 2) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 2) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(3, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFF08, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFC, arr.idx_unused[1]); + PK_TEST_ASSERT_EQ_EXIT(2, arr.reserved_buckets); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_data->alloc_count); +#endif h2 = pk_bkt_arr_new_handle(&arr); - if (h2.b != 0) exit(1); - if (h2.i != 3) exit(1); - if (arr.head_l.b != 1) exit(1); - if (arr.head_l.i != 2) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFF00) exit(1); - if (arr.idx_unused[1] != 0xFFFFFFFFFFFFFFFC) exit(1); - if (arr.reserved_buckets != 2) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 2) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, h2.b); + PK_TEST_ASSERT_EQ_EXIT(3, h2.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFF00, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFC, arr.idx_unused[1]); + PK_TEST_ASSERT_EQ_EXIT(2, arr.reserved_buckets); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_data->alloc_count); +#endif h1.b = 1; h1.i = 0; @@ -375,32 +425,36 @@ int main(int argc, char *argv[]) h2.i = 1; pk_bkt_arr_free_handle(&arr, h1); pk_bkt_arr_free_handle(&arr, h2); - if (arr.head_l.b != 1) exit(1); - if (arr.head_l.i != 0) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFF00) exit(1); - if (arr.idx_unused[1] != 0xFFFFFFFFFFFFFFFF) exit(1); - if (arr.reserved_buckets != 2) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 2) exit(1); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(0, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFF00, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFF, arr.idx_unused[1]); + PK_TEST_ASSERT_EQ_EXIT(2, arr.reserved_buckets); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_data->alloc_count); +#endif h2 = pk_bkt_arr_new_handle(&arr); - if (h2.b != 1) exit(1); - if (h2.i != 0) exit(1); - if (arr.head_l.b != 1) exit(1); - if (arr.head_l.i != 1) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 2) exit(1); - if (arr.idx_unused[0] != 0xFFFFFFFFFFFFFF00) exit(1); - if (arr.idx_unused[1] != 0xFFFFFFFFFFFFFFFE) exit(1); - if (arr.reserved_buckets != 2) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 2) exit(1); + PK_TEST_ASSERT_EQ_EXIT(1, h2.b); + PK_TEST_ASSERT_EQ_EXIT(0, h2.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(2, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFF00, arr.idx_unused[0]); + PK_TEST_ASSERT_EQ_EXIT(0xFFFFFFFFFFFFFFFE, arr.idx_unused[1]); + PK_TEST_ASSERT_EQ_EXIT(2, arr.reserved_buckets); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_data->alloc_count); +#endif pk_bkt_arr_teardown(&arr); - if (bkt_buckets->alloc_count != 0) exit(1); - if (bkt_data->alloc_count != 0) exit(1); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(0, bkt_data->alloc_count); } test_teardown(&bkt_buckets, &bkt_data); @@ -425,6 +479,7 @@ int main(int argc, char *argv[]) if (expected_exit == true && caught == true) { expected_exit = false; caught = false; + pk_bkt_arr_teardown(&arr); PK_LOGV_INF("%s: successfully caught err.\n", __FILE__); fflush(stdout); fflush(stderr); @@ -441,32 +496,20 @@ int main(int argc, char *argv[]) handles[b][i] = pk_bkt_arr_new_handle(&arr); } } - if (arr.head_l.b != 1) exit(1); - if (arr.head_l.i != 7) exit(1); - if (arr.head_r.b != 1) exit(1); - if (arr.head_r.i != 7) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 2) exit(1); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_l.b); + PK_TEST_ASSERT_EQ_EXIT(7, arr.head_l.i); + PK_TEST_ASSERT_EQ_EXIT(1, arr.head_r.b); + PK_TEST_ASSERT_EQ_EXIT(7, arr.head_r.i); +#ifndef PK_MEMORY_FORCE_MALLOC + PK_TEST_ASSERT_EQ_EXIT(2, bkt_buckets->alloc_count); + PK_TEST_ASSERT_EQ_EXIT(2, bkt_data->alloc_count); +#endif expected_exit = true; caught = false; struct pk_bkt_arr_handle h = pk_bkt_arr_new_handle(&arr); (void)h; exit(1); - - /* - pk_bkt_arr_free_handle(&arr, h); - if (arr.head_l.b != 0) exit(1); - if (arr.head_l.i != 0) exit(1); - if (arr.head_r.b != 0) exit(1); - if (arr.head_r.i != 1) exit(1); - if (bkt_buckets->alloc_count != 2) exit(1); - if (bkt_data->alloc_count != 1) exit(1); - - pk_bkt_arr_teardown(&arr); - if (bkt_buckets->alloc_count != 0) exit(1); - if (bkt_data->alloc_count != 0) exit(1); - */ } while (false); test_teardown(&bkt_buckets, &bkt_data); @@ -503,27 +546,27 @@ int main(int argc, char *argv[]) struct pk_iter it; b = pk_bkt_arr_iter_begin(&arr, &it); - if (b == false) exit(1); - if (it.data == nullptr) exit(1); - if (it.id.bkt.b != 0) exit(1); - if (it.id.bkt.i != 1) exit(1); - if (*(uint8_t*)it.data != 1) exit(1); + PK_TEST_ASSERT_NEQ_EXIT(false, b); + PK_TEST_ASSERT_NEQ_EXIT(nullptr, it.data); + PK_TEST_ASSERT_EQ_EXIT(0, it.id.bkt.b); + PK_TEST_ASSERT_EQ_EXIT(1, it.id.bkt.i); + PK_TEST_ASSERT_EQ_EXIT(1, *(uint8_t*)it.data); fprintf(stdout, "it.data: %p, val: %i\n", it.data, *(uint8_t*)it.data); b = pk_bkt_arr_iter_increment(&arr, &it); - if (b == false) exit(1); - if (it.data == nullptr) exit(1); - if (it.id.bkt.b != 0) exit(1); - if (it.id.bkt.i != 3) exit(1); - if (*(uint8_t*)it.data != 3) exit(1); + PK_TEST_ASSERT_NEQ_EXIT(false, b); + PK_TEST_ASSERT_NEQ_EXIT(nullptr, it.data); + PK_TEST_ASSERT_EQ_EXIT(0, it.id.bkt.b); + PK_TEST_ASSERT_EQ_EXIT(3, it.id.bkt.i); + PK_TEST_ASSERT_EQ_EXIT(3, *(uint8_t*)it.data); fprintf(stdout, "it.data: %p, val: %i\n", it.data, *(uint8_t*)it.data); b = pk_bkt_arr_iter_increment(&arr, &it); - if (b == false) exit(1); - if (it.data == nullptr) exit(1); - if (it.id.bkt.b != 0) exit(1); - if (it.id.bkt.i != 4) exit(1); - if (*(uint8_t*)it.data != 4) exit(1); + PK_TEST_ASSERT_NEQ_EXIT(false, b); + PK_TEST_ASSERT_NEQ_EXIT(nullptr, it.data); + PK_TEST_ASSERT_EQ_EXIT(0, it.id.bkt.b); + PK_TEST_ASSERT_EQ_EXIT(4, it.id.bkt.i); + PK_TEST_ASSERT_EQ_EXIT(4, *(uint8_t*)it.data); fprintf(stdout, "it.data: %p, val: %i\n", it.data, *(uint8_t*)it.data); b = pk_bkt_arr_iter_increment(&arr, &it); |
