| 1914 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \ |
1914 CX_TEST_CALL_SUBROUTINE(test_list_verify_##name, list, true); \ |
| 1915 tear_down_combo \ |
1915 tear_down_combo \ |
| 1916 } |
1916 } |
| 1917 #define roll_out_test_combos(name, body) \ |
1917 #define roll_out_test_combos(name, body) \ |
| 1918 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \ |
1918 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \ |
| 1919 cx_attr_unused bool isptrlist) body \ |
1919 CX_UNUSED bool isptrlist) body \ |
| 1920 roll_out_test_invokers(name) |
1920 roll_out_test_invokers(name) |
| 1921 |
1921 |
| 1922 static void set_default_class_funcs(CxList *list, cx_list_class *defaulted_cl) { |
1922 static void set_default_class_funcs(CxList *list, cx_list_class *defaulted_cl) { |
| 1923 memcpy(defaulted_cl, list->cl, sizeof(cx_list_class)); |
1923 memcpy(defaulted_cl, list->cl, sizeof(cx_list_class)); |
| 1924 defaulted_cl->insert_array = cx_list_default_insert_array; |
1924 defaulted_cl->insert_array = cx_list_default_insert_array; |
| 1933 #define do_set_default_class_funcs(list) \ |
1933 #define do_set_default_class_funcs(list) \ |
| 1934 cx_list_class defaulted_cl; \ |
1934 cx_list_class defaulted_cl; \ |
| 1935 set_default_class_funcs(list, &defaulted_cl) |
1935 set_default_class_funcs(list, &defaulted_cl) |
| 1936 #define roll_out_test_combos_with_defaulted_funcs(name, body) \ |
1936 #define roll_out_test_combos_with_defaulted_funcs(name, body) \ |
| 1937 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \ |
1937 static CX_TEST_SUBROUTINE(test_list_verify_##name, CxList *list, \ |
| 1938 cx_attr_unused bool isptrlist) body \ |
1938 CX_UNUSED bool isptrlist) body \ |
| 1939 roll_out_test_invokers(name) \ |
1939 roll_out_test_invokers(name) \ |
| 1940 CX_TEST(test_list_llm_##name) { \ |
1940 CX_TEST(test_list_llm_##name) { \ |
| 1941 set_up_combo \ |
1941 set_up_combo \ |
| 1942 CxList *list = cxLinkedListCreate(alloc, sizeof(int)); \ |
1942 CxList *list = cxLinkedListCreate(alloc, sizeof(int)); \ |
| 1943 cxSetCompareFunc(list, cx_cmp_int); \ |
1943 cxSetCompareFunc(list, cx_cmp_int); \ |
| 2430 CX_TEST_ASSERT(x == 1337); |
2430 CX_TEST_ASSERT(x == 1337); |
| 2431 } |
2431 } |
| 2432 }) |
2432 }) |
| 2433 |
2433 |
| 2434 static unsigned test_remove_array_destr_ctr; |
2434 static unsigned test_remove_array_destr_ctr; |
| 2435 static void test_remove_array_destr(cx_attr_unused void *d) { |
2435 static void test_remove_array_destr(CX_UNUSED void *d) { |
| 2436 test_remove_array_destr_ctr++; |
2436 test_remove_array_destr_ctr++; |
| 2437 } |
2437 } |
| 2438 |
2438 |
| 2439 roll_out_test_combos(remove_array, { |
2439 roll_out_test_combos(remove_array, { |
| 2440 const size_t testdata_len = 32; |
2440 const size_t testdata_len = 32; |
| 2977 destr_last_value = *ptr; |
2977 destr_last_value = *ptr; |
| 2978 *ptr = destr_last_value + 1; |
2978 *ptr = destr_last_value + 1; |
| 2979 destr_test_ctr++; |
2979 destr_test_ctr++; |
| 2980 } |
2980 } |
| 2981 |
2981 |
| 2982 static void advanced_destr_test_fun(cx_attr_unused void *u, void *data) { |
2982 static void advanced_destr_test_fun(CX_UNUSED void *u, void *data) { |
| 2983 simple_destr_test_fun(data); |
2983 simple_destr_test_fun(data); |
| 2984 } |
2984 } |
| 2985 |
2985 |
| 2986 static CX_TEST_SUBROUTINE(test_list_verify_destructor, CxList *list, |
2986 static CX_TEST_SUBROUTINE(test_list_verify_destructor, CxList *list, |
| 2987 const int *testdata, size_t testdata_len) { |
2987 const int *testdata, size_t testdata_len) { |