1 #include "first.h" 2 3 #undef NDEBUG 4 #include <assert.h> 5 #include <stdio.h> 6 #include <stdlib.h> 7 8 #include "array.h" 9 #include "buffer.h" 10 11 static void test_array_get_int_ptr (void) { 12 data_integer *di; 13 int *i; 14 array *a = array_init(); 15 16 i = array_get_int_ptr(a, CONST_STR_LEN("abc")); 17 assert(NULL != i); 18 *i = 4; 19 i = array_get_int_ptr(a, CONST_STR_LEN("abc")); 20 assert(NULL != i); 21 assert(*i == 4); 22 di = (data_integer *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 23 assert(NULL == di); 24 di = (data_integer *)array_get_element_klen(a, CONST_STR_LEN("abc")); 25 assert(NULL != di); 26 assert(di->value == 4); 27 28 array_free(a); 29 } 30 31 static void test_array_insert_value (void) { 32 data_string *ds; 33 array *a = array_init(); 34 35 array_insert_value(a, CONST_STR_LEN("def")); 36 ds = (data_string *)a->data[0]; 37 assert(NULL != ds); 38 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("def"))); 39 40 array_free(a); 41 } 42 43 static void test_array_set_key_value (void) { 44 data_string *ds; 45 array *a = array_init(); 46 47 array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("def")); 48 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 49 assert(NULL == ds); 50 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 51 assert(NULL != ds); 52 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 53 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("def"))); 54 55 array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("ghi")); 56 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 57 assert(NULL == ds); 58 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 59 assert(NULL != ds); 60 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 61 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("ghi"))); 62 63 array_free(a); 64 } 65 66 int main() { 67 test_array_get_int_ptr(); 68 test_array_insert_value(); 69 test_array_set_key_value(); 70 71 return 0; 72 } 73