efl-mono: test on inout RwSlice.

This commit is contained in:
Lauro Moura 2019-01-15 01:27:09 -02:00 committed by Vitor Sousa
parent a7cf1b4c3c
commit 6e3768b2b6
3 changed files with 29 additions and 0 deletions

View File

@ -380,6 +380,20 @@ class TestEinaSlice
Test.Assert(slc.GetBytes().SequenceEqual(base_seq));
}
public static void test_eina_rw_slice_inout()
{
var t = new Dummy.TestObject();
var rw_seq = new byte[4]{0xA, 0xA, 0xA, 0xA};
var expected_seq = new byte[4]{0xA, 0xB, 0xC, 0xD};
var pinnedRWData = GCHandle.Alloc(rw_seq, GCHandleType.Pinned);
IntPtr ptr = pinnedRWData.AddrOfPinnedObject();
var slc = new Eina.RwSlice(ptr, (UIntPtr)4);
Test.Assert(t.EinaRwSliceInout(ref slc));
Test.Assert(slc.Mem != IntPtr.Zero);
Test.Assert(slc.Length == rw_seq.Length);
Test.Assert(slc.GetBytes().SequenceEqual(expected_seq));
}
/*
public static void test_eina_slice_return()
{

View File

@ -266,6 +266,13 @@ class Dummy.Test_Object extends Efl.Object implements Efl.Part, Dummy.Test_Iface
return: bool;
}
eina_rw_slice_inout {
params {
@inout slice: Eina.Rw_Slice;
}
return: bool;
}
/*
eina_slice_return {
return: Eina.Slice;

View File

@ -331,6 +331,14 @@ Eina_Bool _dummy_test_object_eina_rw_slice_out(EINA_UNUSED Eo *obj, EINA_UNUSED
return EINA_TRUE;
}
Eina_Bool _dummy_test_object_eina_rw_slice_inout(EINA_UNUSED Eo *obj, EINA_UNUSED Dummy_Test_Object_Data *pd, Eina_Rw_Slice *slice)
{
if (!slice) return EINA_FALSE;
for (size_t i = 0; i < slice->len; i++)
slice->bytes[i] += (uint8_t)i;
return EINA_TRUE;
}
Eina_Slice _dummy_test_object_eina_slice_return(EINA_UNUSED Eo *obj, EINA_UNUSED Dummy_Test_Object_Data *pd)
{
Eina_Slice slc = EINA_SLICE_ARRAY(base_seq);