summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-27 12:03:52 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-27 12:03:52 -0400
commit9a7a7555c313fead21b31a82c2174da57aea3bc8 (patch)
treefacb21ee625a0fa535a1985b7306fca9eca87fe0 /test
parentbef2087b4a68a6ac13a48020828bf95bbbad54f1 (diff)
pkbktarr: add pk_bkt_arr_clear
Diffstat (limited to 'test')
-rw-r--r--test/pkbktarr.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/pkbktarr.c b/test/pkbktarr.c
index 529c51b..1750359 100644
--- a/test/pkbktarr.c
+++ b/test/pkbktarr.c
@@ -125,6 +125,51 @@ int main(int argc, char *argv[])
}
test_teardown(&bkt_buckets, &bkt_data);
+ // test clear
+ test_spinup(&bkt_buckets, &bkt_data);
+ {
+ assert(bkt_buckets != nullptr);
+ assert(bkt_data != nullptr);
+ struct pk_bkt_arr arr = {0};
+ struct pk_bkt_arr_handle limits;
+ limits.b = PK_BKT_ARR_HANDLE_B_MAX;
+ limits.i = PK_BKT_ARR_HANDLE_I_MAX;
+ pk_bkt_arr_init(&arr, sizeof(int), alignof(int), limits, 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->allocs != 2) exit(1);
+ if (bkt_data->allocs != 1) exit(1);
+
+ 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->allocs != 2) exit(1);
+ if (bkt_data->allocs != 1) exit(1);
+
+ 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->allocs != 2) exit(1);
+ if (bkt_data->allocs != 1) exit(1);
+
+ pk_bkt_arr_teardown(&arr);
+ if (bkt_buckets->allocs != 0) exit(1);
+ if (bkt_data->allocs != 0) exit(1);
+ }
+ test_teardown(&bkt_buckets, &bkt_data);
+
// test release & re-use slot
test_spinup(&bkt_buckets, &bkt_data);
{