http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
index 2bb5fbb..652aba0 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheReadFromBackupTest.java
@@ -50,6 +50,7 @@ import 
org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static 
org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
 import static org.apache.ignite.cache.CacheMode.REPLICATED;
 
@@ -87,7 +88,23 @@ public class IgniteCacheReadFromBackupTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testGetFromBackupStoreReadThroughEnabled() throws Exception {
-        for (CacheConfiguration<Object, Object> ccfg : cacheConfigurations()) {
+        checkGetFromBackupStoreReadThroughEnabled(cacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMvccGetFromBackupStoreReadThroughEnabled() throws 
Exception {
+        fail("https://issues.apache.org/jira/browse/IGNITE-10274";);
+
+        checkGetFromBackupStoreReadThroughEnabled(mvccCacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void 
checkGetFromBackupStoreReadThroughEnabled(List<CacheConfiguration<Object, 
Object>> cacheCfgs) throws Exception {
+        for (CacheConfiguration<Object, Object> ccfg : cacheCfgs) {
             ccfg.setCacheStoreFactory(new TestStoreFactory());
             ccfg.setReadThrough(true);
 
@@ -131,7 +148,23 @@ public class IgniteCacheReadFromBackupTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testGetFromBackupStoreReadThroughDisabled() throws Exception {
-        for (CacheConfiguration<Object, Object> ccfg : cacheConfigurations()) {
+        checkGetFromBackupStoreReadThroughDisabled(cacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMvccGetFromBackupStoreReadThroughDisabled() throws 
Exception {
+        fail("https://issues.apache.org/jira/browse/IGNITE-10274";);
+
+        checkGetFromBackupStoreReadThroughDisabled(mvccCacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void 
checkGetFromBackupStoreReadThroughDisabled(List<CacheConfiguration<Object, 
Object>> cacheCfgs) throws Exception {
+        for (CacheConfiguration<Object, Object> ccfg : cacheCfgs) {
             ccfg.setCacheStoreFactory(new TestStoreFactory());
             ccfg.setReadThrough(false);
 
@@ -159,7 +192,23 @@ public class IgniteCacheReadFromBackupTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testGetFromPrimaryPreloadInProgress() throws Exception {
-        for (final CacheConfiguration<Object, Object> ccfg : 
cacheConfigurations()) {
+        checkGetFromPrimaryPreloadInProgress(cacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMvccGetFromPrimaryPreloadInProgress() throws Exception {
+        fail("https://issues.apache.org/jira/browse/IGNITE-10274";);
+
+        checkGetFromPrimaryPreloadInProgress(mvccCacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void 
checkGetFromPrimaryPreloadInProgress(List<CacheConfiguration<Object, Object>> 
cacheCfgs) throws Exception {
+        for (final CacheConfiguration<Object, Object> ccfg : cacheCfgs) {
             boolean near = (ccfg.getNearConfiguration() != null);
 
             log.info("Test cache [mode=" + ccfg.getCacheMode() +
@@ -245,7 +294,24 @@ public class IgniteCacheReadFromBackupTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testNoPrimaryReadPreloadFinished() throws Exception {
-        for (CacheConfiguration<Object, Object> ccfg : cacheConfigurations()) {
+        checkNoPrimaryReadPreloadFinished(cacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMvccNoPrimaryReadPreloadFinished() throws Exception {
+        fail("https://issues.apache.org/jira/browse/IGNITE-10274";);
+
+        checkNoPrimaryReadPreloadFinished(mvccCacheConfigurations());
+
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    private void 
checkNoPrimaryReadPreloadFinished(List<CacheConfiguration<Object, Object>> 
cacheCfgs) throws Exception {
+        for (CacheConfiguration<Object, Object> ccfg : cacheCfgs) {
             boolean near = (ccfg.getNearConfiguration() != null);
 
             log.info("Test cache [mode=" + ccfg.getCacheMode() +
@@ -370,6 +436,21 @@ public class IgniteCacheReadFromBackupTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * @return Cache configurations to test.
+     */
+    private List<CacheConfiguration<Object, Object>> mvccCacheConfigurations() 
{
+        List<CacheConfiguration<Object, Object>> ccfgs = new ArrayList<>();
+
+        ccfgs.add(cacheConfiguration(REPLICATED, TRANSACTIONAL_SNAPSHOT, 0, 
false));
+
+        ccfgs.add(cacheConfiguration(PARTITIONED, TRANSACTIONAL_SNAPSHOT, 1, 
false));
+        ccfgs.add(cacheConfiguration(PARTITIONED, TRANSACTIONAL_SNAPSHOT, 1, 
true));
+        ccfgs.add(cacheConfiguration(PARTITIONED, TRANSACTIONAL_SNAPSHOT, 2, 
false));
+
+        return ccfgs;
+    }
+
+    /**
      * @param cacheMode Cache mode.
      * @param atomicityMode Cache atomicity mode.
      * @param backups Number of backups.

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
index 974bcf2..df6100b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSingleGetMessageTest.java
@@ -37,6 +37,7 @@ import org.apache.ignite.transactions.Transaction;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+import static 
org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
 import static org.apache.ignite.cache.CacheMode.REPLICATED;
 import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
@@ -88,11 +89,25 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testSingleGetMessage() throws Exception {
+        checkSingleGetMessage(cacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMvccSingleGetMessage() throws Exception {
+        fail("https://issues.apache.org/jira/browse/IGNITE-7371";);
+
+        checkSingleGetMessage(mvccCacheConfigurations());
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void checkSingleGetMessage(List<CacheConfiguration<Integer, 
Integer>> ccfgs) throws Exception {
         assertFalse(ignite(0).configuration().isClientMode());
         assertTrue(ignite(SRVS).configuration().isClientMode());
 
-        List<CacheConfiguration<Integer, Integer>> ccfgs = 
cacheConfigurations();
-
         for (int i = 0; i < ccfgs.size(); i++) {
             CacheConfiguration<Integer, Integer> ccfg = ccfgs.get(i);
 
@@ -282,6 +297,19 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * @return Mvcc cache configurations to test.
+     */
+    private List<CacheConfiguration<Integer, Integer>> 
mvccCacheConfigurations() {
+        List<CacheConfiguration<Integer, Integer>> ccfgs = new ArrayList<>();
+
+        ccfgs.add(cacheConfiguration(PARTITIONED, TRANSACTIONAL_SNAPSHOT, 
FULL_SYNC, 0));
+        ccfgs.add(cacheConfiguration(PARTITIONED, TRANSACTIONAL_SNAPSHOT, 
FULL_SYNC, 1));
+        ccfgs.add(cacheConfiguration(REPLICATED, TRANSACTIONAL_SNAPSHOT, 
FULL_SYNC, 0));
+
+        return ccfgs;
+    }
+
+    /**
      * @param cacheMode Cache mode.
      * @param atomicityMode Cache atomicity mode.
      * @param syncMode Write synchronization mode.
@@ -297,7 +325,6 @@ public class IgniteCacheSingleGetMessageTest extends 
GridCommonAbstractTest {
 
         ccfg.setCacheMode(cacheMode);
         ccfg.setAtomicityMode(atomicityMode);
-        ccfg.setAtomicityMode(TRANSACTIONAL);
         ccfg.setWriteSynchronizationMode(syncMode);
 
         if (cacheMode == PARTITIONED)

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
index b4af2a8..65e9f37 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteTxPreloadAbstractTest.java
@@ -32,6 +32,7 @@ import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
@@ -78,6 +79,9 @@ public abstract class IgniteTxPreloadAbstractTest extends 
GridCacheAbstractSelfT
      * @throws Exception If failed.
      */
     public void testRemoteTxPreloading() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10391";);
+
         IgniteCache<String, Integer> cache = jcache(0);
 
         for (int i = 0; i < 10_000; i++)
@@ -147,13 +151,17 @@ public abstract class IgniteTxPreloadAbstractTest extends 
GridCacheAbstractSelfT
      * @throws Exception If failed.
      */
     public void testLocalTxPreloadingOptimistic() throws Exception {
-        testLocalTxPreloading(OPTIMISTIC);
+        if (!MvccFeatureChecker.forcedMvcc()) // Do not check optimistic tx 
for mvcc.
+            testLocalTxPreloading(OPTIMISTIC);
     }
 
     /**
      * @throws Exception If failed.
      */
     public void testLocalTxPreloadingPessimistic() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10391";);
+
         testLocalTxPreloading(PESSIMISTIC);
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheLockFailoverSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheLockFailoverSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheLockFailoverSelfTest.java
index ab94618..2ab36f2 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheLockFailoverSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheLockFailoverSelfTest.java
@@ -33,6 +33,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteFutureTimeoutException;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 /**
  *
@@ -40,6 +41,13 @@ import org.apache.ignite.testframework.GridTestUtils;
 @SuppressWarnings("unchecked")
 public class IgniteCacheLockFailoverSelfTest extends GridCacheAbstractSelfTest 
{
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.ENTRY_LOCK);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 2;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
index bc3b13d..d7454fd 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCacheMultiTxLockSelfTest.java
@@ -22,6 +22,7 @@ import java.util.Collection;
 import java.util.TreeMap;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeUnit;
+import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.cache.eviction.lru.LruEvictionPolicy;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -33,6 +34,7 @@ import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
@@ -55,6 +57,16 @@ public class IgniteCacheMultiTxLockSelfTest extends 
GridCommonAbstractTest {
     /** */
     private boolean client;
 
+    /** Unexpected lock error. */
+    private volatile Throwable err;
+
+    /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.ENTRY_LOCK);
+
+        super.setUp();
+    }
+
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
         IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
@@ -120,6 +132,8 @@ public class IgniteCacheMultiTxLockSelfTest extends 
GridCommonAbstractTest {
     public void checkExplicitLock(int keys, boolean testClient) throws 
Exception {
         Collection<Thread> threads = new ArrayList<>();
 
+        err = null;
+
         try {
             // Start grid 1.
             IgniteEx grid1 = startGrid(1);
@@ -171,6 +185,8 @@ public class IgniteCacheMultiTxLockSelfTest extends 
GridCommonAbstractTest {
 
                 assertEquals("txMap is not empty:" + i, 0, tm.idMapSize());
             }
+
+            assertNull(err);
         }
         finally {
             stopAllGrids();
@@ -214,7 +230,7 @@ public class IgniteCacheMultiTxLockSelfTest extends 
GridCommonAbstractTest {
                             else
                                 cache.removeAll(vals.keySet());
                         }
-                        catch (Exception e) {
+                        catch (IgniteCheckedException e) {
                             U.error(log(), "Failed cache operation.", e);
                         }
                         finally {
@@ -223,8 +239,12 @@ public class IgniteCacheMultiTxLockSelfTest extends 
GridCommonAbstractTest {
 
                         U.sleep(100);
                     }
-                    catch (Exception e){
+                    catch (Throwable e){
                         U.error(log(), "Failed unlock.", e);
+
+                        err = e;
+
+                        return;
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheMvccTxSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheMvccTxSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheMvccTxSelfTest.java
new file mode 100644
index 0000000..63a255e
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheMvccTxSelfTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ignite.internal.processors.cache.distributed.dht;
+
+import org.apache.ignite.cache.CacheAtomicityMode;
+
+import static 
org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
+import static 
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_READ;
+
+/**
+ *
+ */
+public class IgniteCrossCacheMvccTxSelfTest extends 
IgniteCrossCacheTxAbstractSelfTest {
+    /** {@inheritDoc} */
+    @Override public CacheAtomicityMode atomicityMode() {
+        return CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPessimisticRepeatableRead() throws Exception {
+        checkTxsSingleOp(PESSIMISTIC, REPEATABLE_READ);
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxAbstractSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxAbstractSelfTest.java
new file mode 100644
index 0000000..5224daf
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxAbstractSelfTest.java
@@ -0,0 +1,181 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed.dht;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ThreadLocalRandom;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionIsolation;
+
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
+
+/**
+ * Tests specific combinations of cross-cache transactions.
+ */
+public abstract class IgniteCrossCacheTxAbstractSelfTest extends 
GridCommonAbstractTest {
+    /** */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+
+    /** */
+    private static final String FIRST_CACHE = "FirstCache";
+
+    /** */
+    private static final String SECOND_CACHE = "SecondCache";
+
+    /** */
+    private static final int TX_CNT = 500;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
+
+        return cfg;
+    }
+
+    /**
+     * @return Node count for this test.
+     */
+    private int nodeCount() {
+        return 4;
+    }
+
+    /**
+     * @return {@code True} if near cache should be enabled.
+     */
+    protected boolean nearEnabled() {
+        return false;
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
+    @Override protected void beforeTestsStarted() throws Exception {
+        startGridsMultiThreaded(nodeCount());
+
+        CacheConfiguration firstCfg = new CacheConfiguration(FIRST_CACHE);
+        firstCfg.setBackups(1);
+        firstCfg.setAtomicityMode(atomicityMode());
+        firstCfg.setWriteSynchronizationMode(FULL_SYNC);
+
+        grid(0).createCache(firstCfg);
+
+        CacheConfiguration secondCfg = new CacheConfiguration(SECOND_CACHE);
+        secondCfg.setBackups(1);
+        secondCfg.setAtomicityMode(atomicityMode());
+        secondCfg.setWriteSynchronizationMode(FULL_SYNC);
+
+        if (nearEnabled())
+            secondCfg.setNearConfiguration(new NearCacheConfiguration());
+
+        grid(0).createCache(secondCfg);
+    }
+
+    /**
+     * @return Atomicity mode.
+     */
+    public abstract CacheAtomicityMode atomicityMode();
+
+    /**
+     * @param concurrency Concurrency.
+     * @param isolation Isolation.
+     * @throws Exception If failed.
+     */
+    protected void checkTxsSingleOp(TransactionConcurrency concurrency, 
TransactionIsolation isolation) throws Exception {
+        Map<Integer, String> firstCheck = new HashMap<>();
+        Map<Integer, String> secondCheck = new HashMap<>();
+
+        for (int i = 0; i < TX_CNT; i++) {
+            int grid = ThreadLocalRandom.current().nextInt(nodeCount());
+
+            IgniteCache<Integer, String> first = grid(grid).cache(FIRST_CACHE);
+            IgniteCache<Integer, String> second = 
grid(grid).cache(SECOND_CACHE);
+
+            try (Transaction tx = 
grid(grid).transactions().txStart(concurrency, isolation)) {
+                try {
+                    int size = ThreadLocalRandom.current().nextInt(24) + 1;
+
+                    for (int k = 0; k < size; k++) {
+                        boolean rnd = 
ThreadLocalRandom.current().nextBoolean();
+
+                        IgniteCache<Integer, String> cache = rnd ? first : 
second;
+                        Map<Integer, String> check = rnd ? firstCheck : 
secondCheck;
+
+                        String val = rnd ? "first" + i : "second" + i;
+
+                        cache.put(k, val);
+                        check.put(k, val);
+                    }
+
+                    tx.commit();
+                }
+                catch (Throwable e) {
+                    e.printStackTrace();
+
+                    throw e;
+                }
+            }
+
+            if (i > 0 && i % 100 == 0)
+                info("Finished iteration: " + i);
+        }
+
+        for (int g = 0; g < nodeCount(); g++) {
+            IgniteEx grid = grid(g);
+
+            assertEquals(0, grid.context().cache().context().tm().idMapSize());
+
+            ClusterNode locNode = grid.localNode();
+
+            IgniteCache<Object, Object> firstCache = grid.cache(FIRST_CACHE);
+
+            for (Map.Entry<Integer, String> entry : firstCheck.entrySet()) {
+                boolean primary = 
grid.affinity(FIRST_CACHE).isPrimary(locNode, entry.getKey());
+
+                boolean backup = grid.affinity(FIRST_CACHE).isBackup(locNode, 
entry.getKey());
+
+                assertEquals("Invalid value found first cache [primary=" + 
primary + ", backup=" + backup +
+                        ", node=" + locNode.id() + ", key=" + entry.getKey() + 
']',
+                    entry.getValue(), firstCache.get(entry.getKey()));
+            }
+
+            for (Map.Entry<Integer, String> entry : secondCheck.entrySet()) {
+                boolean primary = 
grid.affinity(SECOND_CACHE).isPrimary(locNode, entry.getKey());
+
+                boolean backup = grid.affinity(SECOND_CACHE).isBackup(locNode, 
entry.getKey());
+
+                assertEquals("Invalid value found second cache [primary=" + 
primary + ", backup=" + backup +
+                        ", node=" + locNode.id() + ", key=" + entry.getKey() + 
']',
+                    entry.getValue(), 
grid.cache(SECOND_CACHE).get(entry.getKey()));
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxSelfTest.java
index 91c6685..3b0106c 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCrossCacheTxSelfTest.java
@@ -14,28 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.ThreadLocalRandom;
-import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cluster.ClusterNode;
-import org.apache.ignite.configuration.CacheConfiguration;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.configuration.NearCacheConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import org.apache.ignite.transactions.Transaction;
-import org.apache.ignite.transactions.TransactionConcurrency;
-import org.apache.ignite.transactions.TransactionIsolation;
+import org.apache.ignite.cache.CacheAtomicityMode;
 
-import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
-import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
 import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
 import static 
org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
 import static 
org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED;
@@ -43,65 +25,12 @@ import static 
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
 import static org.apache.ignite.transactions.TransactionIsolation.SERIALIZABLE;
 
 /**
- * Tests specific combinations of cross-cache transactions.
+ *
  */
-public class IgniteCrossCacheTxSelfTest extends GridCommonAbstractTest {
-    /** */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
-
-    /** */
-    private static final String FIRST_CACHE = "FirstCache";
-
-    /** */
-    private static final String SECOND_CACHE = "SecondCache";
-
-    /** */
-    private static final int TX_CNT = 500;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
-        IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
-
-        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
-
-        return cfg;
-    }
-
-    /**
-     * @return Node count for this test.
-     */
-    private int nodeCount() {
-        return 4;
-    }
-
-    /**
-     * @return {@code True} if near cache should be enabled.
-     */
-    protected boolean nearEnabled() {
-        return false;
-    }
-
+public class IgniteCrossCacheTxSelfTest extends 
IgniteCrossCacheTxAbstractSelfTest {
     /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
-    @Override protected void beforeTestsStarted() throws Exception {
-        startGridsMultiThreaded(nodeCount());
-
-        CacheConfiguration firstCfg = new CacheConfiguration(FIRST_CACHE);
-        firstCfg.setBackups(1);
-        firstCfg.setAtomicityMode(TRANSACTIONAL);
-        firstCfg.setWriteSynchronizationMode(FULL_SYNC);
-
-        grid(0).createCache(firstCfg);
-
-        CacheConfiguration secondCfg = new CacheConfiguration(SECOND_CACHE);
-        secondCfg.setBackups(1);
-        secondCfg.setAtomicityMode(TRANSACTIONAL);
-        secondCfg.setWriteSynchronizationMode(FULL_SYNC);
-
-        if (nearEnabled())
-            secondCfg.setNearConfiguration(new NearCacheConfiguration());
-
-        grid(0).createCache(secondCfg);
+    @Override public CacheAtomicityMode atomicityMode() {
+        return CacheAtomicityMode.TRANSACTIONAL;
     }
 
     /**
@@ -139,78 +68,4 @@ public class IgniteCrossCacheTxSelfTest extends 
GridCommonAbstractTest {
         checkTxsSingleOp(OPTIMISTIC, SERIALIZABLE);
     }
 
-    /**
-     * @param concurrency Concurrency.
-     * @param isolation Isolation.
-     * @throws Exception If failed.
-     */
-    private void checkTxsSingleOp(TransactionConcurrency concurrency, 
TransactionIsolation isolation) throws Exception {
-        Map<Integer, String> firstCheck = new HashMap<>();
-        Map<Integer, String> secondCheck = new HashMap<>();
-
-        for (int i = 0; i < TX_CNT; i++) {
-            int grid = ThreadLocalRandom.current().nextInt(nodeCount());
-
-            IgniteCache<Integer, String> first = grid(grid).cache(FIRST_CACHE);
-            IgniteCache<Integer, String> second = 
grid(grid).cache(SECOND_CACHE);
-
-            try (Transaction tx = 
grid(grid).transactions().txStart(concurrency, isolation)) {
-                try {
-                    int size = ThreadLocalRandom.current().nextInt(24) + 1;
-
-                    for (int k = 0; k < size; k++) {
-                        boolean rnd = 
ThreadLocalRandom.current().nextBoolean();
-
-                        IgniteCache<Integer, String> cache = rnd ? first : 
second;
-                        Map<Integer, String> check = rnd ? firstCheck : 
secondCheck;
-
-                        String val = rnd ? "first" + i : "second" + i;
-
-                        cache.put(k, val);
-                        check.put(k, val);
-                    }
-
-                    tx.commit();
-                }
-                catch (Throwable e) {
-                    e.printStackTrace();
-
-                    throw e;
-                }
-            }
-
-            if (i > 0 && i % 100 == 0)
-                info("Finished iteration: " + i);
-        }
-
-        for (int g = 0; g < nodeCount(); g++) {
-            IgniteEx grid = grid(g);
-
-            assertEquals(0, grid.context().cache().context().tm().idMapSize());
-
-            ClusterNode locNode = grid.localNode();
-
-            IgniteCache<Object, Object> firstCache = grid.cache(FIRST_CACHE);
-
-            for (Map.Entry<Integer, String> entry : firstCheck.entrySet()) {
-                boolean primary = 
grid.affinity(FIRST_CACHE).isPrimary(locNode, entry.getKey());
-
-                boolean backup = grid.affinity(FIRST_CACHE).isBackup(locNode, 
entry.getKey());
-
-                assertEquals("Invalid value found first cache [primary=" + 
primary + ", backup=" + backup +
-                        ", node=" + locNode.id() + ", key=" + entry.getKey() + 
']',
-                    entry.getValue(), firstCache.get(entry.getKey()));
-            }
-
-            for (Map.Entry<Integer, String> entry : secondCheck.entrySet()) {
-                boolean primary = 
grid.affinity(SECOND_CACHE).isPrimary(locNode, entry.getKey());
-
-                boolean backup = grid.affinity(SECOND_CACHE).isBackup(locNode, 
entry.getKey());
-
-                assertEquals("Invalid value found second cache [primary=" + 
primary + ", backup=" + backup +
-                        ", node=" + locNode.id() + ", key=" + entry.getKey() + 
']',
-                    entry.getValue(), 
grid.cache(SECOND_CACHE).get(entry.getKey()));
-            }
-        }
-    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearTxPreloadSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearTxPreloadSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearTxPreloadSelfTest.java
index caf6cc7..96b932a 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearTxPreloadSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearTxPreloadSelfTest.java
@@ -21,6 +21,7 @@ import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import 
org.apache.ignite.internal.processors.cache.distributed.IgniteTxPreloadAbstractTest;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
 
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.PARTITIONED;
  */
 public class GridCacheNearTxPreloadSelfTest extends 
IgniteTxPreloadAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.NEAR_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected CacheMode cacheMode() {
         return PARTITIONED;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedEventSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedEventSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedEventSelfTest.java
index 1c79db7..54eb32d 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedEventSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedEventSelfTest.java
@@ -21,6 +21,7 @@ import org.apache.ignite.cache.CacheWriteSynchronizationMode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import 
org.apache.ignite.internal.processors.cache.distributed.GridCacheEventAbstractTest;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -31,6 +32,13 @@ import static 
org.apache.ignite.cache.CacheRebalanceMode.SYNC;
  */
 public class GridCachePartitionedEventSelfTest extends 
GridCacheEventAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_EVENTS);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected CacheConfiguration cacheConfiguration(String 
igniteInstanceName) throws Exception {
         CacheConfiguration cfg = defaultCacheConfiguration();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/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 ca12a99..d86fa91 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
@@ -29,6 +29,7 @@ import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.cache.IgniteCacheAbstractTest;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.transactions.Transaction;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
@@ -41,6 +42,13 @@ import static 
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
  */
 public class IgniteCacheNearOnlyTxTest extends IgniteCacheAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.NEAR_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 2;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java
index ad9bce0..76f0d17 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java
@@ -22,6 +22,7 @@ import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.processors.cache.GridCacheAbstractSelfTest;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.transactions.Transaction;
 
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -34,6 +35,13 @@ import static 
org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED
 @SuppressWarnings("RedundantMethodOverride")
 public class IgniteCacheNearReadCommittedTest extends 
GridCacheAbstractSelfTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.NEAR_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 2;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheLoadAllAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheLoadAllAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheLoadAllAbstractTest.java
index 6b4f976..3d9b7bd 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheLoadAllAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheLoadAllAbstractTest.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 import javax.cache.Cache;
 import javax.cache.configuration.Factory;
 import javax.cache.integration.CacheLoader;
@@ -34,7 +35,7 @@ import org.apache.ignite.cache.affinity.Affinity;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.internal.processors.cache.IgniteCacheAbstractTest;
-import java.util.concurrent.ConcurrentHashMap;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 /**
  * Test for {@link Cache#loadAll(Set, boolean, CompletionListener)}.
@@ -47,6 +48,13 @@ public abstract class IgniteCacheLoadAllAbstractTest extends 
IgniteCacheAbstract
     private static ConcurrentHashMap<Object, Object> storeMap;
 
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
     @Override protected CacheConfiguration cacheConfiguration(String 
igniteInstanceName) throws Exception {
         CacheConfiguration ccfg = super.cacheConfiguration(igniteInstanceName);

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLoaderWriterTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLoaderWriterTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLoaderWriterTest.java
index fc4ec78..75a4cd9 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLoaderWriterTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLoaderWriterTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.PARTITIONED;
  */
 public class IgniteCacheTxLoaderWriterTest extends 
IgniteCacheLoaderWriterAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 3;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalLoadAllTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalLoadAllTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalLoadAllTest.java
index 97374bf..645a9ff 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalLoadAllTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalLoadAllTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.LOCAL;
@@ -29,6 +30,12 @@ import static org.apache.ignite.cache.CacheMode.LOCAL;
  */
 public class IgniteCacheTxLocalLoadAllTest extends 
IgniteCacheLoadAllAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.LOCAL_CACHE);
+
+        super.setUp();
+    }
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 1;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoLoadPreviousValueTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoLoadPreviousValueTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoLoadPreviousValueTest.java
index 686b4ca..2e52a63 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoLoadPreviousValueTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoLoadPreviousValueTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.LOCAL;
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.LOCAL;
  */
 public class IgniteCacheTxLocalNoLoadPreviousValueTest extends 
IgniteCacheNoLoadPreviousValueAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.LOCAL_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 1;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java
index 5235c9d..e25a965 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoReadThroughTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.LOCAL;
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.LOCAL;
  */
 public class IgniteCacheTxLocalNoReadThroughTest extends 
IgniteCacheNoReadThroughAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.LOCAL_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 1;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoWriteThroughTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoWriteThroughTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoWriteThroughTest.java
index 7985c57..ddc9352 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoWriteThroughTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxLocalNoWriteThroughTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.LOCAL;
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.LOCAL;
  */
 public class IgniteCacheTxLocalNoWriteThroughTest extends 
IgniteCacheNoWriteThroughAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.LOCAL_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 1;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoLoadPreviousValueTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoLoadPreviousValueTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoLoadPreviousValueTest.java
index ce42e39..c343402 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoLoadPreviousValueTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoLoadPreviousValueTest.java
@@ -18,12 +18,20 @@
 package org.apache.ignite.internal.processors.cache.integration;
 
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 /**
  *
  */
 public class IgniteCacheTxNearEnabledNoLoadPreviousValueTest extends 
IgniteCacheTxNoLoadPreviousValueTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.NEAR_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected NearCacheConfiguration nearConfiguration() {
         return new NearCacheConfiguration();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoWriteThroughTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoWriteThroughTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoWriteThroughTest.java
index ea12cce..be9bc34 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoWriteThroughTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNearEnabledNoWriteThroughTest.java
@@ -18,12 +18,20 @@
 package org.apache.ignite.internal.processors.cache.integration;
 
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 /**
  *
  */
 public class IgniteCacheTxNearEnabledNoWriteThroughTest extends 
IgniteCacheTxNoWriteThroughTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.NEAR_CACHE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected NearCacheConfiguration nearConfiguration() {
         return new NearCacheConfiguration();
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoLoadPreviousValueTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoLoadPreviousValueTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoLoadPreviousValueTest.java
index ce9ef9b..094aa1a 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoLoadPreviousValueTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoLoadPreviousValueTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.PARTITIONED;
  */
 public class IgniteCacheTxNoLoadPreviousValueTest extends 
IgniteCacheNoLoadPreviousValueAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 3;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java
index 90bc768..a94caff 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoReadThroughTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.PARTITIONED;
  */
 public class IgniteCacheTxNoReadThroughTest extends 
IgniteCacheNoReadThroughAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 3;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoWriteThroughTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoWriteThroughTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoWriteThroughTest.java
index 325d969..e984dfb 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoWriteThroughTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxNoWriteThroughTest.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.integration;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
@@ -29,6 +30,13 @@ import static org.apache.ignite.cache.CacheMode.PARTITIONED;
  */
 public class IgniteCacheTxNoWriteThroughTest extends 
IgniteCacheNoWriteThroughAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 3;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionTest.java
index b9e884b..77f54af 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionTest.java
@@ -25,6 +25,7 @@ import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
@@ -39,6 +40,13 @@ import static 
org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
  */
 public class IgniteCacheTxStoreSessionTest extends 
IgniteCacheStoreSessionAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected int gridCount() {
         return 3;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindCoalescingTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindCoalescingTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindCoalescingTest.java
index a90b4f1..ea2b8a3 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindCoalescingTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindCoalescingTest.java
@@ -22,6 +22,7 @@ import javax.cache.Cache;
 import javax.cache.integration.CacheWriterException;
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 
@@ -31,6 +32,13 @@ import static 
org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
  */
 public class IgniteCacheTxStoreSessionWriteBehindCoalescingTest extends 
IgniteCacheStoreSessionWriteBehindAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected CacheAtomicityMode atomicityMode() {
         return TRANSACTIONAL;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindTest.java
index b72aba3..ae6bcae 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/integration/IgniteCacheTxStoreSessionWriteBehindTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.cache.integration;
 
 import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 
@@ -26,6 +27,13 @@ import static 
org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
  */
 public class IgniteCacheTxStoreSessionWriteBehindTest extends 
IgniteCacheStoreSessionWriteBehindAbstractTest {
     /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.setUp();
+    }
+
+    /** {@inheritDoc} */
     @Override protected CacheAtomicityMode atomicityMode() {
         return TRANSACTIONAL;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryLocalTransactionalSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryLocalTransactionalSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryLocalTransactionalSelfTest.java
index d7fc938..b217703 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryLocalTransactionalSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/version/CacheVersionedEntryLocalTransactionalSelfTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.cache.version;
 
 import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 
 /**
  *
@@ -38,4 +39,12 @@ public class CacheVersionedEntryLocalTransactionalSelfTest 
extends CacheVersione
     @Override protected CacheAtomicityMode atomicityMode() {
         return CacheAtomicityMode.TRANSACTIONAL;
     }
+
+    /** {@inheritDoc} */
+    @Override public void setUp() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.LOCAL_CACHE);
+
+        super.setUp();
+    }
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/testframework/MvccFeatureChecker.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/MvccFeatureChecker.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/MvccFeatureChecker.java
index 183c2eb..c70d447 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/MvccFeatureChecker.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/MvccFeatureChecker.java
@@ -19,10 +19,15 @@ package org.apache.ignite.testframework;
 
 import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.internal.processors.query.IgniteSQLException;
+import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.transactions.TransactionConcurrency;
 import org.apache.ignite.transactions.TransactionIsolation;
 
 import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_FORCE_MVCC_MODE_IN_TESTS;
+import static 
org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode.TRANSACTION_SERIALIZATION_ERROR;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
 /**
@@ -107,11 +112,26 @@ public class MvccFeatureChecker {
     }
 
     /**
+     * TODO proper exception handling after 
https://issues.apache.org/jira/browse/IGNITE-9470
+     * Checks if given exception was caused by MVCC write conflict.
+     *
+     * @param e Exception.
+     */
+    public static void assertMvccWriteConflict(Exception e) {
+        IgniteSQLException sqlEx = X.cause(e, IgniteSQLException.class);
+
+        assertNotNull(sqlEx);
+
+        assertEquals(TRANSACTION_SERIALIZATION_ERROR, sqlEx.statusCode());
+    }
+
+    /**
      * Fails if feature is not supported in Mvcc mode.
      *
      * @param feature Mvcc feature.
      * @throws AssertionError If failed.
      */
+    @SuppressWarnings("fallthrough")
     private static void validateFeature(Feature feature) {
         switch (feature) {
             case NEAR_CACHE:

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite2.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite2.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite2.java
index 5818653..3c070bc 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite2.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite2.java
@@ -115,6 +115,7 @@ public class IgniteCacheMvccTestSuite2 extends TestSuite {
         
ignoredTests.add(CacheOptimisticTransactionsWithFilterSingleServerTest.class);
         ignoredTests.add(CacheOptimisticTransactionsWithFilterTest.class);
 
+        // Irrelevant Tx tests.
         ignoredTests.add(IgniteOnePhaseCommitInvokeTest.class);
         ignoredTests.add(IgniteOnePhaseCommitNearReadersTest.class);
         ignoredTests.add(GridCacheDhtPreloadOnheapSelfTest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/cf32fc7b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite4.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite4.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite4.java
new file mode 100644
index 0000000..9933633
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheMvccTestSuite4.java
@@ -0,0 +1,197 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.testsuites;
+
+import java.util.HashSet;
+import junit.framework.TestSuite;
+import org.apache.ignite.IgniteSystemProperties;
+import 
org.apache.ignite.cache.store.CacheStoreListenerRWThroughDisabledAtomicCacheTest;
+import 
org.apache.ignite.internal.processors.cache.CacheConnectionLeakStoreTxTest;
+import 
org.apache.ignite.internal.processors.cache.CacheGetEntryOptimisticReadCommittedSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheGetEntryOptimisticRepeatableReadSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheGetEntryOptimisticSerializableSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheGetEntryPessimisticReadCommittedSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheGetEntryPessimisticRepeatableReadSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheGetEntryPessimisticSerializableSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheOffheapMapEntrySelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheReadThroughAtomicRestartSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheReadThroughLocalAtomicRestartSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheReadThroughReplicatedAtomicRestartSelfTest;
+import 
org.apache.ignite.internal.processors.cache.CacheStoreUsageMultinodeDynamicStartAtomicTest;
+import 
org.apache.ignite.internal.processors.cache.CacheStoreUsageMultinodeStaticStartAtomicTest;
+import 
org.apache.ignite.internal.processors.cache.CacheTxNotAllowReadFromBackupTest;
+import 
org.apache.ignite.internal.processors.cache.GridCacheMultinodeUpdateAtomicNearEnabledSelfTest;
+import 
org.apache.ignite.internal.processors.cache.GridCacheMultinodeUpdateAtomicSelfTest;
+import 
org.apache.ignite.internal.processors.cache.GridCacheVersionMultinodeTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicCopyOnReadDisabledTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicLocalPeekModesTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicLocalStoreValueTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicNearEnabledStoreValueTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicNearPeekModesTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicPeekModesTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicReplicatedPeekModesTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheAtomicStoreValueTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheConfigurationDefaultTemplateTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheContainsKeyAtomicTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheInvokeReadThroughSingleNodeTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteCacheInvokeReadThroughTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheStartTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteClientCacheInitializationFailTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteDynamicCacheStartNoExchangeTimeoutTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteDynamicCacheStartSelfTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteDynamicCacheStartStopConcurrentTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteDynamicClientCacheStartSelfTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteExchangeFutureHistoryTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteInternalCacheTypesTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteStartCacheInTransactionAtomicSelfTest;
+import 
org.apache.ignite.internal.processors.cache.IgniteSystemCacheOnClientTest;
+import 
org.apache.ignite.internal.processors.cache.MarshallerCacheJobRunNodeRestartTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.CacheDiscoveryDataConcurrentJoinTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.CacheGetFutureHangsSelfTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.CacheGroupsPreloadTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.CacheNoValueClassOnServerNodeTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.CacheResultIsNotNullOnPartitionLossTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheCreatePutTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheFailedUpdateResponseTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheReadFromBackupTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.IgniteCacheSingleGetMessageTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCrossCacheMvccTxSelfTest;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCrossCacheTxSelfTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLoadAllTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLoaderWriterTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLocalLoadAllTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLocalNoLoadPreviousValueTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLocalNoReadThroughTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicLocalNoWriteThroughTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicNearEnabledNoLoadPreviousValueTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicNearEnabledNoReadThroughTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicNearEnabledNoWriteThroughTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicNoLoadPreviousValueTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicNoReadThroughTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicNoWriteThroughTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicStoreSessionTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheAtomicStoreSessionWriteBehindTest;
+import 
org.apache.ignite.internal.processors.cache.integration.IgniteCacheJdbcBlobStoreNodeRestartTest;
+import 
org.apache.ignite.internal.processors.cache.version.CacheVersionedEntryLocalAtomicSwapDisabledSelfTest;
+import 
org.apache.ignite.internal.processors.cache.version.CacheVersionedEntryPartitionedAtomicSelfTest;
+import 
org.apache.ignite.internal.processors.cache.version.CacheVersionedEntryReplicatedAtomicSelfTest;
+
+/**
+ *
+ */
+public class IgniteCacheMvccTestSuite4 extends TestSuite {
+    /**
+     * @return IgniteCache test suite.
+     */
+    public static TestSuite suite() {
+        
System.setProperty(IgniteSystemProperties.IGNITE_FORCE_MVCC_MODE_IN_TESTS, 
"true");
+
+        HashSet<Class> ignoredTests = new HashSet<>(128);
+
+        // Skip classes that already contains Mvcc tests
+        ignoredTests.add(GridCacheVersionMultinodeTest.class);
+        ignoredTests.add(IgniteCacheCreatePutTest.class);
+        ignoredTests.add(IgniteClientCacheInitializationFailTest.class);
+        ignoredTests.add(IgniteCacheFailedUpdateResponseTest.class);
+        ignoredTests.add(CacheGetEntryPessimisticRepeatableReadSelfTest.class);
+        ignoredTests.add(CacheTxNotAllowReadFromBackupTest.class);
+        ignoredTests.add(CacheOffheapMapEntrySelfTest.class);
+        ignoredTests.add(CacheGroupsPreloadTest.class);
+        ignoredTests.add(CacheConnectionLeakStoreTxTest.class);
+        ignoredTests.add(IgniteCacheInvokeReadThroughTest.class);
+        ignoredTests.add(IgniteCacheInvokeReadThroughSingleNodeTest.class);
+        ignoredTests.add(IgniteDynamicCacheStartSelfTest.class);
+        ignoredTests.add(IgniteDynamicClientCacheStartSelfTest.class);
+        ignoredTests.add(IgniteDynamicCacheStartNoExchangeTimeoutTest.class);
+        ignoredTests.add(IgniteCacheSingleGetMessageTest.class);
+        ignoredTests.add(IgniteCacheReadFromBackupTest.class);
+
+        // Optimistic tx tests.
+        ignoredTests.add(CacheGetEntryOptimisticReadCommittedSelfTest.class);
+        ignoredTests.add(CacheGetEntryOptimisticRepeatableReadSelfTest.class);
+        ignoredTests.add(CacheGetEntryOptimisticSerializableSelfTest.class);
+
+        // Irrelevant Tx tests.
+        ignoredTests.add(CacheGetEntryPessimisticReadCommittedSelfTest.class);
+        ignoredTests.add(CacheGetEntryPessimisticSerializableSelfTest.class);
+
+        // Atomic cache tests.
+        ignoredTests.add(GridCacheMultinodeUpdateAtomicSelfTest.class);
+        
ignoredTests.add(GridCacheMultinodeUpdateAtomicNearEnabledSelfTest.class);
+        ignoredTests.add(IgniteCacheAtomicLoadAllTest.class);
+        ignoredTests.add(IgniteCacheAtomicLocalLoadAllTest.class);
+        ignoredTests.add(IgniteCacheAtomicLoaderWriterTest.class);
+        ignoredTests.add(IgniteCacheAtomicStoreSessionTest.class);
+        ignoredTests.add(IgniteCacheAtomicStoreSessionWriteBehindTest.class);
+        ignoredTests.add(IgniteCacheAtomicNoReadThroughTest.class);
+        ignoredTests.add(IgniteCacheAtomicNearEnabledNoReadThroughTest.class);
+        ignoredTests.add(IgniteCacheAtomicLocalNoReadThroughTest.class);
+        ignoredTests.add(IgniteCacheAtomicNoLoadPreviousValueTest.class);
+        
ignoredTests.add(IgniteCacheAtomicNearEnabledNoLoadPreviousValueTest.class);
+        ignoredTests.add(IgniteCacheAtomicLocalNoLoadPreviousValueTest.class);
+        ignoredTests.add(IgniteCacheAtomicNoWriteThroughTest.class);
+        ignoredTests.add(IgniteCacheAtomicNearEnabledNoWriteThroughTest.class);
+        ignoredTests.add(IgniteCacheAtomicLocalNoWriteThroughTest.class);
+        ignoredTests.add(IgniteCacheAtomicPeekModesTest.class);
+        ignoredTests.add(IgniteCacheAtomicNearPeekModesTest.class);
+        ignoredTests.add(IgniteCacheAtomicReplicatedPeekModesTest.class);
+        ignoredTests.add(IgniteCacheAtomicLocalPeekModesTest.class);
+        ignoredTests.add(IgniteCacheAtomicCopyOnReadDisabledTest.class);
+        ignoredTests.add(IgniteCacheAtomicLocalStoreValueTest.class);
+        ignoredTests.add(IgniteCacheAtomicStoreValueTest.class);
+        ignoredTests.add(IgniteCacheAtomicNearEnabledStoreValueTest.class);
+        
ignoredTests.add(CacheStoreListenerRWThroughDisabledAtomicCacheTest.class);
+        ignoredTests.add(CacheStoreUsageMultinodeStaticStartAtomicTest.class);
+        ignoredTests.add(CacheStoreUsageMultinodeDynamicStartAtomicTest.class);
+        ignoredTests.add(IgniteStartCacheInTransactionAtomicSelfTest.class);
+        
ignoredTests.add(CacheReadThroughReplicatedAtomicRestartSelfTest.class);
+        ignoredTests.add(CacheReadThroughLocalAtomicRestartSelfTest.class);
+        ignoredTests.add(CacheReadThroughAtomicRestartSelfTest.class);
+        
ignoredTests.add(CacheVersionedEntryLocalAtomicSwapDisabledSelfTest.class);
+        ignoredTests.add(CacheVersionedEntryPartitionedAtomicSelfTest.class);
+        ignoredTests.add(CacheGetFutureHangsSelfTest.class);
+        ignoredTests.add(IgniteCacheContainsKeyAtomicTest.class);
+        ignoredTests.add(CacheVersionedEntryReplicatedAtomicSelfTest.class);
+        ignoredTests.add(CacheResultIsNotNullOnPartitionLossTest.class);
+
+        // Other non-tx tests.
+        ignoredTests.add(IgniteDynamicCacheStartStopConcurrentTest.class);
+        ignoredTests.add(IgniteCacheConfigurationDefaultTemplateTest.class);
+        ignoredTests.add(IgniteCacheStartTest.class);
+        ignoredTests.add(CacheDiscoveryDataConcurrentJoinTest.class);
+        ignoredTests.add(IgniteCacheJdbcBlobStoreNodeRestartTest.class);
+        ignoredTests.add(IgniteInternalCacheTypesTest.class);
+        ignoredTests.add(IgniteExchangeFutureHistoryTest.class);
+        ignoredTests.add(CacheNoValueClassOnServerNodeTest.class);
+        ignoredTests.add(IgniteSystemCacheOnClientTest.class);
+        ignoredTests.add(MarshallerCacheJobRunNodeRestartTest.class);
+
+        // Skip classes which Mvcc implementations are added in this method 
below.
+        // TODO IGNITE-10175: refactor these tests (use assume) to support 
both mvcc and non-mvcc modes after moving to JUnit4/5.
+        ignoredTests.add(IgniteCrossCacheTxSelfTest.class);
+
+        TestSuite suite = new TestSuite("IgniteCache Mvcc Test Suite part 4");
+
+        suite.addTest(IgniteCacheTestSuite4.suite(ignoredTests));
+
+        // Add Mvcc clones.
+        suite.addTestSuite(IgniteCrossCacheMvccTxSelfTest.class);
+
+        return suite;
+    }
+}

Reply via email to