summaryrefslogtreecommitdiff
path: root/test/pkmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/pkmem.c')
-rw-r--r--test/pkmem.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/pkmem.c b/test/pkmem.c
index 5ec2643..ad95899 100644
--- a/test/pkmem.c
+++ b/test/pkmem.c
@@ -73,5 +73,45 @@ int main(int argc, char *argv[])
teardown();
}
+ // expand buckets
+ {
+ spinup_w_instr();
+
+ struct pk_memblock *blk;
+
+ for (size_t i = 0; i < 16; ++i) {
+ pk_new_bkt(7, 8, mt.bkt1);
+ }
+
+ blk = mt.bkt1->blocks;
+
+ if (mt.bkt1->alloc_count != 16) exit(1);
+ if (mt.bkt1->head != (8*16)-1) exit(1);
+ if (mt.bkt1->block_head_r != 15) exit(1);
+ if (mt.bkt1->block_capacity != 16) exit(1);
+ if (mt.bkt1->blocks != blk) exit(1);
+
+ pk_new_bkt(7, 8, mt.bkt1);
+
+ if (mt.bkt1->alloc_count != 17) exit(1);
+ if (mt.bkt1->head != (8*17)-1) exit(1);
+ if (mt.bkt1->block_head_r != 16) exit(1);
+ if (mt.bkt1->block_capacity != 17) exit(1);
+ if (mt.bkt1->blocks == blk) exit(1);
+
+ blk = mt.bkt1->blocks;
+
+ pk_new_bkt(7, 8, mt.bkt1);
+
+ if (mt.bkt1->alloc_count != 18) exit(1);
+ if (mt.bkt1->head != (8*18)-1) exit(1);
+ if (mt.bkt1->block_head_r != 17) exit(1);
+ if (mt.bkt1->block_capacity != 18) exit(1);
+ if (mt.bkt1->blocks == blk) exit(1);
+
+ PK_LOGV_INF("%s: %s\n", __FILE__, "handles block growth");
+ teardown();
+ }
+
return 0;
}