166ff05dbSGlenn Strauss #include "first.h"
266ff05dbSGlenn Strauss
3c98d89a4SGlenn Strauss #undef NDEBUG
466ff05dbSGlenn Strauss #include <assert.h>
566ff05dbSGlenn Strauss #include <stdio.h>
666ff05dbSGlenn Strauss #include <stdlib.h>
766ff05dbSGlenn Strauss
8*bab0e5d0SGlenn Strauss #include "array.c"
966ff05dbSGlenn Strauss #include "buffer.h"
1066ff05dbSGlenn Strauss
test_array_get_int_ptr(void)11002a4c52SGlenn Strauss static void test_array_get_int_ptr (void) {
12002a4c52SGlenn Strauss data_integer *di;
13002a4c52SGlenn Strauss int *i;
1424680a91SGlenn Strauss array *a = array_init(0);
15002a4c52SGlenn Strauss
16002a4c52SGlenn Strauss i = array_get_int_ptr(a, CONST_STR_LEN("abc"));
17002a4c52SGlenn Strauss assert(NULL != i);
18002a4c52SGlenn Strauss *i = 4;
19002a4c52SGlenn Strauss i = array_get_int_ptr(a, CONST_STR_LEN("abc"));
20002a4c52SGlenn Strauss assert(NULL != i);
21002a4c52SGlenn Strauss assert(*i == 4);
22002a4c52SGlenn Strauss di = (data_integer *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist"));
23002a4c52SGlenn Strauss assert(NULL == di);
24002a4c52SGlenn Strauss di = (data_integer *)array_get_element_klen(a, CONST_STR_LEN("abc"));
25002a4c52SGlenn Strauss assert(NULL != di);
26002a4c52SGlenn Strauss assert(di->value == 4);
27002a4c52SGlenn Strauss
28002a4c52SGlenn Strauss array_free(a);
29002a4c52SGlenn Strauss }
30002a4c52SGlenn Strauss
test_array_insert_value(void)3166ff05dbSGlenn Strauss static void test_array_insert_value (void) {
3266ff05dbSGlenn Strauss data_string *ds;
3324680a91SGlenn Strauss array *a = array_init(0);
3466ff05dbSGlenn Strauss
3566ff05dbSGlenn Strauss array_insert_value(a, CONST_STR_LEN("def"));
3666ff05dbSGlenn Strauss ds = (data_string *)a->data[0];
3766ff05dbSGlenn Strauss assert(NULL != ds);
3817e0b6feSGlenn Strauss assert(buffer_eq_slen(&ds->value, CONST_STR_LEN("def")));
3966ff05dbSGlenn Strauss
4066ff05dbSGlenn Strauss array_free(a);
4166ff05dbSGlenn Strauss }
4266ff05dbSGlenn Strauss
test_array_set_key_value(void)4366ff05dbSGlenn Strauss static void test_array_set_key_value (void) {
4466ff05dbSGlenn Strauss data_string *ds;
4524680a91SGlenn Strauss array *a = array_init(0);
4666ff05dbSGlenn Strauss
4766ff05dbSGlenn Strauss array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("def"));
4866ff05dbSGlenn Strauss ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist"));
4966ff05dbSGlenn Strauss assert(NULL == ds);
5066ff05dbSGlenn Strauss ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc"));
5166ff05dbSGlenn Strauss assert(NULL != ds);
5217e0b6feSGlenn Strauss assert(buffer_eq_slen(&ds->key, CONST_STR_LEN("abc")));
5317e0b6feSGlenn Strauss assert(buffer_eq_slen(&ds->value, CONST_STR_LEN("def")));
5466ff05dbSGlenn Strauss
5566ff05dbSGlenn Strauss array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("ghi"));
5666ff05dbSGlenn Strauss ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist"));
5766ff05dbSGlenn Strauss assert(NULL == ds);
5866ff05dbSGlenn Strauss ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc"));
5966ff05dbSGlenn Strauss assert(NULL != ds);
6017e0b6feSGlenn Strauss assert(buffer_eq_slen(&ds->key, CONST_STR_LEN("abc")));
6117e0b6feSGlenn Strauss assert(buffer_eq_slen(&ds->value, CONST_STR_LEN("ghi")));
6266ff05dbSGlenn Strauss
6366ff05dbSGlenn Strauss array_free(a);
6466ff05dbSGlenn Strauss }
6566ff05dbSGlenn Strauss
66*bab0e5d0SGlenn Strauss void test_array (void);
test_array(void)67*bab0e5d0SGlenn Strauss void test_array (void)
68*bab0e5d0SGlenn Strauss {
69002a4c52SGlenn Strauss test_array_get_int_ptr();
7066ff05dbSGlenn Strauss test_array_insert_value();
7166ff05dbSGlenn Strauss test_array_set_key_value();
7266ff05dbSGlenn Strauss }
73