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_insert_value (void) { 11 data_string *ds; 12 array *a = array_init(); 13 14 array_insert_value(a, CONST_STR_LEN("def")); 15 ds = (data_string *)a->data[0]; 16 assert(NULL != ds); 17 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("def"))); 18 19 array_free(a); 20 } 21 22 static void test_array_insert_key_value (void) { 23 data_string *ds; 24 array *a = array_init(); 25 26 array_insert_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("alfrag")); 27 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 28 assert(NULL == ds); 29 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 30 assert(NULL != ds); 31 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 32 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("alfrag"))); 33 34 array_insert_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("hameplman")); 35 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 36 assert(NULL == ds); 37 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 38 assert(NULL != ds); 39 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 40 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("alfrag, hameplman"))); 41 42 array_insert_key_value(a, CONST_STR_LEN("123"), CONST_STR_LEN("alfrag")); 43 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 44 assert(NULL == ds); 45 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("123")); 46 assert(NULL != ds); 47 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("123"))); 48 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("alfrag"))); 49 50 array_free(a); 51 } 52 53 static void test_array_set_key_value (void) { 54 data_string *ds; 55 array *a = array_init(); 56 57 array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("def")); 58 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 59 assert(NULL == ds); 60 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 61 assert(NULL != ds); 62 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 63 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("def"))); 64 65 array_set_key_value(a, CONST_STR_LEN("abc"), CONST_STR_LEN("ghi")); 66 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("does-not-exist")); 67 assert(NULL == ds); 68 ds = (data_string *)array_get_element_klen(a, CONST_STR_LEN("abc")); 69 assert(NULL != ds); 70 assert(buffer_is_equal_string(ds->key, CONST_STR_LEN("abc"))); 71 assert(buffer_is_equal_string(ds->value, CONST_STR_LEN("ghi"))); 72 73 array_free(a); 74 } 75 76 int main() { 77 test_array_insert_value(); 78 test_array_insert_key_value(); 79 test_array_set_key_value(); 80 81 return 0; 82 } 83