eolian_cxx: move tests of list<> to be protected by @beta.

Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11047
This commit is contained in:
Cedric BAIL 2020-01-02 15:24:12 -08:00 committed by Felipe Magno de Almeida
parent b8ccf5e5e7
commit 0f49f5e472
4 changed files with 51 additions and 24 deletions

View File

@ -3,47 +3,47 @@ class Complex extends Efl.Object
data: Complex_Data;
methods {
// container test
inptrcont {
inptrcont @beta {
params {
l: list<string>;
}
}
inclasscont {
inclasscont @beta {
params {
l: list<Efl.Object>;
}
}
incontcont {
incontcont @beta {
params {
l: list<list<string>>;
}
}
incontcontown {
incontcontown @beta {
params {
l: list<list<string>> @move;
}
}
incontowncontown {
incontowncontown @beta {
params {
l: list<list<string> @move> @move;
}
}
incontowncont {
incontowncont @beta {
params {
l: list<list<string> @move>;
}
}
instringcont {
instringcont @beta {
params {
l: list<string>;
}
}
instringowncont {
instringowncont @beta {
params {
l: list<mstring @move>;
}
}
instringcontown {
instringcontown @beta {
params {
l: list<string> @move;
}
@ -89,42 +89,42 @@ class Complex extends Efl.Object
}
}
// out
outclasscont {
outclasscont @beta {
params {
@out l: list<Efl.Object>;
}
}
outcontcont {
outcontcont @beta {
params {
@out l: list<list<string>>;
}
}
outcontcontown {
outcontcontown @beta {
params {
@out l: list<list<string>> @move;
}
}
outcontowncontown {
outcontowncontown @beta {
params {
@out l: list<list<string> @move> @move;
}
}
outcontowncont {
outcontowncont @beta {
params {
@out l: list<list<string> @move>;
}
}
outstringcont {
outstringcont @beta {
params {
@out l: list<string>;
}
}
outstringowncont {
outstringowncont @beta {
params {
@out l: list<mstring @move>;
}
}
outstringcontown {
outstringcontown @beta {
params {
@out l: list<string> @move;
}
@ -169,7 +169,7 @@ class Complex extends Efl.Object
@out l: accessor<int> @move;
}
}
foo {
foo @beta {
params {
l: list<string>;
}

View File

@ -21,6 +21,7 @@
#include <map>
#define GENERIC_BETA
#include <generic.eo.hh>
#include <generic.eo.impl.hh>
#include <name1_name2_type_generation.eo.hh>
@ -160,8 +161,8 @@ EFL_START_TEST(eolian_cxx_test_type_callback)
efl::eo::eo_init i;
bool event1 = false, event2 = false, event3 = false, event4 = false
, event5 = false;
, event5 = false, event6 = false;
nonamespace::Generic g(efl::eo::instantiate);
efl::eolian::event_add(g.prefix_event1_event, g, [&] (nonamespace::Generic)
{
@ -183,22 +184,28 @@ EFL_START_TEST(eolian_cxx_test_type_callback)
// FIXME eina::range_array is incompatible with eina::string_view
//ck_assert(*e.begin() == efl::eina::string_view{"42"});
});
efl::eolian::event_add(g.prefix_event5_event, g, [&] (nonamespace::Generic, Generic_Event)
efl::eolian::event_add(g.prefix_event5_event, g, [&] (nonamespace::Generic, Generic_Beta_Event)
{
event5 = true;
});
efl::eolian::event_add(g.prefix_event6_event, g, [&] (nonamespace::Generic, Generic_Event)
{
event6 = true;
});
g.call_event1();
g.call_event2();
g.call_event3();
g.call_event4();
g.call_event5();
g.call_event6();
ck_assert(event1);
ck_assert(event2);
ck_assert(event3);
ck_assert(event4);
ck_assert(event5);
ck_assert(event6);
}
EFL_END_TEST

View File

@ -125,10 +125,21 @@ static void _generic_call_event5(Eo *obj, Generic_Data* pd EINA_UNUSED)
const char *s = "42";
Eina_List* p = eina_list_append(NULL, s);
Generic_Event e = {.field1 = 42, .field2 = p};
Generic_Beta_Event e = {.field1 = 42, .field2 = p};
efl_event_callback_call(obj, GENERIC_EVENT_PREFIX_EVENT5, &e);
eina_list_free(p);
}
static void _generic_call_event6(Eo *obj, Generic_Data* pd EINA_UNUSED)
{
const char *s = "42";
Eina_Array* p = eina_array_new(1);
eina_array_push(p, s);
Generic_Event e = {.field1 = 42, .field2 = p};
efl_event_callback_call(obj, GENERIC_EVENT_PREFIX_EVENT6, &e);
eina_array_free(p);
}
static void _generic_protected_method1(Eo *obj EINA_UNUSED, Generic_Data* pd EINA_UNUSED)
{
}

View File

@ -1,8 +1,14 @@
struct @beta Generic.Beta_Event
{
field1: int;
field2: list<string>;
}
struct Generic.Event
{
field1: int;
field2: list<string>;
field2: array<string>;
}
class Generic extends Efl.Object implements Generic_Interface
@ -87,6 +93,8 @@ class Generic extends Efl.Object implements Generic_Interface
}
call_event5 {
}
call_event6 {
}
protected_method1 @protected {
}
@ -129,7 +137,8 @@ class Generic extends Efl.Object implements Generic_Interface
prefix,event2: Generic;
prefix,event3: int;
prefix,event4: const(array<string>);
prefix,event5: Generic.Event;
prefix,event5 @beta: Generic.Beta_Event;
prefix,event6: Generic.Event;
protected,event1 @protected: void;
beta,event1 @beta: void;
protected,beta,event1 @beta @protected: void;