MCPcopy Create free account
hub / github.com/MariaDB/server / dyn_array_delete_with_callback

Function dyn_array_delete_with_callback

unittest/mysys/dynamic_array-t.c:176–220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

174#define NUM_DELETE_WITH_CALLBACK 3
175
176int dyn_array_delete_with_callback(void)
177{
178 DYNAMIC_ARRAY things_array;
179 PSI_memory_key psi_key= PSI_NOT_INSTRUMENTED;
180 size_t element_size= sizeof(struct string_thing);
181 size_t init_alloc= (NUM_DELETE_WITH_CALLBACK - 1);
182 size_t alloc_increment= 2;
183 myf my_flags= MYF(MY_WME);
184 my_bool err= FALSE;
185
186 err= my_init_dynamic_array(psi_key, &things_array, element_size, init_alloc,
187 alloc_increment, my_flags);
188
189 ok(!err, "my_init_dynamic_array");
190 if (err) {
191 return EXIT_FAILURE;
192 }
193
194 for (size_t i= 0; i < NUM_DELETE_WITH_CALLBACK; ++i) {
195 struct string_thing thing= { (unsigned)i, NULL, 40 };
196 thing.str= my_malloc(psi_key, thing.str_size, my_flags);
197 ok(thing.str != NULL, "%zu thing.str= malloc(%zu))", i, thing.str_size);
198 if (!thing.str) {
199 delete_dynamic_with_callback(&things_array, free_string_thing);
200 return EXIT_FAILURE;
201 }
202 snprintf(thing.str, thing.str_size, "thing %zu", i);
203
204 err= insert_dynamic(&things_array, &thing);
205 ok(!err, "insert_dynamic for %zu", i);
206 if (err) {
207 delete_dynamic_with_callback(&things_array, free_string_thing);
208 return EXIT_FAILURE;
209 }
210 }
211 ok(3 == things_array.elements, "size expect: %d, actual: %zu",
212 3, things_array.elements);
213
214 delete_dynamic_with_callback(&things_array, free_string_thing);
215
216 ok(0 == things_array.elements, "size expect: %d, actual: %zu",
217 0, things_array.elements);
218
219 return EXIT_SUCCESS;
220}
221static const int plan_delete_with_callback= 3 + (2 * NUM_DELETE_WITH_CALLBACK);
222
223int main(void)

Callers 1

mainFunction · 0.85

Calls 4

okFunction · 0.85
my_mallocFunction · 0.85
insert_dynamicFunction · 0.85

Tested by

no test coverage detected