eolian_mono: parse `binbuf` and `event` keywords, also re-enable binbuf tests

Summary:
Parse `binbuf` and `event` type names and generate the proper binding type.

In 288f645e3c tests for `Eina.Binbuf` were disabled in order to avoid the
usage of deprecated notations in eolian.

Since the new `binbuf` keyword works as a substitute for the old notation
`ptr(Eina.Binbuf)`, tests were updated and re-enabled using the new notation.

Test Plan: `meson test`

Reviewers: felipealmeida, lauromoura, q66

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9349
This commit is contained in:
Vitor Sousa 2019-07-23 14:09:23 +02:00 committed by Daniel Kolesa
parent 8c90deecd7
commit 253e18159b
7 changed files with 42 additions and 30 deletions

View File

@ -103,6 +103,20 @@ struct marshall_type_visitor_generate
r.namespaces.clear();
return r;
}}
, {"binbuf", nullptr, [&]
{
regular_type_def r = regular;
r.base_type = "System.IntPtr";
r.namespaces.clear();
return r;
}}
, {"event", nullptr, [&]
{
regular_type_def r = regular;
r.base_type = "Efl.Event.NativeStruct";
r.namespaces.clear();
return r;
}}
, {"any_value", true, [&]
{
regular_type_def r = regular;

View File

@ -214,6 +214,14 @@ struct visitor_generate
{
return regular_type_def{"Eina.Strbuf", regular.base_qualifier, {}};
}}
, {"binbuf", nullptr, [&]
{
return regular_type_def{"Eina.Binbuf", regular.base_qualifier, {}};
}}
, {"event", nullptr, [&]
{
return regular_type_def{"Efl.Event", regular.base_qualifier, {}};
}}
, {"any_value", true, [&]
{ return regular_type_def{"Eina.Value", regular.base_qualifier, {}};
}}

View File

@ -12,7 +12,6 @@ namespace TestSuite
#if EFL_BETA
/*
class TestEinaBinbuf
{
private static readonly byte[] test_string = System.Text.Encoding.UTF8.GetBytes("0123456789ABCDEF");
@ -309,7 +308,6 @@ class TestEinaBinbuf
Test.Assert(t.binbuf_return_own_no_longer_own());
}
}
*/
#endif

View File

@ -153,7 +153,6 @@ class NativeInheritImpl : Dummy.TestObject
// //
//
#if EFL_BETA
/*
override public bool EinaBinbufIn(Eina.Binbuf binbuf)
{
binbuf_in_flag = true;
@ -282,7 +281,6 @@ class NativeInheritImpl : Dummy.TestObject
binbuf_return_own_binbuf = null;
return r;
}
*/
#endif
}

View File

@ -148,8 +148,8 @@ internal class StructHelpers
complex.Fany_value_ptr = new Eina.Value(Eina.ValueType.String);
complex.Fany_value_ptr.Set("abc");
//complex.Fbinbuf = new Eina.Binbuf();
//complex.Fbinbuf.Append(126);
complex.Fbinbuf = new Eina.Binbuf();
complex.Fbinbuf.Append(126);
complex.Fslice.Length = 1;
complex.Fslice.Mem = Eina.MemoryNative.Alloc(1);
@ -187,8 +187,8 @@ internal class StructHelpers
Test.Assert(complex.Fany_value_ptr.Get(out str_val));
Test.Assert(str_val == "abc");
//Test.Assert(complex.Fbinbuf.Length == 1);
//Test.Assert(complex.Fbinbuf.GetBytes()[0] == 126);
Test.Assert(complex.Fbinbuf.Length == 1);
Test.Assert(complex.Fbinbuf.GetBytes()[0] == 126);
Test.Assert(complex.Fslice.Length == 1);
Test.Assert(complex.Fslice.GetBytes()[0] == 125);
@ -206,7 +206,7 @@ internal class StructHelpers
Test.Assert(complex.Fiterator == null);
Test.Assert(complex.Fany_value == null);
Test.Assert(complex.Fany_value_ptr == null);
//Test.Assert(complex.Fbinbuf == null);
Test.Assert(complex.Fbinbuf == null);
Test.Assert(complex.Fslice.Length == 0);
Test.Assert(complex.Fslice.Mem == IntPtr.Zero);

View File

@ -347,7 +347,6 @@ Eina_Rw_Slice _dummy_test_object_eina_rw_slice_return(EINA_UNUSED Eo *obj, EINA_
return slc;
}
#if 0
Eina_Bool _dummy_test_object_eina_binbuf_in(EINA_UNUSED Eo *obj, EINA_UNUSED Dummy_Test_Object_Data *pd, Eina_Binbuf *binbuf)
{
Eina_Bool r = (0 == memcmp(eina_binbuf_string_get(binbuf), base_seq, eina_binbuf_length_get(binbuf)));
@ -459,7 +458,6 @@ Eina_Binbuf *_dummy_test_object_call_eina_binbuf_return_own(Eo *obj, EINA_UNUSED
{
return dummy_test_object_eina_binbuf_return_own(obj);
}
#endif
static const int base_seq_int[] = {0x0,0x2A,0x42};
@ -4118,8 +4116,8 @@ void struct_complex_with_values(Dummy_StructComplex *complex)
complex->fany_value_ptr = eina_value_new(EINA_VALUE_TYPE_STRING);
eina_value_set(complex->fany_value_ptr, "abc");
//complex->fbinbuf = eina_binbuf_new();
//eina_binbuf_append_char(complex->fbinbuf, 126);
complex->fbinbuf = eina_binbuf_new();
eina_binbuf_append_char(complex->fbinbuf, 126);
complex->fslice.len = 1;
complex->fslice.mem = malloc(1);
@ -4153,10 +4151,8 @@ Eina_Bool check_and_modify_struct_complex(Dummy_StructComplex *complex)
if (!eina_value_get(complex->fany_value_ptr, &str_val) || strcmp(str_val, "abc") != 0)
return EINA_FALSE;
/*
if (eina_binbuf_length_get(complex->fbinbuf) != 1 || eina_binbuf_string_get(complex->fbinbuf)[0] != 126)
return EINA_FALSE;
*/
if (complex->fslice.len != 1 || *(char*)complex->fslice.mem != 125)
return EINA_FALSE;

View File

@ -81,7 +81,7 @@ struct @beta @free(free) Dummy.StructComplex {
fiterator: iterator<string>;
fany_value: any_value;
fany_value_ptr: any_value_ptr;
// fbinbuf: ptr(Eina.Binbuf);
fbinbuf: binbuf;
fslice: slice<ubyte>;
// fslice: ptr(Eina.Slice); // TODO
fobj: Dummy.Numberwrapper;
@ -298,31 +298,30 @@ class Dummy.Test_Object extends Efl.Object implements Dummy.Test_Iface {
}
*/
/*
eina_binbuf_in @beta {
params {
@in binbuf: ptr(Eina.Binbuf);
@in binbuf: binbuf;
}
return: bool;
}
call_eina_binbuf_in @beta {
params {
@in binbuf: ptr(Eina.Binbuf);
@in binbuf: binbuf;
}
return: bool;
}
eina_binbuf_in_own @beta {
params {
@in binbuf: ptr(Eina.Binbuf) @owned;
@in binbuf: binbuf @owned;
}
return: bool;
}
call_eina_binbuf_in_own @beta {
params {
@in str: ptr(Eina.Binbuf) @owned;
@in str: binbuf @owned;
}
return: bool;
}
@ -333,13 +332,13 @@ class Dummy.Test_Object extends Efl.Object implements Dummy.Test_Iface {
eina_binbuf_out @beta {
params {
@out binbuf: ptr(Eina.Binbuf);
@out binbuf: binbuf;
}
return: bool;
}
call_eina_binbuf_out @beta {
return: ptr(Eina.Binbuf);
return: binbuf;
}
check_binbuf_out {
@ -348,21 +347,21 @@ class Dummy.Test_Object extends Efl.Object implements Dummy.Test_Iface {
eina_binbuf_out_own @beta {
params {
@out binbuf: ptr(Eina.Binbuf) @owned;
@out binbuf: binbuf @owned;
}
return: bool;
}
call_eina_binbuf_out_own @beta {
return: ptr(Eina.Binbuf) @owned;
return: binbuf @owned;
}
eina_binbuf_return @beta {
return: ptr(Eina.Binbuf);
return: binbuf;
}
call_eina_binbuf_return @beta {
return: ptr(Eina.Binbuf);
return: binbuf;
}
check_binbuf_return {
@ -370,13 +369,12 @@ class Dummy.Test_Object extends Efl.Object implements Dummy.Test_Iface {
}
eina_binbuf_return_own @beta {
return: ptr(Eina.Binbuf) @owned;
return: binbuf @owned;
}
call_eina_binbuf_return_own @beta {
return: ptr(Eina.Binbuf) @owned;
return: binbuf @owned;
}
*/
/* Eina Array */