IGNITE-4367 .NET: Fix flaky tests
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7b50a251 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7b50a251 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7b50a251 Branch: refs/heads/ignite-4371 Commit: 7b50a25133e2fa2539d30de5dcfe26e66d38f3a0 Parents: 3ab5a2f Author: Pavel Tupitsyn <[email protected]> Authored: Wed Dec 7 18:28:45 2016 +0300 Committer: Pavel Tupitsyn <[email protected]> Committed: Wed Dec 7 18:28:45 2016 +0300 ---------------------------------------------------------------------- .../Binary/BinaryCompactFooterInteropTest.cs | 31 ++++++++++--- .../Apache.Ignite.Core.Tests/ExecutableTest.cs | 2 +- .../Apache.Ignite.Core.Tests/ReconnectTest.cs | 4 +- .../Services/ServicesTest.cs | 46 ++++++++++++-------- .../EntityFrameworkCacheTest.cs | 6 +-- 5 files changed, 61 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/7b50a251/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryCompactFooterInteropTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryCompactFooterInteropTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryCompactFooterInteropTest.cs index 27b97fd..830e7f4 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryCompactFooterInteropTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryCompactFooterInteropTest.cs @@ -17,6 +17,7 @@ namespace Apache.Ignite.Core.Tests.Binary { + using System; using System.Collections; using System.Linq; using Apache.Ignite.Core.Binary; @@ -63,12 +64,30 @@ namespace Apache.Ignite.Core.Tests.Binary [Test] public void TestFromJava([Values(true, false)] bool client) { - var grid = client ? _clientGrid : _grid; - - var fromJava = grid.GetCompute().ExecuteJavaTask<PlatformComputeBinarizable>(ComputeApiTest.EchoTask, - ComputeApiTest.EchoTypeBinarizable); - - Assert.AreEqual(1, fromJava.Field); + // Retry multiple times: IGNITE-4377 + for (int i = 0; i < 10; i++) + { + var grid = client ? _clientGrid : _grid; + + try + { + var fromJava = grid.GetCompute().ExecuteJavaTask<PlatformComputeBinarizable>(ComputeApiTest.EchoTask, + ComputeApiTest.EchoTypeBinarizable); + + Assert.AreEqual(1, fromJava.Field); + + return; + } + catch (Exception ex) + { + Console.WriteLine("TestFromJava failed on try {0}: \n {1}", i, ex); + + if (i < 9) + continue; + + throw; + } + } } /// <summary> http://git-wip-us.apache.org/repos/asf/ignite/blob/7b50a251/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ExecutableTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ExecutableTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ExecutableTest.cs index 3b24b2e..636e0fe 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ExecutableTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ExecutableTest.cs @@ -321,7 +321,7 @@ namespace Apache.Ignite.Core.Tests var proc = new IgniteProcess(reader, args); int exitCode; - Assert.IsTrue(proc.Join(3000, out exitCode)); + Assert.IsTrue(proc.Join(30000, out exitCode)); Assert.AreEqual(-1, exitCode); lock (reader.List) http://git-wip-us.apache.org/repos/asf/ignite/blob/7b50a251/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ReconnectTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ReconnectTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ReconnectTest.cs index 91e4c06..fdf64a3 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ReconnectTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ReconnectTest.cs @@ -75,7 +75,7 @@ namespace Apache.Ignite.Core.Tests Assert.IsTrue(ex.ClientReconnectTask.Result); // Check the event args. - Thread.Sleep(1); // Wait for event handler + Thread.Sleep(100); // Wait for event handler Assert.IsNotNull(eventArgs); Assert.IsTrue(eventArgs.HasClusterRestarted); @@ -148,6 +148,8 @@ namespace Apache.Ignite.Core.Tests Assert.AreEqual(1, cache[1]); Assert.AreEqual(1, disconnected); + + Thread.Sleep(100); // Wait for event handler Assert.AreEqual(1, reconnected); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/7b50a251/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs index 0558d11..38a96bd 100644 --- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Services/ServicesTest.cs @@ -762,6 +762,9 @@ namespace Apache.Ignite.Core.Tests.Services [InstanceResource] private IIgnite _grid; + /** */ + private readonly object _syncRoot = new object(); + /** <inheritdoc /> */ public int TestProperty { get; set; } @@ -807,41 +810,50 @@ namespace Apache.Ignite.Core.Tests.Services /** <inheritdoc /> */ public void Init(IServiceContext context) { - if (ThrowInit) - throw new Exception("Expected exception"); + lock (_syncRoot) + { + if (ThrowInit) + throw new Exception("Expected exception"); - CheckContext(context); + CheckContext(context); - Assert.IsFalse(context.IsCancelled); - Initialized = true; + Assert.IsFalse(context.IsCancelled); + Initialized = true; + } } /** <inheritdoc /> */ public void Execute(IServiceContext context) { - if (ThrowExecute) - throw new Exception("Expected exception"); + lock (_syncRoot) + { + if (ThrowExecute) + throw new Exception("Expected exception"); - CheckContext(context); + CheckContext(context); - Assert.IsFalse(context.IsCancelled); - Assert.IsTrue(Initialized); - Assert.IsFalse(Cancelled); + Assert.IsFalse(context.IsCancelled); + Assert.IsTrue(Initialized); + Assert.IsFalse(Cancelled); - Executed = true; + Executed = true; + } } /** <inheritdoc /> */ public void Cancel(IServiceContext context) { - if (ThrowCancel) - throw new Exception("Expected exception"); + lock (_syncRoot) + { + if (ThrowCancel) + throw new Exception("Expected exception"); - CheckContext(context); + CheckContext(context); - Assert.IsTrue(context.IsCancelled); + Assert.IsTrue(context.IsCancelled); - Cancelled = true; + Cancelled = true; + } } /// <summary> http://git-wip-us.apache.org/repos/asf/ignite/blob/7b50a251/modules/platforms/dotnet/Apache.Ignite.EntityFramework.Tests/EntityFrameworkCacheTest.cs ---------------------------------------------------------------------- diff --git a/modules/platforms/dotnet/Apache.Ignite.EntityFramework.Tests/EntityFrameworkCacheTest.cs b/modules/platforms/dotnet/Apache.Ignite.EntityFramework.Tests/EntityFrameworkCacheTest.cs index 8b9f955..0e095f4 100644 --- a/modules/platforms/dotnet/Apache.Ignite.EntityFramework.Tests/EntityFrameworkCacheTest.cs +++ b/modules/platforms/dotnet/Apache.Ignite.EntityFramework.Tests/EntityFrameworkCacheTest.cs @@ -662,10 +662,10 @@ namespace Apache.Ignite.EntityFramework.Tests [Category(TestUtils.CategoryIntensive)] public void TestOldEntriesCleanupMultithreaded() { - TestUtils.RunMultiThreaded(CreateRemoveBlog, 4, 10); + TestUtils.RunMultiThreaded(CreateRemoveBlog, 4, 5); // Wait for the cleanup to complete. - Thread.Sleep(500); + Thread.Sleep(2000); // Only one version of data is in the cache. Assert.AreEqual(1, _cache.GetSize()); @@ -700,7 +700,7 @@ namespace Apache.Ignite.EntityFramework.Tests } Interlocked.Increment(ref opCnt); - }, 4, 10); + }, 4, 5); var setVersion = _metaCache["Blog"];
