tests/test_list.c

changeset 1321
1003c014bf92
parent 1319
aa1f580f8f59
equal deleted inserted replaced
1320:f76b70a72614 1321:1003c014bf92
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);

mercurial