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,
85 static void search_id(xbt_set_t head, int id, const char *key)
89 xbt_test_add1("Search by id %d", id);
90 elm = (my_elem_t) xbt_set_get_by_id(head, id);
91 xbt_test_log2("Found %s (data %s)",
92 elm ? elm->name : "(null)", elm ? elm->data : "(null)");
94 THROW2(mismatch_error, 0,
95 "The found ID (%d) is not the one expected (%d)", elm->ID, id);
96 if (strcmp(key, elm->name))
97 THROW2(mismatch_error, 0, "The key (%s) is not the one expected (%s)",
99 if (strcmp(elm->name, elm->data))
100 THROW2(mismatch_error, 0, "The name (%s) != data (%s)",
101 elm->name, elm->data);
105 static void traverse(xbt_set_t set)
107 xbt_set_cursor_t cursor = NULL;
108 my_elem_t elm = NULL;
110 xbt_set_foreach(set, cursor, elm) {
111 xbt_test_assert0(elm, "Dude ! Got a null elm during traversal!");
112 xbt_test_log3("Id(%d): %s->%s\n", elm->ID, elm->name, elm->data);
113 xbt_test_assert2(!strcmp(elm->name, elm->data),
114 "Key(%s) != value(%s). Abording", elm->name,
119 static void search_not_found(xbt_set_t set, const char *data)
123 xbt_test_add1("Search %s (expected not to be found)", data);
125 xbt_set_get_by_name(set, data);
126 THROW1(unknown_error, 0,
127 "Found something which shouldn't be there (%s)", data);
129 if (e.category != not_found_error)
130 xbt_test_exception(e);
135 xbt_set_t set = NULL;
138 XBT_TEST_UNIT("basic", test_set_basic, "Basic usage")
142 xbt_test_add0("Traverse the empty set");
145 xbt_test_add0("Free a data set");
149 xbt_test_add0("Free the NULL data set");
154 XBT_TEST_UNIT("change", test_set_change, "Changing some values")
158 xbt_test_add0("Change 123 to 'Changed 123'");
159 debuged_add(set, "123", "Changed 123");
161 xbt_test_add0("Change 123 back to '123'");
162 debuged_add(set, "123", "123");
164 xbt_test_add0("Change 12a to 'Dummy 12a'");
165 debuged_add(set, "12a", "Dummy 12a");
167 xbt_test_add0("Change 12a to '12a'");
168 debuged_add(set, "12a", "12a");
170 /* xbt_dict_dump(head,(void (*)(void*))&printf); */
171 xbt_test_add0("Traverse the resulting data set");
175 XBT_TEST_UNIT("retrieve", test_set_retrieve, "Retrieving some values")
179 xbt_test_add0("Search 123");
180 elm = (my_elem_t) xbt_set_get_by_name(set, "123");
181 xbt_test_assert0(elm, "elm must be there");
182 xbt_assert(!strcmp("123", elm->data));
184 search_not_found(set, "Can't be found");
185 search_not_found(set, "123 Can't be found");
186 search_not_found(set, "12345678 NOT");
188 search_name(set, "12");
189 search_name(set, "12a");
190 search_name(set, "12b");
191 search_name(set, "123");
192 search_name(set, "123456");
193 search_name(set, "1234");
194 search_name(set, "123457");
196 search_id(set, 0, "12");
197 search_id(set, 1, "12a");
198 search_id(set, 2, "12b");
199 search_id(set, 3, "123");
200 search_id(set, 4, "123456");
201 search_id(set, 5, "1234");
202 search_id(set, 6, "123457");
204 xbt_test_add0("Traverse the resulting data set");
207 /* xbt_dict_dump(head,(void (*)(void*))&printf); */
209 xbt_test_add0("Free the data set (twice)");
213 xbt_test_add0("Traverse the resulting data set");
217 XBT_TEST_UNIT("remove", test_set_remove, "Removing some values")
224 xbt_set_remove_by_name(set, "12a");
225 search_not_found(set, "12a");
227 search_name(set, "12");
228 search_name(set, "12b");
229 search_name(set, "123");
230 search_name(set, "123456");
231 search_name(set, "1234");
232 search_name(set, "123457");
234 search_id(set, 0, "12");
235 search_id(set, 2, "12b");
236 search_id(set, 3, "123");
237 search_id(set, 4, "123456");
238 search_id(set, 5, "1234");
239 search_id(set, 6, "123457");
241 debuged_add(set, "12anew", "12anew");
242 elm = (my_elem_t) xbt_set_get_by_id(set, 1);
243 xbt_test_assert1(elm->ID == 1, "elm->ID is %d but should be 1", elm->ID);
246 /*******************************/
247 /* GENERATED FILE, DO NOT EDIT */
248 /*******************************/