62 lines
1.6 KiB
C
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;
|
|
}
|