csharp: Make tests compile after collections

They should be reviewed more carefully as we implement the new
collection scheme. Bunch of failures either by non implemented features
or by deprecated tests.

For example, eina_array_int_in modifies the passed array in-place and
this should be visible to the original passed list, shouldn't it?
This commit is contained in:
Lauro Moura 2019-11-25 12:54:27 -03:00
parent 8aa48d7fe7
commit 905394a7f3
2 changed files with 57 additions and 232 deletions

View File

@ -920,26 +920,20 @@ class TestEinaArray
public static void test_eina_array_int_in() public static void test_eina_array_int_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<int>(); var arr = new List<int>();
arr.Append(base_seq_int); arr.AddRange(base_seq_int);
Test.Assert(t.EinaArrayIntIn(arr)); Test.Assert(t.EinaArrayIntIn(arr));
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(modified_seq_int)); Test.Assert(arr.ToArray().SequenceEqual(modified_seq_int));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_array_int_in_own() public static void test_eina_array_int_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<int>(); var arr = new List<int>();
arr.Append(base_seq_int); arr.AddRange(base_seq_int);
Test.Assert(t.EinaArrayIntInOwn(arr)); Test.Assert(t.EinaArrayIntInOwn(arr));
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(modified_seq_int)); Test.Assert(arr.ToArray().SequenceEqual(modified_seq_int));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayIntInOwn()); Test.Assert(t.CheckEinaArrayIntInOwn());
t.Dispose(); t.Dispose();
} }
@ -947,13 +941,9 @@ class TestEinaArray
public static void test_eina_array_int_out() public static void test_eina_array_int_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<int> arr; IList<int> arr;
Test.Assert(t.EinaArrayIntOut(out arr)); Test.Assert(t.EinaArrayIntOut(out arr));
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_int)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_int));
Test.Assert(arr.Append(append_seq_int));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayIntOut()); Test.Assert(t.CheckEinaArrayIntOut());
t.Dispose(); t.Dispose();
} }
@ -961,13 +951,9 @@ class TestEinaArray
public static void test_eina_array_int_out_own() public static void test_eina_array_int_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<int> arr; IList<int> arr;
Test.Assert(t.EinaArrayIntOutOwn(out arr)); Test.Assert(t.EinaArrayIntOutOwn(out arr));
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_int)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_int));
Test.Assert(arr.Append(append_seq_int));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -975,11 +961,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayIntReturn(); var arr = t.EinaArrayIntReturn();
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_int)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_int));
Test.Assert(arr.Append(append_seq_int));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayIntReturn()); Test.Assert(t.CheckEinaArrayIntReturn());
t.Dispose(); t.Dispose();
} }
@ -988,11 +970,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayIntReturnOwn(); var arr = t.EinaArrayIntReturnOwn();
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_int)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_int));
Test.Assert(arr.Append(append_seq_int));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -1000,26 +978,20 @@ class TestEinaArray
public static void test_eina_array_str_in() public static void test_eina_array_str_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<string>(); var arr = new List<string>();
arr.Append(base_seq_str); arr.AddRange(base_seq_str);
Test.Assert(t.EinaArrayStrIn(arr)); Test.Assert(t.EinaArrayStrIn(arr));
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(modified_seq_str)); Test.Assert(arr.ToArray().SequenceEqual(modified_seq_str));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_array_str_in_own() public static void test_eina_array_str_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<string>(); var arr = new List<string>();
arr.Append(base_seq_str); arr.AddRange(base_seq_str);
Test.Assert(t.EinaArrayStrInOwn(arr)); Test.Assert(t.EinaArrayStrInOwn(arr));
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(modified_seq_str)); Test.Assert(arr.ToArray().SequenceEqual(modified_seq_str));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayStrInOwn()); Test.Assert(t.CheckEinaArrayStrInOwn());
t.Dispose(); t.Dispose();
} }
@ -1027,13 +999,9 @@ class TestEinaArray
public static void test_eina_array_str_out() public static void test_eina_array_str_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<string> arr; IList<string> arr;
Test.Assert(t.EinaArrayStrOut(out arr)); Test.Assert(t.EinaArrayStrOut(out arr));
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_str)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_str));
Test.Assert(arr.Append(append_seq_str));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayStrOut()); Test.Assert(t.CheckEinaArrayStrOut());
t.Dispose(); t.Dispose();
} }
@ -1041,13 +1009,9 @@ class TestEinaArray
public static void test_eina_array_str_out_own() public static void test_eina_array_str_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<string> arr; IList<string> arr;
Test.Assert(t.EinaArrayStrOutOwn(out arr)); Test.Assert(t.EinaArrayStrOutOwn(out arr));
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_str)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_str));
Test.Assert(arr.Append(append_seq_str));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -1055,11 +1019,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayStrReturn(); var arr = t.EinaArrayStrReturn();
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_str)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_str));
Test.Assert(arr.Append(append_seq_str));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayStrReturn()); Test.Assert(t.CheckEinaArrayStrReturn());
t.Dispose(); t.Dispose();
} }
@ -1068,11 +1028,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayStrReturnOwn(); var arr = t.EinaArrayStrReturnOwn();
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_str)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_str));
Test.Assert(arr.Append(append_seq_str));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -1080,26 +1036,20 @@ class TestEinaArray
public static void test_eina_array_strshare_in() public static void test_eina_array_strshare_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<Eina.Stringshare>(); var arr = new List<Eina.Stringshare>();
arr.Append(base_seq_strshare); arr.AddRange(base_seq_strshare);
Test.Assert(t.EinaArrayStrshareIn(arr)); Test.Assert(t.EinaArrayStrshareIn(arr));
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(modified_seq_strshare)); Test.Assert(arr.ToArray().SequenceEqual(modified_seq_strshare));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_array_strshare_in_own() public static void test_eina_array_strshare_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<Eina.Stringshare>(); var arr = new List<Eina.Stringshare>();
arr.Append(base_seq_strshare); arr.AddRange(base_seq_strshare);
Test.Assert(t.EinaArrayStrshareInOwn(arr)); Test.Assert(t.EinaArrayStrshareInOwn(arr));
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(modified_seq_strshare)); Test.Assert(arr.ToArray().SequenceEqual(modified_seq_strshare));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayStrshareInOwn()); Test.Assert(t.CheckEinaArrayStrshareInOwn());
t.Dispose(); t.Dispose();
} }
@ -1107,13 +1057,9 @@ class TestEinaArray
public static void test_eina_array_strshare_out() public static void test_eina_array_strshare_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<Eina.Stringshare> arr; IList<Eina.Stringshare> arr;
Test.Assert(t.EinaArrayStrshareOut(out arr)); Test.Assert(t.EinaArrayStrshareOut(out arr));
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare));
Test.Assert(arr.Append(append_seq_strshare));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayStrshareOut()); Test.Assert(t.CheckEinaArrayStrshareOut());
t.Dispose(); t.Dispose();
} }
@ -1121,13 +1067,9 @@ class TestEinaArray
public static void test_eina_array_strshare_out_own() public static void test_eina_array_strshare_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<Eina.Stringshare> arr; IList<Eina.Stringshare> arr;
Test.Assert(t.EinaArrayStrshareOutOwn(out arr)); Test.Assert(t.EinaArrayStrshareOutOwn(out arr));
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare));
Test.Assert(arr.Append(append_seq_strshare));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -1135,11 +1077,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayStrshareReturn(); var arr = t.EinaArrayStrshareReturn();
Test.Assert(!arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare));
Test.Assert(arr.Append(append_seq_strshare));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayStrshareReturn()); Test.Assert(t.CheckEinaArrayStrshareReturn());
t.Dispose(); t.Dispose();
} }
@ -1148,11 +1086,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayStrshareReturnOwn(); var arr = t.EinaArrayStrshareReturnOwn();
Test.Assert(arr.Own);
Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(arr.ToArray().SequenceEqual(base_seq_strshare));
Test.Assert(arr.Append(append_seq_strshare));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -1161,26 +1095,20 @@ class TestEinaArray
public static void test_eina_array_obj_in() public static void test_eina_array_obj_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<Dummy.Numberwrapper>(); var arr = new List<Dummy.Numberwrapper>();
arr.Append(BaseSeqObj()); arr.AddRange(BaseSeqObj());
Test.Assert(t.EinaArrayObjIn(arr)); Test.Assert(t.EinaArrayObjIn(arr));
Test.Assert(arr.Own);
NumberwrapperSequenceAssertEqual(arr.ToArray(), ModifiedSeqObj()); NumberwrapperSequenceAssertEqual(arr.ToArray(), ModifiedSeqObj());
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_array_obj_in_own() public static void test_eina_array_obj_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = new Eina.Array<Dummy.Numberwrapper>(); var arr = new List<Dummy.Numberwrapper>();
arr.Append(BaseSeqObj()); arr.AddRange(BaseSeqObj());
Test.Assert(t.EinaArrayObjInOwn(arr)); Test.Assert(t.EinaArrayObjInOwn(arr));
Test.Assert(!arr.Own);
NumberwrapperSequenceAssertEqual(arr.ToArray(), ModifiedSeqObj()); NumberwrapperSequenceAssertEqual(arr.ToArray(), ModifiedSeqObj());
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayObjInOwn()); Test.Assert(t.CheckEinaArrayObjInOwn());
t.Dispose(); t.Dispose();
} }
@ -1188,13 +1116,9 @@ class TestEinaArray
public static void test_eina_array_obj_out() public static void test_eina_array_obj_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<Dummy.Numberwrapper> arr; IList<Dummy.Numberwrapper> arr;
Test.Assert(t.EinaArrayObjOut(out arr)); Test.Assert(t.EinaArrayObjOut(out arr));
Test.Assert(!arr.Own);
NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj());
Test.Assert(arr.Append(AppendSeqObj()));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayObjOut()); Test.Assert(t.CheckEinaArrayObjOut());
t.Dispose(); t.Dispose();
} }
@ -1202,13 +1126,9 @@ class TestEinaArray
public static void test_eina_array_obj_out_own() public static void test_eina_array_obj_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.Array<Dummy.Numberwrapper> arr; IList<Dummy.Numberwrapper> arr;
Test.Assert(t.EinaArrayObjOutOwn(out arr)); Test.Assert(t.EinaArrayObjOutOwn(out arr));
Test.Assert(arr.Own);
NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj());
Test.Assert(arr.Append(AppendSeqObj()));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -1216,11 +1136,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayObjReturn(); var arr = t.EinaArrayObjReturn();
Test.Assert(!arr.Own);
NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj());
Test.Assert(arr.Append(AppendSeqObj()));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaArrayObjReturn()); Test.Assert(t.CheckEinaArrayObjReturn());
t.Dispose(); t.Dispose();
} }
@ -1229,11 +1145,7 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var arr = t.EinaArrayObjReturnOwn(); var arr = t.EinaArrayObjReturnOwn();
Test.Assert(arr.Own);
NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(arr.ToArray(), BaseSeqObj());
Test.Assert(arr.Append(AppendSeqObj()));
arr.Dispose();
Test.Assert(arr.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -1241,18 +1153,17 @@ class TestEinaArray
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var cmp = BaseSeqObj(); var cmp = BaseSeqObj();
var a = new Eina.Array<Dummy.Numberwrapper>(); var a = new List<Dummy.Numberwrapper>();
a.Append(cmp); a.AddRange(cmp);
var b = t.EinaArrayObjReturnIn(a); var b = t.EinaArrayObjReturnIn(a);
NumberwrapperSequenceAssertEqual(a.ToArray(), b.ToArray()); NumberwrapperSequenceAssertEqual(a.ToArray(), b.ToArray());
NumberwrapperSequenceAssertEqual(a.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(a.ToArray(), BaseSeqObj());
int len = a.Length; int len = a.Count;
for (int i=0; i < len; ++i) for (int i=0; i < len; ++i)
{ {
Test.Assert(a[i].NativeHandle == b[i].NativeHandle); Test.Assert(a[i].NativeHandle == b[i].NativeHandle);
Test.Assert(a[i].NativeHandle == cmp[i].NativeHandle); Test.Assert(a[i].NativeHandle == cmp[i].NativeHandle);
} }
a.Dispose();
t.Dispose(); t.Dispose();
} }
@ -2101,25 +2012,19 @@ class TestEinaList
public static void test_eina_list_int_in() public static void test_eina_list_int_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<int>(); var lst = new List<int>();
lst.AppendArray(base_seq_int); lst.AddRange(base_seq_int);
Test.Assert(t.EinaListIntIn(lst)); Test.Assert(t.EinaListIntIn(lst));
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_int)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_int));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_list_int_in_own() public static void test_eina_list_int_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<int>(); var lst = new List<int>();
lst.AppendArray(base_seq_int); lst.AddRange(base_seq_int);
Test.Assert(t.EinaListIntInOwn(lst)); Test.Assert(t.EinaListIntInOwn(lst));
Test.Assert(!lst.Own);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListIntInOwn()); Test.Assert(t.CheckEinaListIntInOwn());
t.Dispose(); t.Dispose();
} }
@ -2127,12 +2032,9 @@ class TestEinaList
public static void test_eina_list_int_out() public static void test_eina_list_int_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<int> lst; IList<int> lst;
Test.Assert(t.EinaListIntOut(out lst)); Test.Assert(t.EinaListIntOut(out lst));
Test.Assert(!lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_int)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_int));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListIntOut()); Test.Assert(t.CheckEinaListIntOut());
t.Dispose(); t.Dispose();
} }
@ -2140,13 +2042,9 @@ class TestEinaList
public static void test_eina_list_int_out_own() public static void test_eina_list_int_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<int> lst; IList<int> lst;
Test.Assert(t.EinaListIntOutOwn(out lst)); Test.Assert(t.EinaListIntOutOwn(out lst));
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_int)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_int));
lst.AppendArray(append_seq_int);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2154,10 +2052,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListIntReturn(); var lst = t.EinaListIntReturn();
Test.Assert(!lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_int)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_int));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListIntReturn()); Test.Assert(t.CheckEinaListIntReturn());
t.Dispose(); t.Dispose();
} }
@ -2166,11 +2061,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListIntReturnOwn(); var lst = t.EinaListIntReturnOwn();
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_int)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_int));
lst.AppendArray(append_seq_int);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2178,25 +2069,19 @@ class TestEinaList
public static void test_eina_list_str_in() public static void test_eina_list_str_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<string>(); var lst = new List<string>();
lst.AppendArray(base_seq_str); lst.AddRange(base_seq_str);
Test.Assert(t.EinaListStrIn(lst)); Test.Assert(t.EinaListStrIn(lst));
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_str)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_str));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_list_str_in_own() public static void test_eina_list_str_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<string>(); var lst = new List<string>();
lst.AppendArray(base_seq_str); lst.AddRange(base_seq_str);
Test.Assert(t.EinaListStrInOwn(lst)); Test.Assert(t.EinaListStrInOwn(lst));
Test.Assert(!lst.Own);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListStrInOwn()); Test.Assert(t.CheckEinaListStrInOwn());
t.Dispose(); t.Dispose();
} }
@ -2204,12 +2089,9 @@ class TestEinaList
public static void test_eina_list_str_out() public static void test_eina_list_str_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<string> lst; IList<string> lst;
Test.Assert(t.EinaListStrOut(out lst)); Test.Assert(t.EinaListStrOut(out lst));
Test.Assert(!lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_str)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_str));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListStrOut()); Test.Assert(t.CheckEinaListStrOut());
t.Dispose(); t.Dispose();
} }
@ -2217,13 +2099,9 @@ class TestEinaList
public static void test_eina_list_str_out_own() public static void test_eina_list_str_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<string> lst; IList<string> lst;
Test.Assert(t.EinaListStrOutOwn(out lst)); Test.Assert(t.EinaListStrOutOwn(out lst));
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_str)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_str));
lst.AppendArray(append_seq_str);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2231,10 +2109,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListStrReturn(); var lst = t.EinaListStrReturn();
Test.Assert(!lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_str)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_str));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListStrReturn()); Test.Assert(t.CheckEinaListStrReturn());
t.Dispose(); t.Dispose();
} }
@ -2243,11 +2118,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListStrReturnOwn(); var lst = t.EinaListStrReturnOwn();
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_str)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_str));
lst.AppendArray(append_seq_str);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2255,25 +2126,19 @@ class TestEinaList
public static void test_eina_list_strshare_in() public static void test_eina_list_strshare_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<Eina.Stringshare>(); var lst = new List<Eina.Stringshare>();
lst.AppendArray(base_seq_strshare); lst.AddRange(base_seq_strshare);
Test.Assert(t.EinaListStrshareIn(lst)); Test.Assert(t.EinaListStrshareIn(lst));
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_list_strshare_in_own() public static void test_eina_list_strshare_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<Eina.Stringshare>(); var lst = new List<Eina.Stringshare>();
lst.AppendArray(base_seq_strshare); lst.AddRange(base_seq_strshare);
Test.Assert(t.EinaListStrshareInOwn(lst)); Test.Assert(t.EinaListStrshareInOwn(lst));
Test.Assert(!lst.Own);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListStrshareInOwn()); Test.Assert(t.CheckEinaListStrshareInOwn());
t.Dispose(); t.Dispose();
} }
@ -2281,12 +2146,9 @@ class TestEinaList
public static void test_eina_list_strshare_out() public static void test_eina_list_strshare_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<Eina.Stringshare> lst; IList<Eina.Stringshare> lst;
Test.Assert(t.EinaListStrshareOut(out lst)); Test.Assert(t.EinaListStrshareOut(out lst));
Test.Assert(!lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListStrshareOut()); Test.Assert(t.CheckEinaListStrshareOut());
t.Dispose(); t.Dispose();
} }
@ -2294,13 +2156,9 @@ class TestEinaList
public static void test_eina_list_strshare_out_own() public static void test_eina_list_strshare_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<Eina.Stringshare> lst; IList<Eina.Stringshare> lst;
Test.Assert(t.EinaListStrshareOutOwn(out lst)); Test.Assert(t.EinaListStrshareOutOwn(out lst));
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare));
lst.AppendArray(append_seq_strshare);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2308,10 +2166,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListStrshareReturn(); var lst = t.EinaListStrshareReturn();
Test.Assert(!lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare));
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListStrshareReturn()); Test.Assert(t.CheckEinaListStrshareReturn());
t.Dispose(); t.Dispose();
} }
@ -2320,11 +2175,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListStrshareReturnOwn(); var lst = t.EinaListStrshareReturnOwn();
Test.Assert(lst.Own);
Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare)); Test.Assert(lst.ToArray().SequenceEqual(base_seq_strshare));
lst.AppendArray(append_seq_strshare);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2333,25 +2184,19 @@ class TestEinaList
public static void test_eina_list_obj_in() public static void test_eina_list_obj_in()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<Dummy.Numberwrapper>(); var lst = new List<Dummy.Numberwrapper>();
lst.AppendArray(BaseSeqObj()); lst.AddRange(BaseSeqObj());
Test.Assert(t.EinaListObjIn(lst)); Test.Assert(t.EinaListObjIn(lst));
Test.Assert(lst.Own);
NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj());
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
public static void test_eina_list_obj_in_own() public static void test_eina_list_obj_in_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = new Eina.List<Dummy.Numberwrapper>(); var lst = new List<Dummy.Numberwrapper>();
lst.AppendArray(BaseSeqObj()); lst.AddRange(BaseSeqObj());
Test.Assert(t.EinaListObjInOwn(lst)); Test.Assert(t.EinaListObjInOwn(lst));
Test.Assert(!lst.Own);
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListObjInOwn()); Test.Assert(t.CheckEinaListObjInOwn());
t.Dispose(); t.Dispose();
} }
@ -2359,12 +2204,9 @@ class TestEinaList
public static void test_eina_list_obj_out() public static void test_eina_list_obj_out()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<Dummy.Numberwrapper> lst; IList<Dummy.Numberwrapper> lst;
Test.Assert(t.EinaListObjOut(out lst)); Test.Assert(t.EinaListObjOut(out lst));
Test.Assert(!lst.Own);
NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj());
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListObjOut()); Test.Assert(t.CheckEinaListObjOut());
t.Dispose(); t.Dispose();
} }
@ -2372,13 +2214,11 @@ class TestEinaList
public static void test_eina_list_obj_out_own() public static void test_eina_list_obj_out_own()
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
Eina.List<Dummy.Numberwrapper> lst; IList<Dummy.Numberwrapper> lst;
// We don't have a way to directly check if the underlying native object returned in the out param
// was freed, do we?
Test.Assert(t.EinaListObjOutOwn(out lst)); Test.Assert(t.EinaListObjOutOwn(out lst));
Test.Assert(lst.Own);
NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj());
lst.AppendArray(AppendSeqObj());
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2386,10 +2226,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListObjReturn(); var lst = t.EinaListObjReturn();
Test.Assert(!lst.Own);
NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj());
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
Test.Assert(t.CheckEinaListObjReturn()); Test.Assert(t.CheckEinaListObjReturn());
t.Dispose(); t.Dispose();
} }
@ -2398,11 +2235,7 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var lst = t.EinaListObjReturnOwn(); var lst = t.EinaListObjReturnOwn();
Test.Assert(lst.Own);
NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(lst.ToArray(), BaseSeqObj());
lst.AppendArray(AppendSeqObj());
lst.Dispose();
Test.Assert(lst.Handle == IntPtr.Zero);
t.Dispose(); t.Dispose();
} }
@ -2410,19 +2243,11 @@ class TestEinaList
{ {
var t = new Dummy.TestObject(); var t = new Dummy.TestObject();
var cmp = BaseSeqObj(); var cmp = BaseSeqObj();
var a = new Eina.List<Dummy.Numberwrapper>(); var a = new List<Dummy.Numberwrapper>();
a.AppendArray(cmp); a.AddRange(cmp);
var b = t.EinaListObjReturnIn(a); var b = t.EinaListObjReturnIn(a);
NumberwrapperSequenceAssertEqual(a.ToArray(), b.ToArray()); NumberwrapperSequenceAssertEqual(a.ToArray(), b.ToArray());
NumberwrapperSequenceAssertEqual(a.ToArray(), BaseSeqObj()); NumberwrapperSequenceAssertEqual(a.ToArray(), BaseSeqObj());
int len = a.Length;
for (int i=0; i < len; ++i)
{
Test.Assert(a[i].NativeHandle == b[i].NativeHandle);
Test.Assert(a[i].NativeHandle == cmp[i].NativeHandle);
}
a.Dispose();
t.Dispose();
} }
} }

View File

@ -227,8 +227,8 @@ class TestEoEvents
public static void event_with_array_payload() public static void event_with_array_payload()
{ {
var obj = new Dummy.TestObject(); var obj = new Dummy.TestObject();
List<string> received = null; IList<string> received = null;
List<string> sent = new List<string>(); IList<string> sent = new List<string>();
sent.Add("Abc"); sent.Add("Abc");
sent.Add("Def"); sent.Add("Def");