diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-11-14 13:27:30 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-11-14 13:27:30 -0500 |
| commit | b2fd1ffdf4e173a8b2920663bd8e1e2f478cc0b3 (patch) | |
| tree | 55cfe64af58efc66850aa772da44eb552908bceb /test | |
| parent | fce5a4841f725cecaae5925b0e63144c24e5dc81 (diff) | |
pkmem: clear dbg and use mtx on delete
Diffstat (limited to 'test')
| -rw-r--r-- | test/pkmem.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/pkmem.c b/test/pkmem.c index b6826a2..2073459 100644 --- a/test/pkmem.c +++ b/test/pkmem.c @@ -1,6 +1,21 @@ #include "../pkmem.h" +struct mem_test { + struct pk_membucket *bkt1; + struct pk_membucket *bkt2; +} mt; + +void spinup() { + mt.bkt1 = pk_bucket_create("bkt1", 1024, false); + mt.bkt2 = pk_bucket_create("bkt2", 1024, false); +} + +void teardown() { + pk_bucket_destroy(mt.bkt1); + pk_bucket_destroy(mt.bkt2); +} + int main(int argc, char *argv[]) { (void)argc; @@ -8,9 +23,39 @@ int main(int argc, char *argv[]) // pk_new_base { + spinup(); char *some_dang_string = (char*)pk_new_base(64, alignof(char*)); fprintf(stdout, "some_dang_string: %p\n", some_dang_string); pk_delete_base(some_dang_string, 64); + teardown(); + } + + /* template + { + spinup(); + teardown(); + } + */ + + // zero-length alloc + { + spinup(); + char *zero_length_string; + char *three_length_string; + + zero_length_string = pk_new_bkt(0, 0, mt.bkt1); + three_length_string = pk_new_bkt(3, 0, mt.bkt1); + three_length_string[0] = '1'; + three_length_string[1] = '2'; + + if (zero_length_string != NULL) exit(1); + if (strlen(three_length_string) != 2) exit(1); + if (mt.bkt1->allocs != 1) exit(1); + if (mt.bkt1->head != 3) exit(1); + if (mt.bkt1->lastEmptyBlockIndex != 0) exit(1); + + PK_LOGV_INF("%s: %s\n", __FILE__, "handles zero-length alloc"); + teardown(); } return 0; |
