diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-04 20:44:40 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-04 20:44:40 -0400 |
| commit | 54c3fbaaf3e10c4b9aa15f3d32864b0ebfc06eee (patch) | |
| tree | 87aee2f8f4bbb0b32c55e63b5dcad5a0e4a8b6cd | |
| parent | 15518175c10b9bf18b21dac0a5b3d6472b525968 (diff) | |
pkmem: add test for growing block_capacity
| -rw-r--r-- | test/pkmem.c | 40 |
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; } |
