Improve list tests

This commit is contained in:
2023-01-02 22:01:51 +01:00
parent c7488b0f59
commit 26869c0df5
2 changed files with 11 additions and 2 deletions

View File

@ -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);

View File

@ -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);