diff options
Diffstat (limited to 'test/pkmem.cpp')
| -rw-r--r-- | test/pkmem.cpp | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/test/pkmem.cpp b/test/pkmem.cpp index 3a2b425..52b393b 100644 --- a/test/pkmem.cpp +++ b/test/pkmem.cpp @@ -71,7 +71,7 @@ class FreeTest01 : public FreeTest { [19-31] (13) memblock [ 32 ] ( 1) ptr2 [33-63] (31) memblock - [ 64 ] ( 1) ptr2 + [ 64 ] ( 1) ptr1 [ 65 ] ( 0) HEAD */ class FreeTest02 : public FreeTest { @@ -455,12 +455,16 @@ int main(int argc, char *argv[]) FreeTest02 ft{}; ft.ensureState(); + pk_mem_assert(3 == ft.bkt->alloc_count); + pk_mem_assert(3 == ft.bkt->debug_head_l); + pk_mem_assert(3 == ft.bkt->debug_head_r); + /* fill everything, then allocate [65], moving HEAD [00-18] (19) ptr0 [19-31] (13) ptr3 [ 32 ] ( 1) ptr2 [33-63] (31) ptr4 - [ 64 ] ( 1) ptr2 + [ 64 ] ( 1) ptr1 [ 65 ] ( 1) ptr5 [ 66 ] ( 0) HEAD */ @@ -468,6 +472,10 @@ int main(int argc, char *argv[]) void *ptr4 = pk_new(31, 1, ft.bkt); void *ptr5 = pk_new( 1, 1, ft.bkt); + pk_mem_assert(6 == ft.bkt->alloc_count); + pk_mem_assert(6 == ft.bkt->debug_head_l); + pk_mem_assert(6 == ft.bkt->debug_head_r); + fprintf(stdout, "block_head_r: %u\n", ft.bkt->block_head_r); pk_mem_assert(0 == ft.bkt->block_head_r); fprintf(stdout, "head : %li\n", ft.bkt->head); @@ -491,13 +499,17 @@ int main(int argc, char *argv[]) [19-31] (13) memblock [ 32 ] ( 1) ptr2 [33-63] (31) ptr4 - [ 64 ] ( 1) ptr2 + [ 64 ] ( 1) ptr1 [ 65 ] ( 0) ptr5 [ 66 ] ( 0) HEAD */ pk_delete(ptr3, 13, ft.bkt); ptr3 = nullptr; + pk_mem_assert(5 == ft.bkt->alloc_count); + pk_mem_assert(3 == ft.bkt->debug_head_l); + pk_mem_assert(6 == ft.bkt->debug_head_r); + fprintf(stdout, "block_head_r: %u\n", ft.bkt->block_head_r); pk_mem_assert(1 == ft.bkt->block_head_r); fprintf(stdout, "head : %li\n", ft.bkt->head); @@ -522,12 +534,20 @@ int main(int argc, char *argv[]) pk_mem_assert(13 == ft.bkt->blocks[15].size); /* free [32] which gets absorbed into 19-32 + [00-18] (19) ptr0 [19-32] (13) memblock [33-63] (31) ptr4 + [ 64 ] ( 1) ptr1 + [ 65 ] ( 0) ptr5 + [ 66 ] ( 0) HEAD */ pk_delete(ft.ptrs[2], ft.sz[2], ft.bkt); ft.ptrs[2] = nullptr; + pk_mem_assert(4 == ft.bkt->alloc_count); + pk_mem_assert(2 == ft.bkt->debug_head_l); + pk_mem_assert(6 == ft.bkt->debug_head_r); + fprintf(stdout, "block_head_r: %u\n", ft.bkt->block_head_r); pk_mem_assert(1 == ft.bkt->block_head_r); fprintf(stdout, "head : %li\n", ft.bkt->head); |
