Backported test fixes.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e2ec9fed Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e2ec9fed Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e2ec9fed Branch: refs/heads/ignite-3414 Commit: e2ec9fede7793c164821b99da37455ac9f7c8fda Parents: 5b6e781 Author: sboikov <[email protected]> Authored: Tue Jul 5 07:43:51 2016 +0300 Committer: sboikov <[email protected]> Committed: Thu Jul 7 12:37:46 2016 +0300 ---------------------------------------------------------------------- .../cache/GridCacheAbstractSelfTest.java | 113 +++++-------------- 1 file changed, 29 insertions(+), 84 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/e2ec9fed/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java index b918f28..d58e560 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractSelfTest.java @@ -17,7 +17,6 @@ package org.apache.ignite.internal.processors.cache; -import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import javax.cache.Cache; import javax.cache.configuration.Factory; @@ -30,7 +29,6 @@ import org.apache.ignite.cache.CacheMode; import org.apache.ignite.cache.CachePeekMode; import org.apache.ignite.cache.CacheWriteSynchronizationMode; import org.apache.ignite.cache.store.CacheStore; -import org.apache.ignite.cache.store.CacheStoreAdapter; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.configuration.NearCacheConfiguration; @@ -43,7 +41,6 @@ import org.apache.ignite.internal.util.typedef.P1; import org.apache.ignite.internal.util.typedef.R1; import org.apache.ignite.internal.util.typedef.X; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.lang.IgniteBiInClosure; import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; @@ -52,7 +49,6 @@ import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.apache.ignite.transactions.Transaction; import org.jetbrains.annotations.Nullable; -import org.jsr166.ConcurrentHashMap8; import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; import static org.apache.ignite.cache.CacheMemoryMode.OFFHEAP_TIERED; @@ -66,21 +62,12 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { /** Test timeout */ private static final long TEST_TIMEOUT = 30 * 1000; - /** Store map. */ - protected static final Map<Object, Object> map = new ConcurrentHashMap8<>(); - - /** Reads counter. */ - protected static final AtomicInteger reads = new AtomicInteger(); - - /** Writes counter. */ - protected static final AtomicInteger writes = new AtomicInteger(); - - /** Removes counter. */ - protected static final AtomicInteger removes = new AtomicInteger(); - /** VM ip finder for TCP discovery. */ protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true); + /** */ + protected static TestCacheStoreStrategy storeStgy; + /** * @return Grids count to start. */ @@ -97,6 +84,8 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { assert cnt >= 1 : "At least one grid must be started"; + initStoreStrategy(); + startGrids(cnt); awaitPartitionMapExchange(); @@ -106,7 +95,18 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { @Override protected void afterTestsStopped() throws Exception { stopAllGrids(); - map.clear(); + if (storeStgy != null) + storeStgy.resetStore(); + } + + /** + * Initializes {@link #storeStgy} with respect to the nature of the test. + * + * @throws IgniteCheckedException If failed. + */ + void initStoreStrategy() throws IgniteCheckedException { + if (storeStgy == null) + storeStgy = isMultiJvm() ? new H2CacheStoreStrategy() : new MapCacheStoreStrategy(); } /** {@inheritDoc} */ @@ -188,28 +188,7 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { assert jcache().unwrap(Ignite.class).transactions().tx() == null; assertEquals("Cache is not empty", 0, jcache().localSize(CachePeekMode.ALL)); - resetStore(); - } - - /** - * Cleans up cache store. - */ - protected void resetStore() { - map.clear(); - - reads.set(0); - writes.set(0); - removes.set(0); - } - - /** - * Put entry to cache store. - * - * @param key Key. - * @param val Value. - */ - protected void putToStore(Object key, Object val) { - map.put(key, val); + storeStgy.resetStore(); } /** {@inheritDoc} */ @@ -241,13 +220,18 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { protected CacheConfiguration cacheConfiguration(String gridName) throws Exception { CacheConfiguration cfg = defaultCacheConfiguration(); - CacheStore<?, ?> store = cacheStore(); + if (storeStgy != null) { + Factory<? extends CacheStore<Object, Object>> storeFactory = storeStgy.getStoreFactory(); - if (store != null) { - cfg.setCacheStoreFactory(new TestStoreFactory()); - cfg.setReadThrough(true); - cfg.setWriteThrough(true); - cfg.setLoadPreviousValue(true); + CacheStore<?, ?> store = storeFactory.create(); + + if (store != null) { + cfg.setCacheStoreFactory(storeFactory); + cfg.setReadThrough(true); + cfg.setWriteThrough(true); + cfg.setLoadPreviousValue(true); + storeStgy.updateCacheConfiguration(cfg); + } } cfg.setSwapEnabled(swapEnabled()); @@ -303,37 +287,6 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { } /** - * @return Write through storage emulator. - */ - protected static CacheStore<?, ?> cacheStore() { - return new CacheStoreAdapter<Object, Object>() { - @Override public void loadCache(IgniteBiInClosure<Object, Object> clo, - Object... args) { - for (Map.Entry<Object, Object> e : map.entrySet()) - clo.apply(e.getKey(), e.getValue()); - } - - @Override public Object load(Object key) { - reads.incrementAndGet(); - - return map.get(key); - } - - @Override public void write(javax.cache.Cache.Entry<? extends Object, ? extends Object> e) { - writes.incrementAndGet(); - - map.put(e.getKey(), e.getValue()); - } - - @Override public void delete(Object key) { - removes.incrementAndGet(); - - map.remove(key); - } - }; - } - - /** * @return {@code true} if swap should be enabled. */ protected boolean swapEnabled() { @@ -575,12 +528,4 @@ public abstract class GridCacheAbstractSelfTest extends GridCommonAbstractTest { } } - /** - * Serializable factory. - */ - protected static class TestStoreFactory implements Factory<CacheStore> { - @Override public CacheStore create() { - return cacheStore(); - } - } }
