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

View File

@ -21,6 +21,7 @@
#include <map> #include <map>
#define GENERIC_BETA
#include <generic.eo.hh> #include <generic.eo.hh>
#include <generic.eo.impl.hh> #include <generic.eo.impl.hh>
#include <name1_name2_type_generation.eo.hh> #include <name1_name2_type_generation.eo.hh>
@ -160,7 +161,7 @@ EFL_START_TEST(eolian_cxx_test_type_callback)
efl::eo::eo_init i; efl::eo::eo_init i;
bool event1 = false, event2 = false, event3 = false, event4 = false bool event1 = false, event2 = false, event3 = false, event4 = false
, event5 = false; , event5 = false, event6 = false;
nonamespace::Generic g(efl::eo::instantiate); nonamespace::Generic g(efl::eo::instantiate);
efl::eolian::event_add(g.prefix_event1_event, g, [&] (nonamespace::Generic) 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 // FIXME eina::range_array is incompatible with eina::string_view
//ck_assert(*e.begin() == efl::eina::string_view{"42"}); //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; event5 = true;
}); });
efl::eolian::event_add(g.prefix_event6_event, g, [&] (nonamespace::Generic, Generic_Event)
{
event6 = true;
});
g.call_event1(); g.call_event1();
g.call_event2(); g.call_event2();
g.call_event3(); g.call_event3();
g.call_event4(); g.call_event4();
g.call_event5(); g.call_event5();
g.call_event6();
ck_assert(event1); ck_assert(event1);
ck_assert(event2); ck_assert(event2);
ck_assert(event3); ck_assert(event3);
ck_assert(event4); ck_assert(event4);
ck_assert(event5); ck_assert(event5);
ck_assert(event6);
} }
EFL_END_TEST 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"; const char *s = "42";
Eina_List* p = eina_list_append(NULL, s); 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); efl_event_callback_call(obj, GENERIC_EVENT_PREFIX_EVENT5, &e);
eina_list_free(p); 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) 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 struct Generic.Event
{ {
field1: int; field1: int;
field2: list<string>; field2: array<string>;
} }
class Generic extends Efl.Object implements Generic_Interface class Generic extends Efl.Object implements Generic_Interface
@ -87,6 +93,8 @@ class Generic extends Efl.Object implements Generic_Interface
} }
call_event5 { call_event5 {
} }
call_event6 {
}
protected_method1 @protected { protected_method1 @protected {
} }
@ -129,7 +137,8 @@ class Generic extends Efl.Object implements Generic_Interface
prefix,event2: Generic; prefix,event2: Generic;
prefix,event3: int; prefix,event3: int;
prefix,event4: const(array<string>); prefix,event4: const(array<string>);
prefix,event5: Generic.Event; prefix,event5 @beta: Generic.Beta_Event;
prefix,event6: Generic.Event;
protected,event1 @protected: void; protected,event1 @protected: void;
beta,event1 @beta: void; beta,event1 @beta: void;
protected,beta,event1 @beta @protected: void; protected,beta,event1 @beta @protected: void;