1 /*******************************/
2 /* GENERATED FILE, DO NOT EDIT */
3 /*******************************/
7 /*******************************/
8 /* GENERATED FILE, DO NOT EDIT */
9 /*******************************/
20 unsigned int name_len;
24 } s_my_elem_t, *my_elem_t;
27 static void my_elem_free(void *e)
29 my_elem_t elm = (my_elem_t) e;
38 static void debuged_add(xbt_set_t set, const char *name, const char *data)
42 elm = xbt_new(s_my_elem_t, 1);
43 elm->name = xbt_strdup(name);
46 elm->data = xbt_strdup(data);
48 xbt_test_log2("Add %s (->%s)", name, data);
49 xbt_set_add(set, (xbt_set_elm_t) elm, &my_elem_free);
52 static void fill(xbt_set_t * set)
54 xbt_test_add0("Fill in the data set");
57 debuged_add(*set, "12", "12");
58 debuged_add(*set, "12a", "12a");
59 debuged_add(*set, "12b", "12b");
60 debuged_add(*set, "123", "123");
61 debuged_add(*set, "123456", "123456");
62 xbt_test_log0("Child becomes child of what to add");
63 debuged_add(*set, "1234", "1234");
64 xbt_test_log0("Need of common ancestor");
65 debuged_add(*set, "123457", "123457");
68 static void search_name(xbt_set_t head, const char *key)
72 xbt_test_add1("Search by name %s", key);
73 elm = (my_elem_t) xbt_set_get_by_name(head, key);
74 xbt_test_log2(" Found %s (under ID %d)\n",
75 elm ? elm->data : "(null)", elm ? elm->ID : -1);
76 if (strcmp(key, elm->name))
77 THROW2(mismatch_error, 0, "The key (%s) is not the one expected (%s)",
79 if (strcmp(elm->name, elm->data))
80 THROW2(mismatch_error, 0, "The name (%s) != data (%s)", key, elm->name);
84 static void search_id(xbt_set_t head, int id, const char *key)
88 xbt_test_add1("Search by id %d", id);
89 elm = (my_elem_t) xbt_set_get_by_id(head, id);
90 xbt_test_log2("Found %s (data %s)",
91 elm ? elm->name : "(null)", elm ? elm->data : "(null)");
93 THROW2(mismatch_error, 0,
94 "The found ID (%d) is not the one expected (%d)", elm->ID, id);
95 if (strcmp(key, elm->name))
96 THROW2(mismatch_error, 0, "The key (%s) is not the one expected (%s)",
98 if (strcmp(elm->name, elm->data))
99 THROW2(mismatch_error, 0, "The name (%s) != data (%s)",
100 elm->name, elm->data);
104 static void traverse(xbt_set_t set)
106 xbt_set_cursor_t cursor = NULL;
107 my_elem_t elm = NULL;
109 xbt_set_foreach(set, cursor, elm) {
110 xbt_test_assert0(elm, "Dude ! Got a null elm during traversal!");
111 xbt_test_log3("Id(%d): %s->%s\n", elm->ID, elm->name, elm->data);
112 xbt_test_assert2(!strcmp(elm->name, elm->data),
113 "Key(%s) != value(%s). Abording", elm->name, elm->data);
117 static void search_not_found(xbt_set_t set, const char *data)
121 xbt_test_add1("Search %s (expected not to be found)", data);
123 xbt_set_get_by_name(set, data);
124 THROW1(unknown_error, 0, "Found something which shouldn't be there (%s)",
127 if (e.category != not_found_error)
128 xbt_test_exception(e);
133 xbt_set_t set = NULL;
136 XBT_TEST_UNIT("basic", test_set_basic, "Basic usage")
140 xbt_test_add0("Traverse the empty set");
143 xbt_test_add0("Free a data set");
147 xbt_test_add0("Free the NULL data set");
152 XBT_TEST_UNIT("change", test_set_change, "Changing some values")
156 xbt_test_add0("Change 123 to 'Changed 123'");
157 debuged_add(set, "123", "Changed 123");
159 xbt_test_add0("Change 123 back to '123'");
160 debuged_add(set, "123", "123");
162 xbt_test_add0("Change 12a to 'Dummy 12a'");
163 debuged_add(set, "12a", "Dummy 12a");
165 xbt_test_add0("Change 12a to '12a'");
166 debuged_add(set, "12a", "12a");
168 /* xbt_dict_dump(head,(void (*)(void*))&printf); */
169 xbt_test_add0("Traverse the resulting data set");
173 XBT_TEST_UNIT("retrieve", test_set_retrieve, "Retrieving some values")
177 xbt_test_add0("Search 123");
178 elm = (my_elem_t) xbt_set_get_by_name(set, "123");
179 xbt_test_assert0(elm, "elm must be there");
180 xbt_assert(!strcmp("123", elm->data));
182 search_not_found(set, "Can't be found");
183 search_not_found(set, "123 Can't be found");
184 search_not_found(set, "12345678 NOT");
186 search_name(set, "12");
187 search_name(set, "12a");
188 search_name(set, "12b");
189 search_name(set, "123");
190 search_name(set, "123456");
191 search_name(set, "1234");
192 search_name(set, "123457");
194 search_id(set, 0, "12");
195 search_id(set, 1, "12a");
196 search_id(set, 2, "12b");
197 search_id(set, 3, "123");
198 search_id(set, 4, "123456");
199 search_id(set, 5, "1234");
200 search_id(set, 6, "123457");
202 xbt_test_add0("Traverse the resulting data set");
205 /* xbt_dict_dump(head,(void (*)(void*))&printf); */
207 xbt_test_add0("Free the data set (twice)");
211 xbt_test_add0("Traverse the resulting data set");
215 XBT_TEST_UNIT("remove", test_set_remove, "Removing some values")
222 xbt_set_remove_by_name(set, "12a");
223 search_not_found(set, "12a");
225 search_name(set, "12");
226 search_name(set, "12b");
227 search_name(set, "123");
228 search_name(set, "123456");
229 search_name(set, "1234");
230 search_name(set, "123457");
232 search_id(set, 0, "12");
233 search_id(set, 2, "12b");
234 search_id(set, 3, "123");
235 search_id(set, 4, "123456");
236 search_id(set, 5, "1234");
237 search_id(set, 6, "123457");
239 debuged_add(set, "12anew", "12anew");
240 elm = (my_elem_t) xbt_set_get_by_id(set, 1);
241 xbt_test_assert1(elm->ID == 1, "elm->ID is %d but should be 1", elm->ID);
244 /*******************************/
245 /* GENERATED FILE, DO NOT EDIT */
246 /*******************************/