Repository: ignite
Updated Branches:
  refs/heads/master 4b818ae3e -> 4df0716de


Improved test to check data consistency.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4df0716d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4df0716d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4df0716d

Branch: refs/heads/master
Commit: 4df0716dec4265e8abaf7b67aefb5d798f2fe8b4
Parents: 4b818ae
Author: sboikov <sboi...@gridgain.com>
Authored: Mon Aug 24 14:23:11 2015 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Mon Aug 24 14:23:11 2015 +0300

----------------------------------------------------------------------
 .../near/IgniteCacheNearOnlyTxTest.java         | 82 +++++++++++++-------
 1 file changed, 54 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4df0716d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
index 88e7f03..c79f742 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearOnlyTxTest.java
@@ -26,6 +26,7 @@ import org.apache.ignite.testframework.*;
 import org.apache.ignite.transactions.*;
 
 import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.*;
 import static org.apache.ignite.transactions.TransactionConcurrency.*;
@@ -78,18 +79,31 @@ public class IgniteCacheNearOnlyTxTest extends 
IgniteCacheAbstractTest {
 
         ignite1.createNearCache(null, new NearCacheConfiguration<>());
 
-        GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                IgniteCache cache = ignite1.cache(null);
+        final Integer key = 1;
 
-                int key = 1;
+        final AtomicInteger idx = new AtomicInteger();
 
-                for (int i = 0; i < 100; i++)
-                    cache.put(key, 1);
+        IgniteCache<Integer, Integer> cache0 = ignite(0).cache(null);
+        IgniteCache<Integer, Integer> cache1 = ignite1.cache(null);
 
-                return null;
-            }
-        }, 5, "put-thread");
+        for (int i = 0; i < 5; i++) {
+            log.info("Iteration: " + i);
+
+            GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+                @Override public Object call() throws Exception {
+                    int val = idx.getAndIncrement();
+
+                    IgniteCache<Integer, Integer> cache = ignite1.cache(null);
+
+                    for (int i = 0; i < 100; i++)
+                        cache.put(key, val);
+
+                    return null;
+                }
+            }, 5, "put-thread");
+
+            assertEquals(cache0.localPeek(key), cache1.localPeek(key));
+        }
     }
 
     /**
@@ -107,6 +121,7 @@ public class IgniteCacheNearOnlyTxTest extends 
IgniteCacheAbstractTest {
     }
 
     /**
+     * @param optimistic If {@code true} uses optimistic transaction.
      * @throws Exception If failed.
      */
     private void txMultithreaded(final boolean optimistic) throws Exception {
@@ -116,27 +131,40 @@ public class IgniteCacheNearOnlyTxTest extends 
IgniteCacheAbstractTest {
 
         ignite1.createNearCache(null, new NearCacheConfiguration<>());
 
-        GridTestUtils.runMultiThreaded(new Callable<Object>() {
-            @Override public Object call() throws Exception {
-                IgniteCache cache = ignite1.cache(null);
+        final AtomicInteger idx = new AtomicInteger();
 
-                int key = 1;
+        final Integer key = 1;
 
-                IgniteTransactions txs = ignite1.transactions();
+        IgniteCache<Integer, Integer> cache0 = ignite(0).cache(null);
+        IgniteCache<Integer, Integer> cache1 = ignite1.cache(null);
 
-                for (int i = 0; i < 100; i++) {
-                    try (Transaction tx = txs.txStart(optimistic ? OPTIMISTIC 
: PESSIMISTIC, REPEATABLE_READ)) {
-                        cache.get(key);
+        for (int i = 0; i < 5; i++) {
+            log.info("Iteration: " + i);
 
-                        cache.put(key, 1);
+            GridTestUtils.runMultiThreaded(new Callable<Object>() {
+                @Override public Object call() throws Exception {
+                    IgniteCache<Integer, Integer> cache = ignite1.cache(null);
 
-                        tx.commit();
+                    IgniteTransactions txs = ignite1.transactions();
+
+                    int val = idx.getAndIncrement();
+
+                    for (int i = 0; i < 100; i++) {
+                        try (Transaction tx = txs.txStart(optimistic ? 
OPTIMISTIC : PESSIMISTIC, REPEATABLE_READ)) {
+                            cache.get(key);
+
+                            cache.put(key, val);
+
+                            tx.commit();
+                        }
                     }
+
+                    return null;
                 }
+            }, 5, "put-thread");
 
-                return null;
-            }
-        }, 5, "put-thread");
+            assertEquals(cache0.localPeek(key), cache1.localPeek(key));
+        }
     }
 
     /**
@@ -149,11 +177,11 @@ public class IgniteCacheNearOnlyTxTest extends 
IgniteCacheAbstractTest {
 
         ignite1.createNearCache(null, new NearCacheConfiguration<>());
 
+        final Integer key = 1;
+
         IgniteInternalFuture<?> fut1 = GridTestUtils.runMultiThreadedAsync(new 
Callable<Object>() {
             @Override public Object call() throws Exception {
-                IgniteCache cache = ignite1.cache(null);
-
-                int key = 1;
+                IgniteCache<Integer, Integer> cache = ignite1.cache(null);
 
                 for (int i = 0; i < 100; i++)
                     cache.put(key, 1);
@@ -164,9 +192,7 @@ public class IgniteCacheNearOnlyTxTest extends 
IgniteCacheAbstractTest {
 
         IgniteInternalFuture<?> fut2 = GridTestUtils.runMultiThreadedAsync(new 
Callable<Object>() {
             @Override public Object call() throws Exception {
-                IgniteCache cache = ignite1.cache(null);
-
-                int key = 1;
+                IgniteCache<Integer, Integer> cache = ignite1.cache(null);
 
                 IgniteTransactions txs = ignite1.transactions();
 

Reply via email to