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);
