forked from enlightenment/efl
efl_mono: Use architecture independent ECANCELED
Summary: `efl_mono` was assuming ECANCELED as in Linux, which made some tests fail. `test_simple_futere_cancel` and `test_cancel_after_resolve` checks if the returned error code is `ECANCELED` but `Eina.Error.ECANCELED` was base on Linux `ECANCELED` which is diferent from OSX causing: ``` [ ERROR ] AssertionException: /Users/lucas/expertise/efl1/src/tests/efl_mono/Promises.cs:138 (test_simple_future_cancel) Left hand side "Eina.Error(89)", right hand side "Eina.Error(125)" at Test.AssertEquals[T](T lhs, T rhs, String msg, Int32 line, String file, String member) in /Users/lucas/expertise/efl1/src/tests/efl_mono/TestUtils.cs:line 73 at TestSuite.TestPromises.test_simple_future_cancel() in /Users/lucas/expertise/efl1/src/tests/efl_mono/Promises.cs:line 138 [ FAIL ] TestPromises.test_simple_future_cancel ``` ``` [ ERROR ] AssertionException: /Users/lucas/expertise/efl1/src/tests/efl_mono/Promises.cs:256 (test_cancel_after_resolve) Left hand side "Eina.Error(89)", right hand side "Eina.Error(125)" at Test.AssertEquals[T](T lhs, T rhs, String msg, Int32 line, String file, String member) in /Users/lucas/expertise/efl1/src/tests/efl_mono/TestUtils.cs:line 73 at TestSuite.TestPromises.test_cancel_after_resolve() in /Users/lucas/expertise/efl1/src/tests/efl_mono/Promises.cs:line 256 [ FAIL ] TestPromises.test_cancel_after_resolve ``` And `iwraper.cs:WrapAssync` was only considering Linux `ECANCELED` thus causing a rise of an `Efl.FutureException: Future failed` instead of the expected `TaskCanceledException` making fail at `TestEoAsyncMethods.test_async_cancel`: ``` [ RUN ] TestEoAsyncMethods.test_async_cancel [ ERROR ] AssertionException: Assertion failed: /Users/lucas/expertise/efl1/src/tests/efl_mono/EoPromises.cs:175 (test_async_cancel) AggregateException must have been TaskCanceledException at Test.Assert(Boolean res, String msg, Int32 line, String file, String member) in /Users/lucas/expertise/efl1/src/tests/efl_mono/TestUtils.cs:line 53 at TestSuite.TestEoAsyncMethods.<>c.<test_async_cancel>b__1_0(Exception x) in /Users/lucas/expertise/efl1/src/tests/efl_mono/EoPromises.cs:line 175 at System.AggregateException.Handle(Func`2 predicate) at TestSuite.TestEoAsyncMethods.test_async_cancel() in /Users/lucas/expertise/efl1/src/tests/efl_mono/EoPromises.cs:line 171 [ FAIL ] TestEoAsyncMethods.test_async_cancel ``` Depends on D12156 Test Plan: Compare with master and note that with this diff all tests pass. - Configure as especified by Enlightenment man page + `-Dbindigns=mono -Ddotnet=true`: ``` meson -Dsystemd=false -Dv4l2=false -Davahi=false -Deeze=false -Dx11=false -Dopengl=full -Dcocoa=true -Dnls=false -Demotion-loaders-disabler=gstreamer1,libvlc,xine -Decore-imf-loaders-disabler=scim,ibus -Dbindigns=cxx,mono -Ddotnet=true build ``` - Build normally - Test `efl-mono-suite` Reviewers: felipealmeida Reviewed By: felipealmeida Subscribers: ProhtMeyhet, cedric, #reviewers, #committers, woohyun Tags: #efl Differential Revision: https://phab.enlightenment.org/D12157
This commit is contained in:
parent
4de94638a6
commit
4797602e84
|
@ -59,11 +59,27 @@ public struct Error : IComparable<Error>, IEquatable<Error>
|
|||
/// <para>Since EFL 1.23.</para>
|
||||
/// </summary>
|
||||
public static readonly Error ENOENT = new Error(2);
|
||||
|
||||
/// <summary>
|
||||
/// Return architecture independent ECANCELED error code.
|
||||
/// Returns 125 for Linux, 89 for OSX and 105 for Windows.
|
||||
/// <para>Since EFL 1.25.</para>
|
||||
/// </summary>
|
||||
private static int IndependentECANCELED()
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
||||
return new Error(125);
|
||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||
return new Error(89);
|
||||
else // Windows
|
||||
return new Error(105);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Cancelled error identifier.
|
||||
/// <para>Since EFL 1.23.</para>
|
||||
/// </summary>
|
||||
public static readonly Error ECANCELED = new Error(125);
|
||||
public static readonly Error ECANCELED = IndependentECANCELED();
|
||||
|
||||
/// <summary>
|
||||
/// Constructor.
|
||||
|
|
Loading…
Reference in New Issue