/** * Get value that pointed by iterator. */ void iterator_get_value(iterator_t it_iter, void* pv_value) { assert(pv_value != NULL); assert(_iterator_is_valid(it_iter)); assert(_iterator_limit_type(it_iter, _INPUT_ITERATOR)); switch (it_iter._t_containertype) { case _VECTOR_CONTAINER: _vector_iterator_get_value(it_iter, pv_value); break; case _LIST_CONTAINER: _list_iterator_get_value(it_iter, pv_value); break; case _DEQUE_CONTAINER: _deque_iterator_get_value(it_iter, pv_value); break; /* case _SLIST_CONTAINER: _slist_iterator_get_value(it_iter, pv_value); break; */ case _SET_CONTAINER: _set_iterator_get_value(it_iter, pv_value); break; case _MAP_CONTAINER: _map_iterator_get_value(it_iter, pv_value); break; case _HASH_SET_CONTAINER: _hash_set_iterator_get_value(it_iter, pv_value); break; case _HASH_MAP_CONTAINER: _hash_map_iterator_get_value(it_iter, pv_value); break; case _BASIC_STRING_CONTAINER: _basic_string_iterator_get_value(it_iter, pv_value); break; default: assert(false); break; } }
/* * test _map_iterator_get_value */ UT_CASE_DEFINATION(_map_iterator_get_value) void test__map_iterator_get_value__null_corepos(void** state) { map_t* pt_map = create_map(int, int); map_iterator_t it_iter; int elem = 0; map_init_ex(pt_map, NULL); it_iter = map_begin(pt_map); it_iter._t_pos._t_treepos._pby_corepos = NULL; expect_assert_failure(_map_iterator_get_value(it_iter, &elem)); map_destroy(pt_map); } void test__map_iterator_get_value__null_tree(void** state) { map_t* pt_map = create_map(int, int); map_iterator_t it_iter; int elem = 0; map_init_ex(pt_map, NULL); it_iter = map_begin(pt_map); it_iter._t_pos._t_treepos._pt_tree = NULL; expect_assert_failure(_map_iterator_get_value(it_iter, &elem));