void at_add_urc(at_dev_t *dev, at_urc_t *urc) { assert(urc); assert(urc->code); assert(strlen(urc->code) != 0); assert(urc->cb); clist_rpush(&dev->urc_list, &urc->list_node); }
static void test_clist_rpush(void) { list_node_t *elem = &(tests_clist_buf[0]); list_node_t *list = &test_clist; clist_rpush(list, elem); TEST_ASSERT_NOT_NULL(list->next); TEST_ASSERT(list->next->next == list->next); }
static void test_clist_add_three(void) { list_node_t *list = &test_clist; for (int i = 0; i < 3; i++) { clist_rpush(list, &(tests_clist_buf[i])); } TEST_ASSERT_NOT_NULL(list->next); TEST_ASSERT(list->next == &(tests_clist_buf[2])); TEST_ASSERT(list->next->next == &(tests_clist_buf[0])); TEST_ASSERT(list->next->next->next == &(tests_clist_buf[1])); TEST_ASSERT(list->next->next->next->next == &(tests_clist_buf[2])); }
static void test_clist_foreach(void) { list_node_t *list = &test_clist; for (int i = 0; i < TEST_CLIST_LEN; i++) { clist_rpush(list, &tests_clist_buf[i]); } clist_foreach(list, _foreach_test_trampoline); TEST_ASSERT(_foreach_called == _foreach_abort_after); _foreach_called = 0; for (int i = 0; i < TEST_CLIST_LEN; i++) { _foreach_visited[i] = 0; } _foreach_abort_after = (TEST_CLIST_LEN + 1); clist_foreach(list, _foreach_test_trampoline); TEST_ASSERT(_foreach_called == TEST_CLIST_LEN); }
int main(int argc, char const *argv[]) { size_t i; lock = SL_UNLOCK; cl = clist_create(); count = 0; for(i = 0; i < 6; i++) clist_lpush(cl, NULL); clist_rpop(cl); clist_rpop(cl); clist_rpop(cl); clist_rpop(cl); clist_rpop(cl); clist_rpop(cl); for(i = 0; i < 6; i++) clist_lpush(cl, NULL); clist_destroy(cl); cl = clist_create(); for(i = 0; i < 1000; i++) clist_rpush(cl, NULL); for(i = 0; i < 1000; i++) clist_lpush(cl, NULL); for(i = 0; i < 1000; i++) clist_lpop(cl); for(i = 0; i < 1000; i++) clist_rpop(cl); clist_destroy(cl); printf("%llu\n", used_mem()); return 0; }