forked from enlightenment/efl
Eobj: Add a couple of funcs_set tests and fixed a bug related.
SVN revision: 70402
This commit is contained in:
parent
09dba3e746
commit
e066c0041c
|
@ -151,6 +151,7 @@ dich_func_set(Eobj_Class *klass, Eobj_Op op, eobj_op_func_type func)
|
||||||
{
|
{
|
||||||
ERR("OP %x is too big for the domain '%s', expected value < %x.",
|
ERR("OP %x is too big for the domain '%s', expected value < %x.",
|
||||||
op, op_klass->desc->name, op_klass->desc->ops.count);
|
op, op_klass->desc->name, op_klass->desc->ops.count);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -103,10 +103,45 @@ START_TEST(eobj_weak_reference)
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
static void
|
||||||
|
_a_set(Eobj *obj EINA_UNUSED, void *class_data EINA_UNUSED, va_list *list EINA_UNUSED)
|
||||||
|
{
|
||||||
|
fail_if(EINA_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_op_errors_class_constructor(Eobj_Class *klass)
|
||||||
|
{
|
||||||
|
const Eobj_Op_Func_Description func_desc[] = {
|
||||||
|
EOBJ_OP_FUNC(SIMPLE_ID(SIMPLE_SUB_ID_LAST), _a_set),
|
||||||
|
EOBJ_OP_FUNC(SIMPLE_ID(SIMPLE_SUB_ID_LAST + 1), _a_set),
|
||||||
|
EOBJ_OP_FUNC(0x0F010111, _a_set),
|
||||||
|
EOBJ_OP_FUNC_SENTINEL
|
||||||
|
};
|
||||||
|
|
||||||
|
eobj_class_funcs_set(klass, func_desc);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(eobj_op_errors)
|
START_TEST(eobj_op_errors)
|
||||||
{
|
{
|
||||||
eobj_init();
|
eobj_init();
|
||||||
Eobj *obj = eobj_add(SIMPLE_CLASS, NULL);
|
|
||||||
|
static const Eobj_Class_Description class_desc = {
|
||||||
|
"Simple",
|
||||||
|
EOBJ_CLASS_TYPE_REGULAR,
|
||||||
|
EOBJ_CLASS_DESCRIPTION_OPS(NULL, NULL, 0),
|
||||||
|
NULL,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
_op_errors_class_constructor,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
const Eobj_Class *klass = eobj_class_new(&class_desc, SIMPLE_CLASS, NULL);
|
||||||
|
fail_if(!klass);
|
||||||
|
|
||||||
|
Eobj *obj = eobj_add(klass, NULL);
|
||||||
|
|
||||||
/* Out of bounds op for a legal class. */
|
/* Out of bounds op for a legal class. */
|
||||||
fail_if(eobj_do(obj, 0x00010111));
|
fail_if(eobj_do(obj, 0x00010111));
|
||||||
|
|
Loading…
Reference in New Issue