You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by yz...@apache.org on 2017/10/13 17:43:32 UTC
[47/50] [abbrv] ignite git commit: IGNITE-6050 Fix eternal wait in
DataStreamerTest.TestBufferSize
IGNITE-6050 Fix eternal wait in DataStreamerTest.TestBufferSize
This closes #2448
(cherry picked from commit 2cf1260)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/251a333d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/251a333d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/251a333d
Branch: refs/heads/ignite-2.1.5-p1
Commit: 251a333dfbf09d3f6b69bbb2b7658eb3d88fcf0a
Parents: a318c4a
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Tue Aug 29 14:16:00 2017 +0300
Committer: Dmitriy Govorukhin <dm...@gmail.com>
Committed: Mon Sep 25 13:33:13 2017 +0300
----------------------------------------------------------------------
.../Dataload/DataStreamerTest.cs | 71 +++++++++++++-------
1 file changed, 48 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/251a333d/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Dataload/DataStreamerTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Dataload/DataStreamerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Dataload/DataStreamerTest.cs
index de95003..fe5955f 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Dataload/DataStreamerTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Dataload/DataStreamerTest.cs
@@ -38,6 +38,9 @@ namespace Apache.Ignite.Core.Tests.Dataload
/** Node. */
private IIgnite _grid;
+ /** Node 2. */
+ private IIgnite _grid2;
+
/** Cache. */
private ICache<int, int?> _cache;
@@ -49,7 +52,7 @@ namespace Apache.Ignite.Core.Tests.Dataload
{
_grid = Ignition.Start(TestUtils.GetTestConfiguration());
- Ignition.Start(new IgniteConfiguration(TestUtils.GetTestConfiguration())
+ _grid2 = Ignition.Start(new IgniteConfiguration(TestUtils.GetTestConfiguration())
{
IgniteInstanceName = "grid1"
});
@@ -228,42 +231,64 @@ namespace Apache.Ignite.Core.Tests.Dataload
[Test]
public void TestBufferSize()
{
- using (IDataStreamer<int, int> ldr = _grid.GetDataStreamer<int, int>(CacheName))
+ using (var ldr = _grid.GetDataStreamer<int, int>(CacheName))
{
- var fut = ldr.AddData(1, 1);
+ const int timeout = 5000;
+
+ var part1 = GetPrimaryPartitionKeys(_grid, 4);
+ var part2 = GetPrimaryPartitionKeys(_grid2, 4);
+
+ var task = ldr.AddData(part1[0], part1[0]);
Thread.Sleep(100);
- Assert.IsFalse(fut.IsCompleted);
+ Assert.IsFalse(task.IsCompleted);
ldr.PerNodeBufferSize = 2;
- ldr.AddData(2, 2);
- ldr.AddData(3, 3);
- ldr.AddData(4, 4).Wait();
- fut.Wait();
+ ldr.AddData(part2[0], part2[0]);
+ ldr.AddData(part1[1], part1[1]);
+ Assert.IsTrue(ldr.AddData(part2[1], part2[1]).Wait(timeout));
+ Assert.IsTrue(task.Wait(timeout));
- Assert.AreEqual(1, _cache.Get(1));
- Assert.AreEqual(2, _cache.Get(2));
- Assert.AreEqual(3, _cache.Get(3));
- Assert.AreEqual(4, _cache.Get(4));
+ Assert.AreEqual(part1[0], _cache.Get(part1[0]));
+ Assert.AreEqual(part1[1], _cache.Get(part1[1]));
+ Assert.AreEqual(part2[0], _cache.Get(part2[0]));
+ Assert.AreEqual(part2[1], _cache.Get(part2[1]));
- ldr.AddData(new List<KeyValuePair<int, int>>
+ Assert.IsTrue(ldr.AddData(new[]
{
- new KeyValuePair<int, int>(5, 5),
- new KeyValuePair<int, int>(6, 6),
- new KeyValuePair<int, int>(7, 7),
- new KeyValuePair<int, int>(8, 8)
- }).Wait();
-
- Assert.AreEqual(5, _cache.Get(5));
- Assert.AreEqual(6, _cache.Get(6));
- Assert.AreEqual(7, _cache.Get(7));
- Assert.AreEqual(8, _cache.Get(8));
+ new KeyValuePair<int, int>(part1[2], part1[2]),
+ new KeyValuePair<int, int>(part1[3], part1[3]),
+ new KeyValuePair<int, int>(part2[2], part2[2]),
+ new KeyValuePair<int, int>(part2[3], part2[3])
+ }).Wait(timeout));
+
+ Assert.AreEqual(part1[2], _cache.Get(part1[2]));
+ Assert.AreEqual(part1[3], _cache.Get(part1[3]));
+ Assert.AreEqual(part2[2], _cache.Get(part2[2]));
+ Assert.AreEqual(part2[3], _cache.Get(part2[3]));
}
}
/// <summary>
+ /// Gets the primary partition keys.
+ /// </summary>
+ private static int[] GetPrimaryPartitionKeys(IIgnite ignite, int count)
+ {
+ var affinity = ignite.GetAffinity(CacheName);
+
+ var localNode = ignite.GetCluster().GetLocalNode();
+
+ var part = affinity.GetPrimaryPartitions(localNode).First();
+
+ return Enumerable.Range(0, int.MaxValue)
+ .Where(k => affinity.GetPartition(k) == part)
+ .Take(count)
+ .ToArray();
+ }
+
+ /// <summary>
/// Test close.
/// </summary>
[Test]