1 #include "first.h" 2 3 #include <assert.h> 4 #include <stdio.h> 5 #include <stdlib.h> 6 7 #include "array.h" 8 #include "buffer.h" 9 10 static void test_array_get_int_ptr (void) { 11 data_integer *di; 12 int *i; 13 array *a = array_init(); 14 15 i = array_get_int_ptr(a, CONST_STR_LEN("abc")); 16 assert(NULL != i); 17 *i = 4; 18 i = array_get_int_ptr(a, CONST_STR_LEN("abc")); 19 assert(NULL != i); 20 assert(*i == 4); 21 di = (data_integer *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 22 assert(NULL == di); 23 di = (data_integer *)array_get_element_klen(a, CONST_STR_LEN("abc")); 24 assert(NULL != di); 25 assert(di->value == 4); 26 27 array_free(a); 28 } 29 30 static void test_array_insert_value (void) { 31 data_string *ds; 32 array *a = array_init(); 33 34 array_insert_value(a, CONST_STR_LEN("def")); 35 ds = (data_string *)a->data[0]; 36 assert(NULL != ds); 37 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("def"))); 38 39 array_free(a); 40 } 41 42 static void test_array_insert_key_value (void) { 43 data_string *ds; 44 array *a = array_init(); 45 46 array_insert_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("alfrag")); 47 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 48 assert(NULL == ds); 49 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 50 assert(NULL != ds); 51 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 52 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("alfrag"))); 53 54 array_insert_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("hameplman")); 55 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 56 assert(NULL == ds); 57 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 58 assert(NULL != ds); 59 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 60 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("alfrag, hameplman"))); 61 62 array_insert_key_value(a, CONST_STR_LEN("123"), CONST_STR_LEN("alfrag")); 63 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 64 assert(NULL == ds); 65 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("123")); 66 assert(NULL != ds); 67 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("123"))); 68 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("alfrag"))); 69 70 array_free(a); 71 } 72 73 static void test_array_set_key_value (void) { 74 data_string *ds; 75 array *a = array_init(); 76 77 array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("def")); 78 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 79 assert(NULL == ds); 80 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 81 assert(NULL != ds); 82 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 83 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("def"))); 84 85 array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("ghi")); 86 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 87 assert(NULL == ds); 88 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 89 assert(NULL != ds); 90 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 91 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("ghi"))); 92 93 array_free(a); 94 } 95 96 int main() { 97 test_array_get_int_ptr(); 98 test_array_insert_value(); 99 test_array_insert_key_value(); 100 test_array_set_key_value(); 101 102 return 0; 103 } 104