Пример #1
0
void test__type_get_type__invalid(void** state)
{
    _typeinfo_t t_info;
    _type_get_type(&t_info, "abcdefg_t");
    assert_true(t_info._t_style == _TYPE_INVALID);
    assert_true(t_info._pt_type == NULL);
}
Пример #2
0
void _type_get_type_pair(_typeinfo_t* pt_typeinfofirst, _typeinfo_t* pt_typeinfosecond, const char* s_typename)
{
    /* this function get type information for pair_t and relation container */
    char  s_firsttypename[_TYPE_NAME_SIZE + 1];
    char  s_secondtypename[_TYPE_NAME_SIZE + 1];
    char* pc_commapos = NULL;
    char* pc_newstart = NULL;

    assert(pt_typeinfofirst != NULL);
    assert(pt_typeinfosecond != NULL);
    assert(s_typename != NULL);

    pt_typeinfofirst->_t_style = _TYPE_INVALID;
    pt_typeinfofirst->_pt_type = NULL;
    pt_typeinfosecond->_t_style = _TYPE_INVALID;
    pt_typeinfosecond->_pt_type = NULL;

    /* the type name is separated in two section by comma */
    pc_newstart = (char*)s_typename;
    while ((pc_commapos = strchr(pc_newstart, _CSTL_COMMA)) != NULL) {
        s_firsttypename[0] = s_firsttypename[_TYPE_NAME_SIZE] = '\0';
        s_secondtypename[0] = s_secondtypename[_TYPE_NAME_SIZE] = '\0';
        strncpy(s_firsttypename, s_typename, pc_commapos - s_typename);
        s_firsttypename[pc_commapos - s_typename] = '\0';
        strncpy(s_secondtypename, pc_commapos + 1, _TYPE_NAME_SIZE);

        _type_get_type(pt_typeinfofirst, s_firsttypename);
        _type_get_type(pt_typeinfosecond, s_secondtypename);
        if (pt_typeinfofirst->_t_style != _TYPE_INVALID && pt_typeinfofirst->_pt_type != NULL &&
            pt_typeinfosecond->_t_style != _TYPE_INVALID && pt_typeinfosecond->_pt_type != NULL) {
            return;
        }

        pt_typeinfofirst->_t_style = _TYPE_INVALID;
        pt_typeinfofirst->_pt_type = NULL;
        pt_typeinfosecond->_t_style = _TYPE_INVALID;
        pt_typeinfosecond->_pt_type = NULL;

        pc_newstart = pc_commapos + 1;
    }
}
Пример #3
0
void test__type_get_type__cstl_container(void** state)
{
    _typeinfo_t t_info;
    _type_get_type(&t_info, "deque_t<int>");
    assert_true(t_info._t_style == _TYPE_CSTL_BUILTIN);
    assert_true(strncmp(t_info._s_typename, "deque_t<int>", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type != NULL);
    assert_true(t_info._pt_type->_t_typesize == sizeof(deque_t));
    assert_true(strncmp(t_info._pt_type->_s_typename, "deque_t", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type->_t_typeinit == _type_init_deque);
    assert_true(t_info._pt_type->_t_typeless == _type_less_deque);
    assert_true(t_info._pt_type->_t_typecopy == _type_copy_deque);
    assert_true(t_info._pt_type->_t_typedestroy == _type_destroy_deque);
}
Пример #4
0
void test__type_get_type__cstl_iterator(void** state)
{
    _typeinfo_t t_info;
    _type_get_type(&t_info, "vector_iterator_t");
    assert_true(t_info._t_style == _TYPE_CSTL_BUILTIN);
    assert_true(strncmp(t_info._s_typename, "vector_iterator_t", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type != NULL);
    assert_true(t_info._pt_type->_t_typesize == sizeof(iterator_t));
    assert_true(strncmp(t_info._pt_type->_s_typename, "iterator_t", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type->_t_typeinit == _type_init_iterator);
    assert_true(t_info._pt_type->_t_typeless == _type_less_iterator);
    assert_true(t_info._pt_type->_t_typecopy == _type_copy_iterator);
    assert_true(t_info._pt_type->_t_typedestroy == _type_destroy_iterator);
}
Пример #5
0
void test__type_get_type__c_builtin(void** state)
{
    _typeinfo_t t_info;
    _type_get_type(&t_info, "unsigned    int");
    assert_true(t_info._t_style == _TYPE_C_BUILTIN);
    assert_true(strncmp(t_info._s_typename, "unsigned int", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type != NULL);
    assert_true(t_info._pt_type->_t_typesize == sizeof(unsigned int));
    assert_true(strncmp(t_info._pt_type->_s_typename, "unsigned int", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type->_t_typeinit == _type_init_uint);
    assert_true(t_info._pt_type->_t_typeless == _type_less_uint);
    assert_true(t_info._pt_type->_t_typecopy == _type_copy_uint);
    assert_true(t_info._pt_type->_t_typedestroy == _type_destroy_uint);
}
Пример #6
0
/**
 * Create slist container auxiliary function.
 */
bool_t _create_slist_auxiliary(slist_t* pslist_slist, const char* s_typename)
{
    assert(pslist_slist != NULL);
    assert(s_typename != NULL);

    _type_get_type(&pslist_slist->_t_typeinfo, s_typename);
    if (pslist_slist->_t_typeinfo._t_style == _TYPE_INVALID) {
        return false;
    }

    pslist_slist->_t_head._pt_next = NULL;

    _alloc_init(&pslist_slist->_t_allocator);
    return true;
}
Пример #7
0
void test__type_get_type__user_define(void** state)
{
    _typeinfo_t t_info;
    type_register(struct _test__type_get_type, NULL, NULL, NULL, NULL);
    type_duplicate(struct _test__type_get_type, _test__type_get_type_t);
    _type_get_type(&t_info, "_test__type_get_type_t");
    assert_true(t_info._t_style == _TYPE_USER_DEFINE);
    assert_true(strncmp(t_info._s_typename, "_test__type_get_type_t", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type != NULL);
    assert_true(t_info._pt_type->_t_typesize == sizeof(_test__type_get_type_t));
    assert_true(strncmp(t_info._pt_type->_s_typename, "struct _test__type_get_type", _TYPE_NAME_SIZE) == 0);
    assert_true(t_info._pt_type->_t_typeinit == _type_init_default);
    assert_true(t_info._pt_type->_t_typeless == _type_less_default);
    assert_true(t_info._pt_type->_t_typecopy == _type_copy_default);
    assert_true(t_info._pt_type->_t_typedestroy == _type_destroy_default);
}
Пример #8
0
/**
 * Create vector container auxiliary function.
 */
bool_t _create_vector_auxiliary(vector_t* pvec_vector, const char* s_typename)
{
    assert(pvec_vector != NULL);
    assert(s_typename != NULL);

    _type_get_type(&pvec_vector->_t_typeinfo, s_typename);
    if (pvec_vector->_t_typeinfo._t_style == _TYPE_INVALID) {
        return false;
    }

    pvec_vector->_pby_start = NULL;
    pvec_vector->_pby_finish = NULL;
    pvec_vector->_pby_endofstorage = NULL;

    _alloc_init(&pvec_vector->_t_allocator);
    return true;
}
Пример #9
0
/**
 * Create avl tree container auxiliary function.
 */
bool_t _create_avl_tree_auxiliary(_avl_tree_t* pt_avl_tree, const char* s_typename)
{
    assert(pt_avl_tree != NULL);
    assert(s_typename != NULL);

    /* get type information */
    _type_get_type(&pt_avl_tree->_t_typeinfo, s_typename);
    if(pt_avl_tree->_t_typeinfo._t_style == _TYPE_INVALID)
    {
        return false;
    }

    pt_avl_tree->_t_avlroot._pt_parent = NULL;
    pt_avl_tree->_t_avlroot._pt_left = NULL;
    pt_avl_tree->_t_avlroot._pt_right = NULL;
    pt_avl_tree->_t_avlroot._un_height = 0;

    pt_avl_tree->_t_nodecount = 0;
    pt_avl_tree->_t_compare = NULL;

    _alloc_init(&pt_avl_tree->_t_allocator);
    return true;
}
Пример #10
0
void test__type_get_type__null_typename(void** state)
{
    _typeinfo_t t_info;
    expect_assert_failure(_type_get_type(&t_info, NULL));
}
Пример #11
0
void test__type_get_type__null_typeinfo(void** state)
{
    expect_assert_failure(_type_get_type(NULL, "int"));
}