Files
Ensifer/test/enfilade-test.c
T
2026-09-30 19:27:45 -04:00

62 lines
1.6 KiB
C

#include "enfilade.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
static void get_values(enfilade_t *e, const char *address,
void ***items, size_t *count)
{
enf_result_t r = getXtumbler_values_enfilade(e, address, items, count);
assert(r.code == ENF_OK);
}
int main(void)
{
enfilade_t *e = create_enfilade();
int a = 41, b = 42, c = 43, d = 99;
void **items = NULL;
size_t count = 0;
enf_result_t r;
assert(e);
assert(put_enfilade(e, "1.2.3", &a).code == ENF_OK);
assert(put_enfilade(e, "1.2.4", &b).code == ENF_OK);
assert(put_enfilade(e, "1.2.5", &c).code == ENF_OK);
assert(put_enfilade(e, "1.2", &d).code == ENF_OK);
get_values(e, "1.2", &items, &count);
assert(count == 4);
assert(*(int *)items[0] == 99);
assert(*(int *)items[1] == 41);
assert(*(int *)items[2] == 42);
assert(*(int *)items[3] == 43);
free(items);
assert(getXtumbler_enfilade(e, "1.2.4") == &b);
r = remove_enfilade(e, "1.2");
assert(r.code == ENF_OK);
get_values(e, "1.2", &items, &count);
assert(count == 3);
assert(*(int *)items[0] == 41);
free(items);
r = remove_enfilade(e, "1.2.3");
assert(r.code == ENF_OK);
assert(getXtumbler_enfilade(e, "1.2.3") == NULL);
assert(getXtumbler_enfilade(e, "1.2.4") == &b);
r = remove_enfilade(e, "1.2.3");
assert(r.code == ENF_ERR_NOT_FOUND);
assert(put_enfilade(e, "9.9.9", &a).code == ENF_OK);
assert(remove_enfilade(e, "9.9.9").code == ENF_OK);
assert(getXtumbler_enfilade(e, "9.9") == NULL);
destroy_enfilade(e);
puts("enfilade tests: ok");
return 0;
}