Repository: ignite
Updated Branches:
  refs/heads/master 67e9988f9 -> 489e30428


IGNITE-10461: MVCC: Create "PDS 1" test suite for MVCC mode. This closes #5564.


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

Branch: refs/heads/master
Commit: 489e30428c025338ff9942b587059b6daa5ef56a
Parents: 67e9988
Author: Andrey V. Mashenkov <[email protected]>
Authored: Wed Dec 12 22:31:57 2018 +0300
Committer: Igor Seliverstov <[email protected]>
Committed: Wed Dec 12 22:31:57 2018 +0300

----------------------------------------------------------------------
 .../IgnitePdsCompressionTestSuite.java          |   2 +-
 .../IgniteClusterActivateDeactivateTest.java    |   7 ++
 .../cache/IgnitePdsDataRegionMetricsTxTest.java |  56 ++++++++++
 .../CacheLateAffinityAssignmentTest.java        |   5 +-
 .../db/IgnitePdsDataRegionMetricsTest.java      |  18 ++--
 .../persistence/db/IgnitePdsWithTtlTest.java    |   3 +
 .../db/file/IgnitePdsCheckpointSimpleTest.java  |   2 +-
 ...ckpointSimulationWithRealCpDisabledTest.java |  87 +++++++++++-----
 .../wal/AbstractWalDeltaConsistencyTest.java    |  17 +++
 .../wal/CpTriggeredWalDeltaConsistencyTest.java |  24 ++++-
 .../wal/ExplicitWalDeltaConsistencyTest.java    |  33 ++++--
 .../wal/SysPropWalDeltaConsistencyTest.java     |  24 ++++-
 .../database/IgniteDbPutGetAbstractTest.java    |   6 +-
 .../IgniteDbPutGetWithCacheStoreTest.java       |   8 ++
 .../testsuites/IgnitePdsMvccTestSuite.java      |  90 ++++++++++++++++
 .../ignite/testsuites/IgnitePdsTestSuite.java   | 103 +++++++++++--------
 .../testsuites/IgnitePdsNativeIoTestSuite.java  |   2 +-
 17 files changed, 388 insertions(+), 99 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
----------------------------------------------------------------------
diff --git 
a/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
 
b/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
index a977700..c18361b 100644
--- 
a/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
+++ 
b/modules/compress/src/test/java/org/apache/ignite/testsuites/IgnitePdsCompressionTestSuite.java
@@ -42,7 +42,7 @@ public class IgnitePdsCompressionTestSuite {
         suite.addTestSuite(DiskPageCompressionIntegrationAsyncTest.class);
 
         enableCompressionByDefault();
-        IgnitePdsTestSuite.addRealPageStoreTests(suite);
+        IgnitePdsTestSuite.addRealPageStoreTests(suite, null);
 
         return suite;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
index c71d891..6701d29 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteClusterActivateDeactivateTest.java
@@ -53,6 +53,7 @@ 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.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Assert;
 import org.junit.Test;
@@ -353,6 +354,9 @@ public class IgniteClusterActivateDeactivateTest extends 
GridCommonAbstractTest
      */
     @Test
     public void testJoinWhileActivate1_Server() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10583";);
+
         joinWhileActivate1(false, false);
     }
 
@@ -361,6 +365,9 @@ public class IgniteClusterActivateDeactivateTest extends 
GridCommonAbstractTest
      */
     @Test
     public void testJoinWhileActivate1_WithCache_Server() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10583";);
+
         joinWhileActivate1(false, true);
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgnitePdsDataRegionMetricsTxTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgnitePdsDataRegionMetricsTxTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgnitePdsDataRegionMetricsTxTest.java
new file mode 100644
index 0000000..c7cf4cf
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgnitePdsDataRegionMetricsTxTest.java
@@ -0,0 +1,56 @@
+/*
+ * 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;
+
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.configuration.CacheConfiguration;
+import 
org.apache.ignite.internal.processors.cache.persistence.db.IgnitePdsDataRegionMetricsTest;
+import org.apache.ignite.testframework.MvccFeatureChecker;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/**
+ *
+ */
+@RunWith(JUnit4.class)
+public class IgnitePdsDataRegionMetricsTxTest extends 
IgnitePdsDataRegionMetricsTest {
+    /** {@inheritDoc} */
+    @Override protected CacheConfiguration<Object, Object> 
cacheConfiguration() {
+        return 
super.cacheConfiguration().setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void testMemoryUsageSingleNode() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10591";);
+
+        super.testMemoryUsageSingleNode();
+    }
+
+    /** {@inheritDoc} */
+    @Ignore("https://issues.apache.org/jira/browse/IGNITE-10662";)
+    @Test
+    @Override public void testMemoryUsageMultipleNodes() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10583";);
+
+        super.testMemoryUsageMultipleNodes();
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
index c424217..df8df1f 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/CacheLateAffinityAssignmentTest.java
@@ -54,12 +54,12 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.events.DiscoveryEvent;
 import org.apache.ignite.internal.DiscoverySpiTestListener;
 import org.apache.ignite.internal.GridKernalContext;
-import org.apache.ignite.internal.cluster.NodeOrderComparator;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.IgniteKernal;
 import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.TestRecordingCommunicationSpi;
 import 
org.apache.ignite.internal.cluster.ClusterTopologyServerNotFoundException;
+import org.apache.ignite.internal.cluster.NodeOrderComparator;
 import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpi;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import 
org.apache.ignite.internal.processors.affinity.GridAffinityFunctionContextImpl;
@@ -1777,6 +1777,9 @@ public class CacheLateAffinityAssignmentTest extends 
GridCommonAbstractTest {
      */
     @Test
     public void testRandomOperations() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10261";);
+
         forceSrvMode = true;
 
         final int MAX_SRVS = 10;

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
index 36d35e7..7a316c6 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsDataRegionMetricsTest.java
@@ -103,16 +103,22 @@ public class IgnitePdsDataRegionMetricsTest extends 
GridCommonAbstractTest {
 
         cfg.setDataStorageConfiguration(memCfg);
 
-        CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>()
-            .setName(DEFAULT_CACHE_NAME)
-            .setCacheMode(CacheMode.PARTITIONED)
-            .setBackups(1);
+        CacheConfiguration<Object, Object> ccfg = cacheConfiguration();
 
         cfg.setCacheConfiguration(ccfg);
 
         return cfg;
     }
 
+    /**
+     * @return Ignite cache configuration.
+     */
+    protected CacheConfiguration<Object, Object> cacheConfiguration() {
+        return (CacheConfiguration<Object, Object>)new 
CacheConfiguration<>(DEFAULT_CACHE_NAME)
+                .setCacheMode(CacheMode.PARTITIONED)
+                .setBackups(1);
+    }
+
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
         super.beforeTest();
@@ -146,7 +152,7 @@ public class IgnitePdsDataRegionMetricsTest extends 
GridCommonAbstractTest {
 
             assertTrue(currMetrics.getTotalAllocatedPages() >= 
currMetrics.getPhysicalMemoryPages());
 
-            final IgniteCache<String, String> cache = 
node.getOrCreateCache(DEFAULT_CACHE_NAME);
+            final IgniteCache<String, String> cache = 
node.cache(DEFAULT_CACHE_NAME);
 
             Map<String, String> map = new HashMap<>();
 
@@ -181,7 +187,7 @@ public class IgnitePdsDataRegionMetricsTest extends 
GridCommonAbstractTest {
 
         node0.cluster().active(true);
 
-        final IgniteCache<Integer, String> cache = 
node0.getOrCreateCache(DEFAULT_CACHE_NAME);
+        final IgniteCache<Integer, String> cache = 
node0.cache(DEFAULT_CACHE_NAME);
 
         Map<Integer, String> map = new HashMap<>();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java
index a14fd42..0ef6713 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java
@@ -41,6 +41,7 @@ import org.apache.ignite.internal.util.typedef.PA;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -65,6 +66,8 @@ public class IgnitePdsWithTtlTest extends 
GridCommonAbstractTest {
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.EXPIRATION);
+
         super.beforeTest();
 
         cleanPersistenceDir();

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimpleTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimpleTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimpleTest.java
index 28cb69e..6957d55 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimpleTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimpleTest.java
@@ -98,7 +98,7 @@ public class IgnitePdsCheckpointSimpleTest extends 
GridCommonAbstractTest {
      * @param i key.
      * @return value with extra data, which allows to verify
      */
-    @NotNull private String valueWithRedundancyForKey(int i) {
+    private @NotNull String valueWithRedundancyForKey(int i) {
         return Strings.repeat(Integer.toString(i), 10);
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimulationWithRealCpDisabledTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimulationWithRealCpDisabledTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimulationWithRealCpDisabledTest.java
index 919a58e..4a21c89 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimulationWithRealCpDisabledTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/file/IgnitePdsCheckpointSimulationWithRealCpDisabledTest.java
@@ -35,6 +35,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.ReadWriteLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CacheRebalanceMode;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
@@ -53,6 +54,8 @@ import org.apache.ignite.internal.pagemem.wal.WALPointer;
 import org.apache.ignite.internal.pagemem.wal.record.CheckpointRecord;
 import org.apache.ignite.internal.pagemem.wal.record.DataEntry;
 import org.apache.ignite.internal.pagemem.wal.record.DataRecord;
+import org.apache.ignite.internal.pagemem.wal.record.MvccDataEntry;
+import org.apache.ignite.internal.pagemem.wal.record.MvccDataRecord;
 import org.apache.ignite.internal.pagemem.wal.record.PageSnapshot;
 import org.apache.ignite.internal.pagemem.wal.record.WALRecord;
 import 
org.apache.ignite.internal.pagemem.wal.record.delta.PartitionMetaStateRecord;
@@ -62,6 +65,7 @@ import 
org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.cache.GridCacheOperation;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+import org.apache.ignite.internal.processors.cache.mvcc.MvccVersionImpl;
 import org.apache.ignite.internal.processors.cache.persistence.DummyPageIO;
 import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
 import 
org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager;
@@ -85,7 +89,7 @@ import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
 /**
- * Test simulated chekpoints,
+ * Test simulated checkpoints,
  * Disables integrated check pointer thread
  */
 @RunWith(JUnit4.class)
@@ -100,17 +104,24 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
     private static final boolean VERBOSE = false;
 
     /** Cache name. */
-    private static final String cacheName = "cache";
+    private static final String CACHE_NAME = "cache";
+
+    /** Mvcc cache name. */
+    private static final String MVCC_CACHE_NAME = "mvccCache";
+
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        CacheConfiguration ccfg = new CacheConfiguration(cacheName);
+        CacheConfiguration ccfg = new CacheConfiguration(CACHE_NAME)
+                .setRebalanceMode(CacheRebalanceMode.NONE);
 
-        ccfg.setRebalanceMode(CacheRebalanceMode.NONE);
+        CacheConfiguration mvccCfg =  new CacheConfiguration(MVCC_CACHE_NAME)
+                .setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL_SNAPSHOT)
+                .setRebalanceMode(CacheRebalanceMode.NONE);
 
-        cfg.setCacheConfiguration(ccfg);
+        cfg.setCacheConfiguration(ccfg, mvccCfg);
 
         cfg.setDataStorageConfiguration(
             new DataStorageConfiguration()
@@ -154,7 +165,7 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
     public void testCheckpointSimulationMultiThreaded() throws Exception {
         IgniteEx ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         GridCacheSharedContext<Object, Object> shared = 
ig.context().cache().context();
 
@@ -169,7 +180,7 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
 
         // Must put something in partition 0 in order to initialize meta page.
         // Otherwise we will violate page store integrity rules.
-        ig.cache(cacheName).put(0, 0);
+        ig.cache(CACHE_NAME).put(0, 0);
 
         PageMemory mem = shared.database().dataRegion(null).pageMemory();
 
@@ -177,7 +188,7 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
 
         try {
             res = runCheckpointing(ig, (PageMemoryImpl)mem, pageStore, 
shared.wal(),
-                shared.cache().cache(cacheName).context().cacheId());
+                shared.cache().cache(CACHE_NAME).context().cacheId());
         }
         catch (Throwable th) {
             log().error("Error while running checkpointing", th);
@@ -192,7 +203,7 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
 
         ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         shared = ig.context().cache().context();
 
@@ -212,11 +223,11 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
     public void testGetForInitialWrite() throws Exception {
         IgniteEx ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         GridCacheSharedContext<Object, Object> shared = 
ig.context().cache().context();
 
-        int cacheId = shared.cache().cache(cacheName).context().cacheId();
+        int cacheId = shared.cache().cache(CACHE_NAME).context().cacheId();
 
         GridCacheDatabaseSharedManager dbMgr = 
(GridCacheDatabaseSharedManager)shared.database();
 
@@ -270,7 +281,7 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
 
         ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         shared = ig.context().cache().context();
 
@@ -311,12 +322,27 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
      */
     @Test
     public void testDataWalEntries() throws Exception {
+        checkDataWalEntries(false);
+    }
+
+    /**
+     * @throws Exception if failed.
+     */
+    @Test
+    public void testMvccDataWalEntries() throws Exception {
+        checkDataWalEntries(true);
+    }
+
+    /**
+     * @throws Exception if failed.
+     */
+    private void checkDataWalEntries(boolean mvcc) throws Exception {
         IgniteEx ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         GridCacheSharedContext<Object, Object> sharedCtx = 
ig.context().cache().context();
-        GridCacheContext<Object, Object> cctx = 
sharedCtx.cache().cache(cacheName).context();
+        GridCacheContext<Object, Object> cctx = sharedCtx.cache().cache(mvcc ? 
MVCC_CACHE_NAME : CACHE_NAME).context();
 
         GridCacheDatabaseSharedManager db = 
(GridCacheDatabaseSharedManager)sharedCtx.database();
         IgniteWriteAheadLogManager wal = sharedCtx.wal();
@@ -339,7 +365,10 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
             if (op != GridCacheOperation.DELETE)
                 val = cctx.toCacheObject("value-" + i);
 
-            entries.add(new DataEntry(cctx.cacheId(), key, val, op, null, 
cctx.versions().next(), 0L,
+            entries.add(mvcc ?
+                    new MvccDataEntry(cctx.cacheId(), key, val, op, null, 
cctx.versions().next(), 0L,
+                            cctx.affinity().partition(i), i, new 
MvccVersionImpl(1000L, 10L, i + 1 /* Non-zero */)) :
+                    new DataEntry(cctx.cacheId(), key, val, op, null, 
cctx.versions().next(), 0L,
                 cctx.affinity().partition(i), i));
         }
 
@@ -350,17 +379,17 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
         wal.flush(start, false);
 
         for (DataEntry entry : entries)
-            wal.log(new DataRecord(entry));
+            wal.log(mvcc ? new MvccDataRecord((MvccDataEntry) entry) : new 
DataRecord(entry));
 
         // Data will not be written to the page store.
         stopAllGrids();
 
         ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         sharedCtx = ig.context().cache().context();
-        cctx = sharedCtx.cache().cache(cacheName).context();
+        cctx = sharedCtx.cache().cache(mvcc ? MVCC_CACHE_NAME : 
CACHE_NAME).context();
 
         db = (GridCacheDatabaseSharedManager)sharedCtx.database();
         wal = sharedCtx.wal();
@@ -386,7 +415,10 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
             while (idx < entries.size()) {
                 IgniteBiTuple<WALPointer, WALRecord> dataRecTup = it.next();
 
-                assert dataRecTup.get2() instanceof DataRecord;
+                if (!mvcc)
+                    assert dataRecTup.get2() instanceof DataRecord;
+                else
+                    assert dataRecTup.get2() instanceof MvccDataRecord;
 
                 DataRecord dataRec = (DataRecord)dataRecTup.get2();
 
@@ -409,6 +441,13 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
                 assertEquals(entry.nearXidVersion(), 
readEntry.nearXidVersion());
                 assertEquals(entry.partitionCounter(), 
readEntry.partitionCounter());
 
+                if (mvcc) {
+                    assert entry instanceof MvccDataEntry;
+                    assert readEntry instanceof MvccDataEntry;
+
+                    assertEquals(((MvccDataEntry) entry).mvccVer(), 
((MvccDataEntry) readEntry).mvccVer());
+                }
+
                 idx++;
             }
         }
@@ -421,10 +460,10 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
     public void testPageWalEntries() throws Exception {
         IgniteEx ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         GridCacheSharedContext<Object, Object> sharedCtx = 
ig.context().cache().context();
-        int cacheId = sharedCtx.cache().cache(cacheName).context().cacheId();
+        int cacheId = sharedCtx.cache().cache(CACHE_NAME).context().cacheId();
 
         GridCacheDatabaseSharedManager db = 
(GridCacheDatabaseSharedManager)sharedCtx.database();
         PageMemory pageMem = 
sharedCtx.database().dataRegion(null).pageMemory();
@@ -468,7 +507,7 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
 
         ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         sharedCtx = ig.context().cache().context();
 
@@ -522,11 +561,11 @@ public class 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest extends GridCom
     public void testDirtyFlag() throws Exception {
         IgniteEx ig = startGrid(0);
 
-        ig.active(true);
+        ig.cluster().active(true);
 
         GridCacheSharedContext<Object, Object> shared = 
ig.context().cache().context();
 
-        int cacheId = shared.cache().cache(cacheName).context().cacheId();
+        int cacheId = shared.cache().cache(CACHE_NAME).context().cacheId();
 
         GridCacheDatabaseSharedManager dbMgr = 
(GridCacheDatabaseSharedManager)shared.database();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalDeltaConsistencyTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalDeltaConsistencyTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalDeltaConsistencyTest.java
index e0057b0..3b324d5 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalDeltaConsistencyTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/AbstractWalDeltaConsistencyTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.cache.persistence.wal;
 
 import org.apache.ignite.Ignite;
+import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -47,6 +48,22 @@ public abstract class AbstractWalDeltaConsistencyTest 
extends GridCommonAbstract
     }
 
     /**
+     * @param name Cache name.
+     * @return Cache configuration.
+     */
+    @SuppressWarnings("unchecked")
+    protected  <K,V> CacheConfiguration<K, V> cacheConfiguration(String name) {
+        return defaultCacheConfiguration().setName(name);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        stopAllGrids();
+
+        super.afterTestsStopped();
+    }
+
+    /**
      * Check page memory on each checkpoint.
      */
     protected boolean checkPagesOnCheckpoint() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/CpTriggeredWalDeltaConsistencyTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/CpTriggeredWalDeltaConsistencyTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/CpTriggeredWalDeltaConsistencyTest.java
index 781111c..325d69f 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/CpTriggeredWalDeltaConsistencyTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/CpTriggeredWalDeltaConsistencyTest.java
@@ -19,25 +19,41 @@ package 
org.apache.ignite.internal.processors.cache.persistence.wal;
 
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.testframework.MvccFeatureChecker;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
 
 /**
  * Checkpoint triggered WAL delta records consistency test.
  */
+@RunWith(JUnit4.class)
 public class CpTriggeredWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistencyTest {
     /** {@inheritDoc} */
     @Override protected boolean checkPagesOnCheckpoint() {
         return true;
     }
 
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+
+        super.afterTest();
+    }
+
     /**
-     *
+     * @throws Exception If failed.
      */
+    @Test
     public final void testPutRemoveCacheDestroy() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10584";);
+
         IgniteEx ignite = startGrid(0);
 
         ignite.cluster().active(true);
 
-        IgniteCache<Integer, Object> cache0 = 
ignite.getOrCreateCache("cache0");
+        IgniteCache<Integer, Object> cache0 = 
ignite.createCache(cacheConfiguration("cache0"));
 
         for (int i = 0; i < 3_000; i++)
             cache0.put(i, "Cache value " + i);
@@ -49,7 +65,7 @@ public class CpTriggeredWalDeltaConsistencyTest extends 
AbstractWalDeltaConsiste
             cache0.remove(i);
 
         for (int i = 5; i >= 0; i--) {
-            IgniteCache<Integer, Object> cache1 = 
ignite.getOrCreateCache("cache1");
+            IgniteCache<Integer, Object> cache1 = 
ignite.getOrCreateCache(cacheConfiguration("cache1"));
 
             for (int j = 0; j < 300; j++)
                 cache1.put(j + i * 100, "Cache value " + j);
@@ -59,7 +75,5 @@ public class CpTriggeredWalDeltaConsistencyTest extends 
AbstractWalDeltaConsiste
         }
 
         forceCheckpoint();
-
-        stopAllGrids();
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/ExplicitWalDeltaConsistencyTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/ExplicitWalDeltaConsistencyTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/ExplicitWalDeltaConsistencyTest.java
index e9512e1..b5f47dd 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/ExplicitWalDeltaConsistencyTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/ExplicitWalDeltaConsistencyTest.java
@@ -20,20 +20,36 @@ package 
org.apache.ignite.internal.processors.cache.persistence.wal;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.internal.IgniteEx;
 import 
org.apache.ignite.internal.processors.cache.persistence.wal.memtracker.PageMemoryTrackerPluginProvider;
+import org.apache.ignite.testframework.MvccFeatureChecker;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
 
 /**
  * WAL delta records consistency test with explicit checks.
  */
+@RunWith(JUnit4.class)
 public class ExplicitWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistencyTest {
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+
+        super.afterTest();
+    }
+
     /**
-     *
+     * @throws Exception If failed.
      */
+    @Test
     public final void testPutRemoveAfterCheckpoint() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10584";);
+
         IgniteEx ignite = startGrid(0);
 
         ignite.cluster().active(true);
 
-        IgniteCache<Integer, Object> cache = 
ignite.getOrCreateCache(DEFAULT_CACHE_NAME);
+        IgniteCache<Integer, Object> cache = 
ignite.createCache(cacheConfiguration(DEFAULT_CACHE_NAME));
 
         for (int i = 0; i < 5_000; i++)
             cache.put(i, "Cache value " + i);
@@ -55,19 +71,20 @@ public class ExplicitWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistency
             cache.remove(i);
 
         
assertTrue(PageMemoryTrackerPluginProvider.tracker(ignite).checkPages(true));
-
-        stopAllGrids();
     }
 
     /**
-     *
+     * @throws Exception If failed.
      */
     public final void testNotEmptyPds() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10584";);
+
         IgniteEx ignite = startGrid(0);
 
         ignite.cluster().active(true);
 
-        IgniteCache<Integer, Object> cache = 
ignite.getOrCreateCache(DEFAULT_CACHE_NAME);
+        IgniteCache<Integer, Object> cache = 
ignite.createCache(cacheConfiguration(DEFAULT_CACHE_NAME));
 
         for (int i = 0; i < 3_000; i++)
             cache.put(i, "Cache value " + i);
@@ -80,7 +97,7 @@ public class ExplicitWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistency
 
         ignite.cluster().active(true);
 
-        cache = ignite.getOrCreateCache(DEFAULT_CACHE_NAME);
+        cache = 
ignite.getOrCreateCache(cacheConfiguration(DEFAULT_CACHE_NAME));
 
         for (int i = 2_000; i < 5_000; i++)
             cache.put(i, "Changed cache value " + i);
@@ -89,7 +106,5 @@ public class ExplicitWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistency
             cache.remove(i);
 
         
assertTrue(PageMemoryTrackerPluginProvider.tracker(ignite).checkPages(true));
-
-        stopAllGrids();
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/SysPropWalDeltaConsistencyTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/SysPropWalDeltaConsistencyTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/SysPropWalDeltaConsistencyTest.java
index db9f104..74ac777 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/SysPropWalDeltaConsistencyTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/wal/SysPropWalDeltaConsistencyTest.java
@@ -21,10 +21,15 @@ import org.apache.ignite.IgniteCache;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.IgniteEx;
 import 
org.apache.ignite.internal.processors.cache.persistence.wal.memtracker.PageMemoryTrackerPluginProvider;
+import org.apache.ignite.testframework.MvccFeatureChecker;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
 
 /**
  * WAL delta records consistency test enabled by system property.
  */
+@RunWith(JUnit4.class)
 public class SysPropWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistencyTest {
     /** {@inheritDoc} */
     @Override protected void beforeTestsStarted() throws Exception {
@@ -41,6 +46,13 @@ public class SysPropWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistencyT
     }
 
     /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+
+        super.afterTest();
+    }
+
+    /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String 
igniteInstanceName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
 
@@ -50,14 +62,18 @@ public class SysPropWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistencyT
     }
 
     /**
-     *
+     * @throws Exception If failed.
      */
+    @Test
     public final void testPutRemoveMultinode() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-10584";);
+
         IgniteEx ignite0 = startGrid(0);
 
         ignite0.cluster().active(true);
 
-        IgniteCache<Integer, Object> cache0 = 
ignite0.getOrCreateCache("cache0");
+        IgniteCache<Integer, Object> cache0 = 
ignite0.createCache(cacheConfiguration("cache0"));
 
         for (int i = 0; i < 3_000; i++)
             cache0.put(i, "Cache value " + i);
@@ -70,13 +86,11 @@ public class SysPropWalDeltaConsistencyTest extends 
AbstractWalDeltaConsistencyT
         for (int i = 1_000; i < 4_000; i++)
             cache0.remove(i);
 
-        IgniteCache<Integer, Object> cache1 = 
ignite1.getOrCreateCache("cache1");
+        IgniteCache<Integer, Object> cache1 = 
ignite1.createCache(cacheConfiguration("cache1"));
 
         for (int i = 0; i < 1_000; i++)
             cache1.put(i, "Cache value " + i);
 
         forceCheckpoint();
-
-        stopAllGrids();
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetAbstractTest.java
index 9b370bd..62d3f8c 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetAbstractTest.java
@@ -45,6 +45,7 @@ import org.apache.ignite.internal.util.typedef.PA;
 import org.apache.ignite.internal.util.typedef.X;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.GridTestUtils.SF;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -471,6 +472,9 @@ public abstract class IgniteDbPutGetAbstractTest extends 
IgniteDbAbstractTest {
      */
     @Test
     public void testSizeClear() throws Exception {
+        if (MvccFeatureChecker.forcedMvcc())
+            fail("https://issues.apache.org/jira/browse/IGNITE-7952";);
+
         final IgniteCache<Integer, DbValue> cache = cache(DEFAULT_CACHE_NAME);
 
         GridCacheAdapter<Integer, DbValue> internalCache = 
internalCache(cache);
@@ -845,7 +849,7 @@ public abstract class IgniteDbPutGetAbstractTest extends 
IgniteDbAbstractTest {
 
         long seed = System.currentTimeMillis();
 
-        int iterations = SF.apply(300_000);
+        int iterations = SF.apply(MvccFeatureChecker.forcedMvcc() ? 100_000 : 
300_000);
 
         X.println("Seed: " + seed);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetWithCacheStoreTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetWithCacheStoreTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetWithCacheStoreTest.java
index 0701514..b6eb708 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetWithCacheStoreTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbPutGetWithCacheStoreTest.java
@@ -31,6 +31,7 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.IgniteReflectionFactory;
 import org.apache.ignite.configuration.WALMode;
 import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.testframework.MvccFeatureChecker;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -81,6 +82,13 @@ public class IgniteDbPutGetWithCacheStoreTest extends 
GridCommonAbstractTest {
     }
 
     /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        
MvccFeatureChecker.failIfNotSupported(MvccFeatureChecker.Feature.CACHE_STORE);
+
+        super.beforeTest();
+    }
+
+    /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         cleanPersistenceDir();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsMvccTestSuite.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsMvccTestSuite.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsMvccTestSuite.java
new file mode 100644
index 0000000..396f53b
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsMvccTestSuite.java
@@ -0,0 +1,90 @@
+/*
+ * 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 java.util.Set;
+import junit.framework.TestSuite;
+import org.apache.ignite.IgniteSystemProperties;
+import 
org.apache.ignite.internal.processors.cache.persistence.IgnitePdsCacheConfigurationFileConsistencyCheckTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.IgnitePdsDestroyCacheTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.IgnitePdsDestroyCacheWithoutCheckpointsTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.db.IgnitePdsDataRegionMetricsTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.db.file.DefaultPageSizeBackwardsCompatibilityTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.db.file.IgnitePdsCheckpointSimulationWithRealCpDisabledTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.db.file.IgnitePdsPageReplacementTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.metastorage.IgniteMetaStorageBasicTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.BPlusTreePageMemoryImplTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.BPlusTreeReuseListPageMemoryImplTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.FillFactorMetricTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.IndexStoragePageMemoryImplTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImplNoLoadTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryImplTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryNoStoreLeakTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.pagemem.PagesWriteThrottleSmokeTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.wal.SegmentedRingByteBufferTest;
+import 
org.apache.ignite.internal.processors.cache.persistence.wal.aware.SegmentAwareTest;
+
+/**
+ *
+ */
+public class IgnitePdsMvccTestSuite extends TestSuite {
+    /**
+     * @return Suite.
+     */
+    public static TestSuite suite() {
+        
System.setProperty(IgniteSystemProperties.IGNITE_FORCE_MVCC_MODE_IN_TESTS, 
"true");
+
+        TestSuite suite = new TestSuite("Ignite Persistent Store Mvcc Test 
Suite");
+
+        Set<Class> ignoredTests = new HashSet<>();
+
+        // Skip classes that already contains Mvcc tests.
+        
ignoredTests.add(IgnitePdsCheckpointSimulationWithRealCpDisabledTest.class);
+
+        // Atomic tests.
+        ignoredTests.add(IgnitePdsDataRegionMetricsTest.class);
+
+        // Non-relevant tests.
+        
ignoredTests.add(IgnitePdsCacheConfigurationFileConsistencyCheckTest.class);
+        ignoredTests.add(DefaultPageSizeBackwardsCompatibilityTest.class);
+        ignoredTests.add(IgniteMetaStorageBasicTest.class);
+
+        ignoredTests.add(IgnitePdsPageReplacementTest.class);
+
+        ignoredTests.add(PageMemoryImplNoLoadTest.class);
+        ignoredTests.add(PageMemoryNoStoreLeakTest.class);
+        ignoredTests.add(IndexStoragePageMemoryImplTest.class);
+        ignoredTests.add(PageMemoryImplTest.class);
+        ignoredTests.add(BPlusTreePageMemoryImplTest.class);
+        ignoredTests.add(BPlusTreeReuseListPageMemoryImplTest.class);
+        ignoredTests.add(SegmentedRingByteBufferTest.class);
+        ignoredTests.add(PagesWriteThrottleSmokeTest.class);
+        ignoredTests.add(FillFactorMetricTest.class);
+        
ignoredTests.add(IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest.class);
+        ignoredTests.add(SegmentAwareTest.class);
+
+        ignoredTests.add(IgnitePdsDestroyCacheTest.class);
+        ignoredTests.add(IgnitePdsDestroyCacheWithoutCheckpointsTest.class);
+
+        suite.addTest(IgnitePdsTestSuite.suite(ignoredTests));
+
+        return suite;
+    }
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite.java
index f6c6797..5bfd0c4 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite.java
@@ -17,9 +17,10 @@
 
 package org.apache.ignite.testsuites;
 
-import junit.framework.JUnit4TestAdapter;
+import java.util.Collection;
 import junit.framework.TestSuite;
 import 
org.apache.ignite.internal.processors.cache.IgniteClusterActivateDeactivateTestWithPersistence;
+import 
org.apache.ignite.internal.processors.cache.IgnitePdsDataRegionMetricsTxTest;
 import 
org.apache.ignite.internal.processors.cache.persistence.IgnitePdsCacheConfigurationFileConsistencyCheckTest;
 import 
org.apache.ignite.internal.processors.cache.persistence.IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest;
 import 
org.apache.ignite.internal.processors.cache.persistence.IgnitePdsDestroyCacheTest;
@@ -51,50 +52,59 @@ import 
org.apache.ignite.internal.processors.database.IgniteDbMultiNodePutGetTes
 import 
org.apache.ignite.internal.processors.database.IgniteDbPutGetWithCacheStoreTest;
 import 
org.apache.ignite.internal.processors.database.IgniteDbSingleNodePutGetTest;
 import 
org.apache.ignite.internal.processors.database.IgniteDbSingleNodeTinyPutGetTest;
+import org.apache.ignite.testframework.GridTestUtils;
 
 /**
  *
  */
 public class IgnitePdsTestSuite extends TestSuite {
     /**
-     * @return Suite.
+     * @return IgniteCache test suite.
      */
     public static TestSuite suite() {
+        return suite(null);
+    }
+
+    /**
+     * @param ignoredTests Ignored tests.
+     * @return IgniteCache test suite.
+     */
+    public static TestSuite suite(Collection<Class> ignoredTests) {
         TestSuite suite = new TestSuite("Ignite Persistent Store Test Suite");
 
-        addRealPageStoreTests(suite);
-        addRealPageStoreTestsLongRunning(suite);
+        addRealPageStoreTests(suite, ignoredTests);
+        addRealPageStoreTestsLongRunning(suite, ignoredTests);
 
         // Basic PageMemory tests.
-        //suite.addTest(new JUnit4TestAdapter(PageMemoryNoLoadSelfTest.class));
-        suite.addTest(new JUnit4TestAdapter(PageMemoryImplNoLoadTest.class));
-        suite.addTest(new JUnit4TestAdapter(PageMemoryNoStoreLeakTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IndexStoragePageMemoryImplTest.class));
-        suite.addTest(new JUnit4TestAdapter(PageMemoryImplTest.class));
-        //suite.addTest(new JUnit4TestAdapter(PageIdDistributionTest.class));
-        //suite.addTest(new JUnit4TestAdapter(TrackingPageIOTest.class));
+        //GridTestUtils.addTestIfNeeded(suite, PageMemoryNoLoadSelfTest.class, 
ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, PageMemoryImplNoLoadTest.class, 
ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, PageMemoryNoStoreLeakTest.class, 
ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IndexStoragePageMemoryImplTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, PageMemoryImplTest.class, 
ignoredTests);
+        //GridTestUtils.addTestIfNeeded(suite, PageIdDistributionTest.class, 
ignoredTests);
+        //GridTestUtils.addTestIfNeeded(suite, TrackingPageIOTest.class, 
ignoredTests);
 
         // BTree tests with store page memory.
-        suite.addTest(new 
JUnit4TestAdapter(BPlusTreePageMemoryImplTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(BPlusTreeReuseListPageMemoryImplTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
BPlusTreePageMemoryImplTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
BPlusTreeReuseListPageMemoryImplTest.class, ignoredTests);
 
-        suite.addTest(new 
JUnit4TestAdapter(SegmentedRingByteBufferTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
SegmentedRingByteBufferTest.class, ignoredTests);
 
         // Write throttling
-        suite.addTest(new 
JUnit4TestAdapter(PagesWriteThrottleSmokeTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
PagesWriteThrottleSmokeTest.class, ignoredTests);
 
         // Metrics
-        suite.addTest(new JUnit4TestAdapter(FillFactorMetricTest.class));
+        GridTestUtils.addTestIfNeeded(suite, FillFactorMetricTest.class, 
ignoredTests);
 
         // WAL delta consistency
-        suite.addTest(new 
JUnit4TestAdapter(CpTriggeredWalDeltaConsistencyTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(ExplicitWalDeltaConsistencyTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(SysPropWalDeltaConsistencyTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
CpTriggeredWalDeltaConsistencyTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
ExplicitWalDeltaConsistencyTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
SysPropWalDeltaConsistencyTest.class, ignoredTests);
 
         // Binary meta tests.
-        suite.addTest(new 
JUnit4TestAdapter(IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsCacheObjectBinaryProcessorOnDiscoveryTest.class, ignoredTests);
 
-        suite.addTest(new JUnit4TestAdapter(SegmentAwareTest.class));
+        GridTestUtils.addTestIfNeeded(suite, SegmentAwareTest.class, 
ignoredTests);
 
         return suite;
     }
@@ -104,10 +114,11 @@ public class IgnitePdsTestSuite extends TestSuite {
      * execute.
      *
      * @param suite suite to add tests into.
+     * @param ignoredTests Ignored tests.
      */
-    private static void addRealPageStoreTestsLongRunning(TestSuite suite) {
+    private static void addRealPageStoreTestsLongRunning(TestSuite suite, 
Collection<Class> ignoredTests) {
         // Basic PageMemory tests.
-        suite.addTest(new 
JUnit4TestAdapter(IgnitePdsPageReplacementTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsPageReplacementTest.class, ignoredTests);
     }
 
     /**
@@ -116,41 +127,43 @@ public class IgnitePdsTestSuite extends TestSuite {
      * NOTE: These tests are also executed using I/O plugins.
      *
      * @param suite suite to add tests into.
+     * @param ignoredTests Ignored tests.
      */
-    public static void addRealPageStoreTests(TestSuite suite) {
+    public static void addRealPageStoreTests(TestSuite suite, 
Collection<Class> ignoredTests) {
 
         // Checkpointing smoke-test.
-        suite.addTest(new 
JUnit4TestAdapter(IgnitePdsCheckpointSimulationWithRealCpDisabledTest.class));
-        //suite.addTest(new 
JUnit4TestAdapter(IgnitePdsCheckpointSimpleTest.class));
-        //suite.addTest(new 
JUnit4TestAdapter(IgnitePersistenceSequentialCheckpointTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsCheckpointSimulationWithRealCpDisabledTest.class, ignoredTests);
+        //GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsCheckpointSimpleTest.class, ignoredTests);
+        //GridTestUtils.addTestIfNeeded(suite, 
IgnitePersistenceSequentialCheckpointTest.class, ignoredTests);
 
         // Basic API tests.
-        suite.addTest(new 
JUnit4TestAdapter(IgniteDbSingleNodePutGetTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IgniteDbMultiNodePutGetTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IgniteDbSingleNodeTinyPutGetTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IgniteDbDynamicCacheSelfTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
IgniteDbSingleNodePutGetTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgniteDbMultiNodePutGetTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgniteDbSingleNodeTinyPutGetTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgniteDbDynamicCacheSelfTest.class, ignoredTests);
 
         // Persistence-enabled.
-        suite.addTest(new 
JUnit4TestAdapter(IgnitePdsSingleNodePutGetPersistenceTest.class));
-        suite.addTest(new JUnit4TestAdapter(IgnitePdsDynamicCacheTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsSingleNodePutGetPersistenceTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, IgnitePdsDynamicCacheTest.class, 
ignoredTests);
         // TODO uncomment when 
https://issues.apache.org/jira/browse/IGNITE-7510 is fixed
-        // suite.addTest(new 
JUnit4TestAdapter(IgnitePdsClientNearCachePutGetTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IgniteDbPutGetWithCacheStoreTest.class));
-        suite.addTest(new JUnit4TestAdapter(IgnitePdsWithTtlTest.class));
+        // GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsClientNearCachePutGetTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgniteDbPutGetWithCacheStoreTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, IgnitePdsWithTtlTest.class, 
ignoredTests);
 
-        suite.addTest(new 
JUnit4TestAdapter(IgniteClusterActivateDeactivateTestWithPersistence.class));
+        GridTestUtils.addTestIfNeeded(suite, 
IgniteClusterActivateDeactivateTestWithPersistence.class, ignoredTests);
 
-        suite.addTest(new JUnit4TestAdapter(IgnitePdsCacheRestoreTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IgnitePdsDataRegionMetricsTest.class));
+        GridTestUtils.addTestIfNeeded(suite, IgnitePdsCacheRestoreTest.class, 
ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsDataRegionMetricsTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsDataRegionMetricsTxTest.class, ignoredTests);
 
-        suite.addTest(new JUnit4TestAdapter(IgnitePdsDestroyCacheTest.class));
-        //suite.addTest(new 
JUnit4TestAdapter(IgnitePdsRemoveDuringRebalancingTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IgnitePdsDestroyCacheWithoutCheckpointsTest.class));
-        suite.addTest(new 
JUnit4TestAdapter(IgnitePdsCacheConfigurationFileConsistencyCheckTest.class));
+        GridTestUtils.addTestIfNeeded(suite, IgnitePdsDestroyCacheTest.class, 
ignoredTests);
+        //GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsRemoveDuringRebalancingTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsDestroyCacheWithoutCheckpointsTest.class, ignoredTests);
+        GridTestUtils.addTestIfNeeded(suite, 
IgnitePdsCacheConfigurationFileConsistencyCheckTest.class, ignoredTests);
 
-        suite.addTest(new 
JUnit4TestAdapter(DefaultPageSizeBackwardsCompatibilityTest.class));
+        GridTestUtils.addTestIfNeeded(suite, 
DefaultPageSizeBackwardsCompatibilityTest.class, ignoredTests);
 
         //MetaStorage
-        suite.addTest(new JUnit4TestAdapter(IgniteMetaStorageBasicTest.class));
+        GridTestUtils.addTestIfNeeded(suite, IgniteMetaStorageBasicTest.class, 
ignoredTests);
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/489e3042/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite.java
----------------------------------------------------------------------
diff --git 
a/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite.java
 
b/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite.java
index 787a755..6a42464 100644
--- 
a/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite.java
+++ 
b/modules/direct-io/src/test/java/org/apache/ignite/testsuites/IgnitePdsNativeIoTestSuite.java
@@ -29,7 +29,7 @@ public class IgnitePdsNativeIoTestSuite extends TestSuite {
     public static TestSuite suite() {
         TestSuite suite = new TestSuite("Ignite Persistent Store Test Suite 
(with Direct IO)");
 
-        IgnitePdsTestSuite.addRealPageStoreTests(suite);
+        IgnitePdsTestSuite.addRealPageStoreTests(suite, null);
 
         //long running test by design with light parameters
         suite.addTestSuite(IgnitePdsReplacementNativeIoTest.class);

Reply via email to