Improve list tests
This commit is contained in:
@ -54,7 +54,7 @@ void *list_insert(void *list_ptr, void *elem, int n) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned char *array = list_ptr;
|
unsigned char *array = (unsigned char *) list + sizeof(list_meta_t);
|
||||||
|
|
||||||
if (n < list->size)
|
if (n < list->size)
|
||||||
memmove(array + (n + 1) * list->elem_size, array + n * list->elem_size, (list->size - n) * list->elem_size);
|
memmove(array + (n + 1) * list->elem_size, array + n * list->elem_size, (list->size - n) * list->elem_size);
|
||||||
|
@ -60,19 +60,28 @@ Test(list, resize) {
|
|||||||
list = list_append(list, &v);
|
list = list_append(list, &v);
|
||||||
cr_assert_not_null(list);
|
cr_assert_not_null(list);
|
||||||
cr_assert_eq(list_size(list), i + 1);
|
cr_assert_eq(list_size(list), i + 1);
|
||||||
|
for (int j = 0; j <= i; j++) {
|
||||||
|
cr_assert_eq(list[j], 9182 - j);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4096; i++) {
|
for (int i = 0; i < 4096; i++) {
|
||||||
list = list_remove(list, -1);
|
list = list_remove(list, -1);
|
||||||
cr_assert_not_null(list);
|
cr_assert_not_null(list);
|
||||||
cr_assert_eq(list_size(list), 4096 - i - 1);
|
cr_assert_eq(list_size(list), 4096 - i - 1);
|
||||||
|
for (int j = 0; j < 4096 - i; j++) {
|
||||||
|
cr_assert_eq(list[j], 9182 - j);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4096; i++) {
|
for (int i = 0; i < 4096; i++) {
|
||||||
v = 9182 - i;
|
v = 47391 - i;
|
||||||
list = list_append(list, &v);
|
list = list_append(list, &v);
|
||||||
cr_assert_not_null(list);
|
cr_assert_not_null(list);
|
||||||
cr_assert_eq(list_size(list), i + 1);
|
cr_assert_eq(list_size(list), i + 1);
|
||||||
|
for (int j = 0; j <= i; j++) {
|
||||||
|
cr_assert_eq(list[j], 47391 - j);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
list = list_clear(list);
|
list = list_clear(list);
|
||||||
|
Reference in New Issue
Block a user