root / tests / check-qdict.c @ 29926112
History | View | Annotate | Download (8.4 kB)
1 | 7b8c51ad | Luiz Capitulino | /*
|
---|---|---|---|
2 | 7b8c51ad | Luiz Capitulino | * QDict unit-tests.
|
3 | 7b8c51ad | Luiz Capitulino | *
|
4 | 7b8c51ad | Luiz Capitulino | * Copyright (C) 2009 Red Hat Inc.
|
5 | 7b8c51ad | Luiz Capitulino | *
|
6 | 7b8c51ad | Luiz Capitulino | * Authors:
|
7 | 7b8c51ad | Luiz Capitulino | * Luiz Capitulino <lcapitulino@redhat.com>
|
8 | 41836a9f | Luiz Capitulino | *
|
9 | 41836a9f | Luiz Capitulino | * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
|
10 | 41836a9f | Luiz Capitulino | * See the COPYING.LIB file in the top-level directory.
|
11 | 7b8c51ad | Luiz Capitulino | */
|
12 | ac531cb6 | Anthony Liguori | #include <glib.h> |
13 | 7b8c51ad | Luiz Capitulino | |
14 | 7b8c51ad | Luiz Capitulino | #include "qint.h" |
15 | 7b8c51ad | Luiz Capitulino | #include "qdict.h" |
16 | 7b8c51ad | Luiz Capitulino | #include "qstring.h" |
17 | 7b8c51ad | Luiz Capitulino | #include "qemu-common.h" |
18 | 7b8c51ad | Luiz Capitulino | |
19 | 7b8c51ad | Luiz Capitulino | /*
|
20 | 7b8c51ad | Luiz Capitulino | * Public Interface test-cases
|
21 | 7b8c51ad | Luiz Capitulino | *
|
22 | 7b8c51ad | Luiz Capitulino | * (with some violations to access 'private' data)
|
23 | 7b8c51ad | Luiz Capitulino | */
|
24 | 7b8c51ad | Luiz Capitulino | |
25 | ac531cb6 | Anthony Liguori | static void qdict_new_test(void) |
26 | 7b8c51ad | Luiz Capitulino | { |
27 | 7b8c51ad | Luiz Capitulino | QDict *qdict; |
28 | 7b8c51ad | Luiz Capitulino | |
29 | 7b8c51ad | Luiz Capitulino | qdict = qdict_new(); |
30 | ac531cb6 | Anthony Liguori | g_assert(qdict != NULL);
|
31 | ac531cb6 | Anthony Liguori | g_assert(qdict_size(qdict) == 0);
|
32 | ac531cb6 | Anthony Liguori | g_assert(qdict->base.refcnt == 1);
|
33 | ac531cb6 | Anthony Liguori | g_assert(qobject_type(QOBJECT(qdict)) == QTYPE_QDICT); |
34 | 7b8c51ad | Luiz Capitulino | |
35 | 7b8c51ad | Luiz Capitulino | // destroy doesn't exit yet
|
36 | ac531cb6 | Anthony Liguori | g_free(qdict); |
37 | 7b8c51ad | Luiz Capitulino | } |
38 | 7b8c51ad | Luiz Capitulino | |
39 | ac531cb6 | Anthony Liguori | static void qdict_put_obj_test(void) |
40 | 7b8c51ad | Luiz Capitulino | { |
41 | 7b8c51ad | Luiz Capitulino | QInt *qi; |
42 | 7b8c51ad | Luiz Capitulino | QDict *qdict; |
43 | 7b8c51ad | Luiz Capitulino | QDictEntry *ent; |
44 | 7b8c51ad | Luiz Capitulino | const int num = 42; |
45 | 7b8c51ad | Luiz Capitulino | |
46 | 7b8c51ad | Luiz Capitulino | qdict = qdict_new(); |
47 | 7b8c51ad | Luiz Capitulino | |
48 | 7b8c51ad | Luiz Capitulino | // key "" will have tdb hash 12345
|
49 | 7b8c51ad | Luiz Capitulino | qdict_put_obj(qdict, "", QOBJECT(qint_from_int(num)));
|
50 | 7b8c51ad | Luiz Capitulino | |
51 | ac531cb6 | Anthony Liguori | g_assert(qdict_size(qdict) == 1);
|
52 | c8bc3cd7 | Luiz Capitulino | ent = QLIST_FIRST(&qdict->table[12345 % QDICT_BUCKET_MAX]);
|
53 | 7b8c51ad | Luiz Capitulino | qi = qobject_to_qint(ent->value); |
54 | ac531cb6 | Anthony Liguori | g_assert(qint_get_int(qi) == num); |
55 | 7b8c51ad | Luiz Capitulino | |
56 | 7b8c51ad | Luiz Capitulino | // destroy doesn't exit yet
|
57 | 7b8c51ad | Luiz Capitulino | QDECREF(qi); |
58 | 7267c094 | Anthony Liguori | g_free(ent->key); |
59 | 7267c094 | Anthony Liguori | g_free(ent); |
60 | 7267c094 | Anthony Liguori | g_free(qdict); |
61 | 7b8c51ad | Luiz Capitulino | } |
62 | 7b8c51ad | Luiz Capitulino | |
63 | ac531cb6 | Anthony Liguori | static void qdict_destroy_simple_test(void) |
64 | 7b8c51ad | Luiz Capitulino | { |
65 | 7b8c51ad | Luiz Capitulino | QDict *qdict; |
66 | 7b8c51ad | Luiz Capitulino | |
67 | 7b8c51ad | Luiz Capitulino | qdict = qdict_new(); |
68 | 7b8c51ad | Luiz Capitulino | qdict_put_obj(qdict, "num", QOBJECT(qint_from_int(0))); |
69 | 7b8c51ad | Luiz Capitulino | qdict_put_obj(qdict, "str", QOBJECT(qstring_from_str("foo"))); |
70 | 7b8c51ad | Luiz Capitulino | |
71 | 7b8c51ad | Luiz Capitulino | QDECREF(qdict); |
72 | 7b8c51ad | Luiz Capitulino | } |
73 | 7b8c51ad | Luiz Capitulino | |
74 | ac531cb6 | Anthony Liguori | static void qdict_get_test(void) |
75 | 7b8c51ad | Luiz Capitulino | { |
76 | 7b8c51ad | Luiz Capitulino | QInt *qi; |
77 | 7b8c51ad | Luiz Capitulino | QObject *obj; |
78 | 7b8c51ad | Luiz Capitulino | const int value = -42; |
79 | 7b8c51ad | Luiz Capitulino | const char *key = "test"; |
80 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
81 | 7b8c51ad | Luiz Capitulino | |
82 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qint_from_int(value)); |
83 | 7b8c51ad | Luiz Capitulino | |
84 | 7b8c51ad | Luiz Capitulino | obj = qdict_get(tests_dict, key); |
85 | ac531cb6 | Anthony Liguori | g_assert(obj != NULL);
|
86 | 7b8c51ad | Luiz Capitulino | |
87 | 7b8c51ad | Luiz Capitulino | qi = qobject_to_qint(obj); |
88 | ac531cb6 | Anthony Liguori | g_assert(qint_get_int(qi) == value); |
89 | ac531cb6 | Anthony Liguori | |
90 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
91 | 7b8c51ad | Luiz Capitulino | } |
92 | 7b8c51ad | Luiz Capitulino | |
93 | ac531cb6 | Anthony Liguori | static void qdict_get_int_test(void) |
94 | 7b8c51ad | Luiz Capitulino | { |
95 | 7b8c51ad | Luiz Capitulino | int ret;
|
96 | 7b8c51ad | Luiz Capitulino | const int value = 100; |
97 | 7b8c51ad | Luiz Capitulino | const char *key = "int"; |
98 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
99 | 7b8c51ad | Luiz Capitulino | |
100 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qint_from_int(value)); |
101 | 7b8c51ad | Luiz Capitulino | |
102 | 7b8c51ad | Luiz Capitulino | ret = qdict_get_int(tests_dict, key); |
103 | ac531cb6 | Anthony Liguori | g_assert(ret == value); |
104 | ac531cb6 | Anthony Liguori | |
105 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
106 | 7b8c51ad | Luiz Capitulino | } |
107 | 7b8c51ad | Luiz Capitulino | |
108 | ac531cb6 | Anthony Liguori | static void qdict_get_try_int_test(void) |
109 | 7b8c51ad | Luiz Capitulino | { |
110 | 7b8c51ad | Luiz Capitulino | int ret;
|
111 | 7b8c51ad | Luiz Capitulino | const int value = 100; |
112 | 7b8c51ad | Luiz Capitulino | const char *key = "int"; |
113 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
114 | 7b8c51ad | Luiz Capitulino | |
115 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qint_from_int(value)); |
116 | 7b8c51ad | Luiz Capitulino | |
117 | 7b8c51ad | Luiz Capitulino | ret = qdict_get_try_int(tests_dict, key, 0);
|
118 | ac531cb6 | Anthony Liguori | g_assert(ret == value); |
119 | ac531cb6 | Anthony Liguori | |
120 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
121 | 7b8c51ad | Luiz Capitulino | } |
122 | 7b8c51ad | Luiz Capitulino | |
123 | ac531cb6 | Anthony Liguori | static void qdict_get_str_test(void) |
124 | 7b8c51ad | Luiz Capitulino | { |
125 | 7b8c51ad | Luiz Capitulino | const char *p; |
126 | 7b8c51ad | Luiz Capitulino | const char *key = "key"; |
127 | 7b8c51ad | Luiz Capitulino | const char *str = "string"; |
128 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
129 | 7b8c51ad | Luiz Capitulino | |
130 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qstring_from_str(str)); |
131 | 7b8c51ad | Luiz Capitulino | |
132 | 7b8c51ad | Luiz Capitulino | p = qdict_get_str(tests_dict, key); |
133 | ac531cb6 | Anthony Liguori | g_assert(p != NULL);
|
134 | ac531cb6 | Anthony Liguori | g_assert(strcmp(p, str) == 0);
|
135 | ac531cb6 | Anthony Liguori | |
136 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
137 | 7b8c51ad | Luiz Capitulino | } |
138 | 7b8c51ad | Luiz Capitulino | |
139 | ac531cb6 | Anthony Liguori | static void qdict_get_try_str_test(void) |
140 | 7b8c51ad | Luiz Capitulino | { |
141 | 7b8c51ad | Luiz Capitulino | const char *p; |
142 | 7b8c51ad | Luiz Capitulino | const char *key = "key"; |
143 | 7b8c51ad | Luiz Capitulino | const char *str = "string"; |
144 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
145 | 7b8c51ad | Luiz Capitulino | |
146 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qstring_from_str(str)); |
147 | 7b8c51ad | Luiz Capitulino | |
148 | 7b8c51ad | Luiz Capitulino | p = qdict_get_try_str(tests_dict, key); |
149 | ac531cb6 | Anthony Liguori | g_assert(p != NULL);
|
150 | ac531cb6 | Anthony Liguori | g_assert(strcmp(p, str) == 0);
|
151 | ac531cb6 | Anthony Liguori | |
152 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
153 | 7b8c51ad | Luiz Capitulino | } |
154 | 7b8c51ad | Luiz Capitulino | |
155 | ac531cb6 | Anthony Liguori | static void qdict_haskey_not_test(void) |
156 | 7b8c51ad | Luiz Capitulino | { |
157 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
158 | ac531cb6 | Anthony Liguori | g_assert(qdict_haskey(tests_dict, "test") == 0); |
159 | ac531cb6 | Anthony Liguori | |
160 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
161 | 7b8c51ad | Luiz Capitulino | } |
162 | 7b8c51ad | Luiz Capitulino | |
163 | ac531cb6 | Anthony Liguori | static void qdict_haskey_test(void) |
164 | 7b8c51ad | Luiz Capitulino | { |
165 | 7b8c51ad | Luiz Capitulino | const char *key = "test"; |
166 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
167 | 7b8c51ad | Luiz Capitulino | |
168 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qint_from_int(0));
|
169 | ac531cb6 | Anthony Liguori | g_assert(qdict_haskey(tests_dict, key) == 1);
|
170 | ac531cb6 | Anthony Liguori | |
171 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
172 | 7b8c51ad | Luiz Capitulino | } |
173 | 7b8c51ad | Luiz Capitulino | |
174 | ac531cb6 | Anthony Liguori | static void qdict_del_test(void) |
175 | 7b8c51ad | Luiz Capitulino | { |
176 | 7b8c51ad | Luiz Capitulino | const char *key = "key test"; |
177 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
178 | 7b8c51ad | Luiz Capitulino | |
179 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qstring_from_str("foo"));
|
180 | ac531cb6 | Anthony Liguori | g_assert(qdict_size(tests_dict) == 1);
|
181 | 7b8c51ad | Luiz Capitulino | |
182 | 7b8c51ad | Luiz Capitulino | qdict_del(tests_dict, key); |
183 | 7b8c51ad | Luiz Capitulino | |
184 | ac531cb6 | Anthony Liguori | g_assert(qdict_size(tests_dict) == 0);
|
185 | ac531cb6 | Anthony Liguori | g_assert(qdict_haskey(tests_dict, key) == 0);
|
186 | ac531cb6 | Anthony Liguori | |
187 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
188 | 7b8c51ad | Luiz Capitulino | } |
189 | 7b8c51ad | Luiz Capitulino | |
190 | ac531cb6 | Anthony Liguori | static void qobject_to_qdict_test(void) |
191 | 7b8c51ad | Luiz Capitulino | { |
192 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
193 | ac531cb6 | Anthony Liguori | g_assert(qobject_to_qdict(QOBJECT(tests_dict)) == tests_dict); |
194 | ac531cb6 | Anthony Liguori | |
195 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
196 | 7b8c51ad | Luiz Capitulino | } |
197 | 7b8c51ad | Luiz Capitulino | |
198 | ac531cb6 | Anthony Liguori | static void qdict_iterapi_test(void) |
199 | d02c6bd4 | Luiz Capitulino | { |
200 | d02c6bd4 | Luiz Capitulino | int count;
|
201 | d02c6bd4 | Luiz Capitulino | const QDictEntry *ent;
|
202 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
203 | d02c6bd4 | Luiz Capitulino | |
204 | ac531cb6 | Anthony Liguori | g_assert(qdict_first(tests_dict) == NULL);
|
205 | d02c6bd4 | Luiz Capitulino | |
206 | d02c6bd4 | Luiz Capitulino | qdict_put(tests_dict, "key1", qint_from_int(1)); |
207 | d02c6bd4 | Luiz Capitulino | qdict_put(tests_dict, "key2", qint_from_int(2)); |
208 | d02c6bd4 | Luiz Capitulino | qdict_put(tests_dict, "key3", qint_from_int(3)); |
209 | d02c6bd4 | Luiz Capitulino | |
210 | d02c6bd4 | Luiz Capitulino | count = 0;
|
211 | d02c6bd4 | Luiz Capitulino | for (ent = qdict_first(tests_dict); ent; ent = qdict_next(tests_dict, ent)){
|
212 | ac531cb6 | Anthony Liguori | g_assert(qdict_haskey(tests_dict, qdict_entry_key(ent)) == 1);
|
213 | d02c6bd4 | Luiz Capitulino | count++; |
214 | d02c6bd4 | Luiz Capitulino | } |
215 | d02c6bd4 | Luiz Capitulino | |
216 | ac531cb6 | Anthony Liguori | g_assert(count == qdict_size(tests_dict)); |
217 | d02c6bd4 | Luiz Capitulino | |
218 | d02c6bd4 | Luiz Capitulino | /* Do it again to test restarting */
|
219 | d02c6bd4 | Luiz Capitulino | count = 0;
|
220 | d02c6bd4 | Luiz Capitulino | for (ent = qdict_first(tests_dict); ent; ent = qdict_next(tests_dict, ent)){
|
221 | ac531cb6 | Anthony Liguori | g_assert(qdict_haskey(tests_dict, qdict_entry_key(ent)) == 1);
|
222 | d02c6bd4 | Luiz Capitulino | count++; |
223 | d02c6bd4 | Luiz Capitulino | } |
224 | d02c6bd4 | Luiz Capitulino | |
225 | ac531cb6 | Anthony Liguori | g_assert(count == qdict_size(tests_dict)); |
226 | ac531cb6 | Anthony Liguori | |
227 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
228 | d02c6bd4 | Luiz Capitulino | } |
229 | d02c6bd4 | Luiz Capitulino | |
230 | 7b8c51ad | Luiz Capitulino | /*
|
231 | 7b8c51ad | Luiz Capitulino | * Errors test-cases
|
232 | 7b8c51ad | Luiz Capitulino | */
|
233 | 7b8c51ad | Luiz Capitulino | |
234 | ac531cb6 | Anthony Liguori | static void qdict_put_exists_test(void) |
235 | 7b8c51ad | Luiz Capitulino | { |
236 | 7b8c51ad | Luiz Capitulino | int value;
|
237 | 7b8c51ad | Luiz Capitulino | const char *key = "exists"; |
238 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
239 | 7b8c51ad | Luiz Capitulino | |
240 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qint_from_int(1));
|
241 | 7b8c51ad | Luiz Capitulino | qdict_put(tests_dict, key, qint_from_int(2));
|
242 | 7b8c51ad | Luiz Capitulino | |
243 | 7b8c51ad | Luiz Capitulino | value = qdict_get_int(tests_dict, key); |
244 | ac531cb6 | Anthony Liguori | g_assert(value == 2);
|
245 | 29ec3156 | Luiz Capitulino | |
246 | ac531cb6 | Anthony Liguori | g_assert(qdict_size(tests_dict) == 1);
|
247 | ac531cb6 | Anthony Liguori | |
248 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
249 | 7b8c51ad | Luiz Capitulino | } |
250 | 7b8c51ad | Luiz Capitulino | |
251 | ac531cb6 | Anthony Liguori | static void qdict_get_not_exists_test(void) |
252 | 7b8c51ad | Luiz Capitulino | { |
253 | ac531cb6 | Anthony Liguori | QDict *tests_dict = qdict_new(); |
254 | ac531cb6 | Anthony Liguori | g_assert(qdict_get(tests_dict, "foo") == NULL); |
255 | ac531cb6 | Anthony Liguori | |
256 | ac531cb6 | Anthony Liguori | QDECREF(tests_dict); |
257 | 7b8c51ad | Luiz Capitulino | } |
258 | 7b8c51ad | Luiz Capitulino | |
259 | 7b8c51ad | Luiz Capitulino | /*
|
260 | 7b8c51ad | Luiz Capitulino | * Stress test-case
|
261 | 7b8c51ad | Luiz Capitulino | *
|
262 | 7b8c51ad | Luiz Capitulino | * This is a lot big for a unit-test, but there is no other place
|
263 | 7b8c51ad | Luiz Capitulino | * to have it.
|
264 | 7b8c51ad | Luiz Capitulino | */
|
265 | 7b8c51ad | Luiz Capitulino | |
266 | 7b8c51ad | Luiz Capitulino | static void remove_dots(char *string) |
267 | 7b8c51ad | Luiz Capitulino | { |
268 | 7b8c51ad | Luiz Capitulino | char *p = strchr(string, ':'); |
269 | 7b8c51ad | Luiz Capitulino | if (p)
|
270 | 7b8c51ad | Luiz Capitulino | *p = '\0';
|
271 | 7b8c51ad | Luiz Capitulino | } |
272 | 7b8c51ad | Luiz Capitulino | |
273 | 7b8c51ad | Luiz Capitulino | static QString *read_line(FILE *file, char *key) |
274 | 7b8c51ad | Luiz Capitulino | { |
275 | 7b8c51ad | Luiz Capitulino | char value[128]; |
276 | 7b8c51ad | Luiz Capitulino | |
277 | 7464f058 | Stefan Weil | if (fscanf(file, "%127s%127s", key, value) == EOF) { |
278 | 7b8c51ad | Luiz Capitulino | return NULL; |
279 | 7464f058 | Stefan Weil | } |
280 | 7b8c51ad | Luiz Capitulino | remove_dots(key); |
281 | 7b8c51ad | Luiz Capitulino | return qstring_from_str(value);
|
282 | 7b8c51ad | Luiz Capitulino | } |
283 | 7b8c51ad | Luiz Capitulino | |
284 | 7b8c51ad | Luiz Capitulino | #define reset_file(file) fseek(file, 0L, SEEK_SET) |
285 | 7b8c51ad | Luiz Capitulino | |
286 | ac531cb6 | Anthony Liguori | static void qdict_stress_test(void) |
287 | 7b8c51ad | Luiz Capitulino | { |
288 | 7b8c51ad | Luiz Capitulino | size_t lines; |
289 | 7b8c51ad | Luiz Capitulino | char key[128]; |
290 | 7b8c51ad | Luiz Capitulino | FILE *test_file; |
291 | 7b8c51ad | Luiz Capitulino | QDict *qdict; |
292 | 7b8c51ad | Luiz Capitulino | QString *value; |
293 | 7b8c51ad | Luiz Capitulino | const char *test_file_path = "qdict-test-data.txt"; |
294 | 7b8c51ad | Luiz Capitulino | |
295 | 7b8c51ad | Luiz Capitulino | test_file = fopen(test_file_path, "r");
|
296 | ac531cb6 | Anthony Liguori | g_assert(test_file != NULL);
|
297 | 7b8c51ad | Luiz Capitulino | |
298 | 7b8c51ad | Luiz Capitulino | // Create the dict
|
299 | 7b8c51ad | Luiz Capitulino | qdict = qdict_new(); |
300 | ac531cb6 | Anthony Liguori | g_assert(qdict != NULL);
|
301 | 7b8c51ad | Luiz Capitulino | |
302 | 7b8c51ad | Luiz Capitulino | // Add everything from the test file
|
303 | 7b8c51ad | Luiz Capitulino | for (lines = 0;; lines++) { |
304 | 7b8c51ad | Luiz Capitulino | value = read_line(test_file, key); |
305 | 7b8c51ad | Luiz Capitulino | if (!value)
|
306 | 7b8c51ad | Luiz Capitulino | break;
|
307 | 7b8c51ad | Luiz Capitulino | |
308 | 7b8c51ad | Luiz Capitulino | qdict_put(qdict, key, value); |
309 | 7b8c51ad | Luiz Capitulino | } |
310 | ac531cb6 | Anthony Liguori | g_assert(qdict_size(qdict) == lines); |
311 | 7b8c51ad | Luiz Capitulino | |
312 | 7b8c51ad | Luiz Capitulino | // Check if everything is really in there
|
313 | 7b8c51ad | Luiz Capitulino | reset_file(test_file); |
314 | 7b8c51ad | Luiz Capitulino | for (;;) {
|
315 | 7b8c51ad | Luiz Capitulino | const char *str1, *str2; |
316 | 7b8c51ad | Luiz Capitulino | |
317 | 7b8c51ad | Luiz Capitulino | value = read_line(test_file, key); |
318 | 7b8c51ad | Luiz Capitulino | if (!value)
|
319 | 7b8c51ad | Luiz Capitulino | break;
|
320 | 7b8c51ad | Luiz Capitulino | |
321 | 7b8c51ad | Luiz Capitulino | str1 = qstring_get_str(value); |
322 | 7b8c51ad | Luiz Capitulino | |
323 | 7b8c51ad | Luiz Capitulino | str2 = qdict_get_str(qdict, key); |
324 | ac531cb6 | Anthony Liguori | g_assert(str2 != NULL);
|
325 | 7b8c51ad | Luiz Capitulino | |
326 | ac531cb6 | Anthony Liguori | g_assert(strcmp(str1, str2) == 0);
|
327 | 7b8c51ad | Luiz Capitulino | |
328 | 7b8c51ad | Luiz Capitulino | QDECREF(value); |
329 | 7b8c51ad | Luiz Capitulino | } |
330 | 7b8c51ad | Luiz Capitulino | |
331 | 7b8c51ad | Luiz Capitulino | // Delete everything
|
332 | 7b8c51ad | Luiz Capitulino | reset_file(test_file); |
333 | 7b8c51ad | Luiz Capitulino | for (;;) {
|
334 | 7b8c51ad | Luiz Capitulino | value = read_line(test_file, key); |
335 | 7b8c51ad | Luiz Capitulino | if (!value)
|
336 | 7b8c51ad | Luiz Capitulino | break;
|
337 | 7b8c51ad | Luiz Capitulino | |
338 | 7b8c51ad | Luiz Capitulino | qdict_del(qdict, key); |
339 | 7b8c51ad | Luiz Capitulino | QDECREF(value); |
340 | 7b8c51ad | Luiz Capitulino | |
341 | ac531cb6 | Anthony Liguori | g_assert(qdict_haskey(qdict, key) == 0);
|
342 | 7b8c51ad | Luiz Capitulino | } |
343 | 7b8c51ad | Luiz Capitulino | fclose(test_file); |
344 | 7b8c51ad | Luiz Capitulino | |
345 | ac531cb6 | Anthony Liguori | g_assert(qdict_size(qdict) == 0);
|
346 | 7b8c51ad | Luiz Capitulino | QDECREF(qdict); |
347 | 7b8c51ad | Luiz Capitulino | } |
348 | 7b8c51ad | Luiz Capitulino | |
349 | ac531cb6 | Anthony Liguori | int main(int argc, char **argv) |
350 | 7b8c51ad | Luiz Capitulino | { |
351 | ac531cb6 | Anthony Liguori | g_test_init(&argc, &argv, NULL);
|
352 | 7b8c51ad | Luiz Capitulino | |
353 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/new", qdict_new_test);
|
354 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/put_obj", qdict_put_obj_test);
|
355 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/destroy_simple", qdict_destroy_simple_test);
|
356 | 7b8c51ad | Luiz Capitulino | |
357 | 7b8c51ad | Luiz Capitulino | /* Continue, but now with fixtures */
|
358 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/get", qdict_get_test);
|
359 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/get_int", qdict_get_int_test);
|
360 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/get_try_int", qdict_get_try_int_test);
|
361 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/get_str", qdict_get_str_test);
|
362 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/get_try_str", qdict_get_try_str_test);
|
363 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/haskey_not", qdict_haskey_not_test);
|
364 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/haskey", qdict_haskey_test);
|
365 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/del", qdict_del_test);
|
366 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/to_qdict", qobject_to_qdict_test);
|
367 | ac531cb6 | Anthony Liguori | g_test_add_func("/public/iterapi", qdict_iterapi_test);
|
368 | ac531cb6 | Anthony Liguori | |
369 | ac531cb6 | Anthony Liguori | g_test_add_func("/errors/put_exists", qdict_put_exists_test);
|
370 | ac531cb6 | Anthony Liguori | g_test_add_func("/errors/get_not_exists", qdict_get_not_exists_test);
|
371 | 7b8c51ad | Luiz Capitulino | |
372 | 7b8c51ad | Luiz Capitulino | /* The Big one */
|
373 | ac531cb6 | Anthony Liguori | if (g_test_slow()) {
|
374 | ac531cb6 | Anthony Liguori | g_test_add_func("/stress/test", qdict_stress_test);
|
375 | ac531cb6 | Anthony Liguori | } |
376 | 7b8c51ad | Luiz Capitulino | |
377 | ac531cb6 | Anthony Liguori | return g_test_run();
|
378 | 7b8c51ad | Luiz Capitulino | } |