test: page_insert and page_get

This commit is contained in:
paulhorn
2026-06-27 11:51:22 +02:00
parent 6829a98c90
commit a1d70cde59
+49
View File
@@ -8,6 +8,7 @@
#include <assert.h>
#include <stdio.h>
#include <string.h>
static void
test_create_returns_non_null(void)
@@ -28,12 +29,60 @@ test_insert_returns_slot_id(void)
printf(" OK: Insert\n");
}
static void
test_insert_and_get(void)
{
Page * p = page_create(1);
int slot = page_insert(p, "ABAP", 4);
assert(slot == 0);
size_t len = 0;
void * result = page_get(p, 0, &len);
assert(result != NULL);
assert(len == 4);
assert(memcmp(result, "ABAP", 4) == 0);
page_free(p);
printf(" OK: insert + get roundtrip\n");
}
static void
test_multiple_inserts(void)
{
Page * p = page_create(2);
assert(page_insert(p, "ABAP", 4) == 0);
assert(page_insert(p, "HANA", 4) == 1);
assert(page_insert(p, "CDS", 3) == 2);
size_t len = 0;
assert(memcmp(page_get(p, 0, &len), "ABAP", 4) == 0);
assert(memcmp(page_get(p, 1, &len), "HANA", 4) == 0);
assert(memcmp(page_get(p, 2, &len), "CDS", 3) == 0);
page_free(p);
printf(" OK: multiple inserts\n");
}
static void
test_invalid_slot_returns_null(void)
{
Page * p = page_create(3);
assert(page_get(p, 99, NULL) == NULL);
page_free(p);
printf(" OK: invalid slot returns NULL\n");
}
int
main(void)
{
printf("=== test_page ===\n");
test_create_returns_non_null();
test_insert_returns_slot_id();
test_insert_and_get();
test_multiple_inserts();
test_invalid_slot_returns_null();
printf("All tests passed.\n");
return 0;
}