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