xref: /lighttpd1.4/src/t/test_array.c (revision 66ff05db)
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