core: clist is a cyclic list

dev/timer
René Kijewski 9 years ago
parent 8ed9704261
commit 27e393621a

@ -62,16 +62,19 @@ void clist_remove(clist_node_t **list, clist_node_t *node)
void clist_print(clist_node_t *clist)
{
clist_node_t *start = clist;
clist_node_t *start = clist, *node = start;
if (!start) {
return;
}
while (clist != NULL) {
printf("list entry: %u prev=%u next=%u\n", clist->data, clist->prev->data, clist->next->data);
do {
printf("list entry: %p: prev=%p next=%p\n", clist, clist->prev, clist->next);
clist = clist->next;
if (clist == start) {
break;
}
}
} while (node != start);
}
#endif

@ -16,7 +16,7 @@
#define TEST_CLIST_LEN (8)
clist_node_t tests_clist_buf[TEST_CLIST_LEN];
static clist_node_t tests_clist_buf[TEST_CLIST_LEN];
static void set_up(void)
{
@ -27,12 +27,9 @@ static void test_clist_add_one(void)
{
clist_node_t *list = NULL, *elem = &(tests_clist_buf[0]);
elem->data = 4435;
clist_add(&list, elem);
TEST_ASSERT_NOT_NULL(list);
TEST_ASSERT_EQUAL_INT(4435, list->data);
TEST_ASSERT(list->next == list);
}
@ -42,13 +39,10 @@ static void test_clist_add_two(void)
test_clist_add_one();
elem->data = 56345;
clist_add(&list, elem);
TEST_ASSERT_NOT_NULL(list);
TEST_ASSERT(list->next == elem);
TEST_ASSERT_EQUAL_INT(56345, list->next->data);
TEST_ASSERT(list->next->next == list);
}

Loading…
Cancel
Save