1814 CX_TEST_ASSERT(*e == swapped[iter.index]); |
1814 CX_TEST_ASSERT(*e == swapped[iter.index]); |
1815 } |
1815 } |
1816 }) |
1816 }) |
1817 |
1817 |
1818 CX_TEST(test_list_arl_swap_no_sbo) { |
1818 CX_TEST(test_list_arl_swap_no_sbo) { |
1819 set_up_combo |
1819 CxTestingAllocator talloc; |
1820 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, 2*cx_array_swap_sbo_size, 8); |
1820 cx_testing_allocator_init(&talloc); |
1821 CX_TEST_CALL_SUBROUTINE(test_list_verify_swap, list, false); |
1821 CxAllocator *alloc = &talloc.base; |
1822 tear_down_combo |
1822 CX_TEST_DO { |
|
1823 size_t item_size = 2*cx_array_swap_sbo_size; |
|
1824 CxList *list = cxArrayListCreate(alloc, cx_cmp_int, item_size, 8); |
|
1825 |
|
1826 char *obj = malloc(item_size); |
|
1827 for (char c = 'a' ; c <= 'z' ; c++) { |
|
1828 obj[0] = c; |
|
1829 obj[item_size-1] = c; |
|
1830 cxListAdd(list, obj); |
|
1831 } |
|
1832 free(obj); |
|
1833 |
|
1834 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[0] == 'd'); |
|
1835 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[0] == 'r'); |
|
1836 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[item_size-1] == 'd'); |
|
1837 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[item_size-1] == 'r'); |
|
1838 cxListSwap(list, 3, 17); |
|
1839 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[0] == 'd'); |
|
1840 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[0] == 'r'); |
|
1841 CX_TEST_ASSERT(((char*)cxListAt(list, 17))[item_size-1] == 'd'); |
|
1842 CX_TEST_ASSERT(((char*)cxListAt(list, 3))[item_size-1] == 'r'); |
|
1843 |
|
1844 cxListFree(list); |
|
1845 CX_TEST_ASSERT(cx_testing_allocator_verify(&talloc)); |
|
1846 } |
|
1847 cx_testing_allocator_destroy(&talloc); |
1823 } |
1848 } |
1824 |
1849 |
1825 roll_out_test_combos(find, { |
1850 roll_out_test_combos(find, { |
1826 const size_t testdata_len = 500; |
1851 const size_t testdata_len = 500; |
1827 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len); |
1852 int *testdata = int_test_data_added_to_list(list, isptrlist, testdata_len); |