ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sevdoki...@apache.org
Subject [2/2] incubator-ignite git commit: # IGNITE-56 Rename "clear" tests.
Date Tue, 10 Feb 2015 11:50:06 GMT
# IGNITE-56 Rename "clear" tests.


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

Branch: refs/heads/ignite-96-tests
Commit: 95d2c9566ddba340bbfa47676add124e31ca57b7
Parents: 137b729
Author: sevdokimov <sevdokimov@gridgain.com>
Authored: Tue Feb 10 14:49:59 2015 +0300
Committer: sevdokimov <sevdokimov@gridgain.com>
Committed: Tue Feb 10 14:49:59 2015 +0300

----------------------------------------------------------------------
 .../cache/GridCacheClearAllSelfTest.java        | 301 ++++-------------
 .../cache/GridCacheClearLocalySelfTest.java     | 336 +++++++++++++++++++
 .../cache/GridCacheGlobalClearAllSelfTest.java  | 168 ----------
 .../junits/common/GridCommonAbstractTest.java   |   4 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |   1 -
 5 files changed, 405 insertions(+), 405 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/95d2c956/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearAllSelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearAllSelfTest.java
index 139d6da0..0bd90cb 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearAllSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearAllSelfTest.java
@@ -24,88 +24,55 @@ import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.apache.ignite.testframework.junits.common.*;
-import org.apache.ignite.transactions.*;
-
-import java.lang.reflect.*;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.*;
 import static org.apache.ignite.cache.CacheDistributionMode.*;
 import static org.apache.ignite.cache.CacheMode.*;
-import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
-import static org.apache.ignite.internal.processors.cache.GridCacheAdapter.*;
 
 /**
- * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} operations in multinode
environment with nodes having caches with different names.
+ * Test {@link IgniteCache#clear()} operation in multinode environment with nodes
+ * having caches with different names.
  */
 public class GridCacheClearAllSelfTest extends GridCommonAbstractTest {
-    /** Local cache. */
-    private static final String CACHE_LOCAL = "cache_local";
+    /** Grid nodes count. */
+    private static final int GRID_CNT = 3;
 
-    /** Partitioned cache. */
-    private static final String CACHE_PARTITIONED = "cache_partitioned";
+    /** Amount of keys stored in the default cache. */
+    private static final int KEY_CNT = 20;
 
-    /** Co-located cache. */
-    private static final String CACHE_COLOCATED = "cache_colocated";
+    /** Amount of keys stored in cache other than default. */
+    private static final int KEY_CNT_OTHER = 10;
 
-    /** Replicated cache. */
-    private static final String CACHE_REPLICATED = "cache_replicated";
+    /** Default cache name. */
+    private static final String CACHE_NAME = "cache_name";
 
-    /** Grid nodes count. */
-    private static final int GRID_CNT = 3;
+    /** Cache name which differs from the default one. */
+    private static final String CACHE_NAME_OTHER = "cache_name_other";
 
     /** VM IP finder for TCP discovery SPI. */
     private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
-    /** Local caches. */
-    private GridCache<Integer, Integer>[] cachesLoc;
-
-    /** Partitioned caches. */
-    private GridCache<Integer, Integer>[] cachesPartitioned;
+    /** Cache name which will be passed to grid configuration. */
+    private CacheMode cacheMode = PARTITIONED;
 
-    /** Colocated caches. */
-    private GridCache<Integer, Integer>[] cachesColocated;
-
-    /** Replicated caches. */
-    private GridCache<Integer, Integer>[] cachesReplicated;
+    /** Cache mode which will be passed to grid configuration. */
+    private String cacheName = CACHE_NAME;
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception
{
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        CacheConfiguration ccfgLoc = new CacheConfiguration();
-
-        ccfgLoc.setName(CACHE_LOCAL);
-        ccfgLoc.setCacheMode(LOCAL);
-        ccfgLoc.setWriteSynchronizationMode(FULL_SYNC);
-        ccfgLoc.setAtomicityMode(TRANSACTIONAL);
-
-        CacheConfiguration ccfgPartitioned = new CacheConfiguration();
-
-        ccfgPartitioned.setName(CACHE_PARTITIONED);
-        ccfgPartitioned.setCacheMode(PARTITIONED);
-        ccfgPartitioned.setBackups(1);
-        ccfgPartitioned.setWriteSynchronizationMode(FULL_SYNC);
-        ccfgPartitioned.setDistributionMode(gridName.equals(getTestGridName(0)) ? NEAR_PARTITIONED
:
-            gridName.equals(getTestGridName(1)) ? NEAR_ONLY : CLIENT_ONLY);
-        ccfgPartitioned.setAtomicityMode(TRANSACTIONAL);
-
-        CacheConfiguration ccfgColocated = new CacheConfiguration();
+        CacheConfiguration ccfg = defaultCacheConfiguration();
 
-        ccfgColocated.setName(CACHE_COLOCATED);
-        ccfgColocated.setCacheMode(PARTITIONED);
-        ccfgColocated.setBackups(1);
-        ccfgColocated.setWriteSynchronizationMode(FULL_SYNC);
-        ccfgColocated.setDistributionMode(PARTITIONED_ONLY);
-        ccfgColocated.setAtomicityMode(TRANSACTIONAL);
+        ccfg.setName(cacheName);
+        ccfg.setCacheMode(cacheMode);
+        ccfg.setAtomicityMode(TRANSACTIONAL);
+        ccfg.setDistributionMode(NEAR_PARTITIONED);
 
-        CacheConfiguration ccfgReplicated = new CacheConfiguration();
+        if (cacheMode == PARTITIONED)
+            ccfg.setBackups(1);
 
-        ccfgReplicated.setName(CACHE_REPLICATED);
-        ccfgReplicated.setCacheMode(REPLICATED);
-        ccfgReplicated.setWriteSynchronizationMode(FULL_SYNC);
-        ccfgReplicated.setAtomicityMode(TRANSACTIONAL);
-
-        cfg.setCacheConfiguration(ccfgLoc, ccfgPartitioned, ccfgColocated, ccfgReplicated);
+        cfg.setCacheConfiguration(ccfg);
 
         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
 
@@ -119,217 +86,83 @@ public class GridCacheClearAllSelfTest extends GridCommonAbstractTest
{
     /** {@inheritDoc} */
     @Override protected void afterTest() throws Exception {
         stopAllGrids();
-
-        cachesLoc = null;
-        cachesPartitioned = null;
-        cachesColocated = null;
-        cachesReplicated = null;
-    }
-
-    /**
-     * Startup routine.
-     *
-     * @throws Exception If failed.
-     */
-    private void startUp() throws Exception {
-        cachesLoc = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
-        cachesPartitioned = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
-        cachesColocated = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
-        cachesReplicated = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
-
-        for (int i = 0; i < GRID_CNT; i++) {
-            Ignite ignite = startGrid(i);
-
-            cachesLoc[i] = ignite.cache(CACHE_LOCAL);
-            cachesPartitioned[i] = ignite.cache(CACHE_PARTITIONED);
-            cachesColocated[i] = ignite.cache(CACHE_COLOCATED);
-            cachesReplicated[i] = ignite.cache(CACHE_REPLICATED);
-        }
     }
 
     /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on LOCAL cache with
no split.
+     * Start GRID_CNT nodes. All nodes except the last one will have one cache with particular
name, while the last
+     * one will have one cache of the same type, but with different name.
      *
-     * @throws Exception If failed.
+     * @throws Exception In case of exception.
      */
-    public void testLocalNoSplit() throws Exception {
-        test(Mode.TEST_LOCAL, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
+    private void startNodes() throws Exception {
+        cacheName = CACHE_NAME;
 
-    /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on LOCAL cache with
split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testLocalSplit() throws Exception {
-        test(Mode.TEST_LOCAL, CLEAR_ALL_SPLIT_THRESHOLD + 1);
-    }
+        for (int i = 0; i < GRID_CNT - 1; i++)
+            startGrid(i);
 
-    /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on PARTITIONED cache
with no split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testPartitionedNoSplit() throws Exception {
-        test(Mode.TEST_PARTITIONED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
+        cacheName = CACHE_NAME_OTHER;
 
-    /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on PARTITIONED cache
with split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testPartitionedSplit() throws Exception {
-        test(Mode.TEST_PARTITIONED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
+        startGrid(GRID_CNT - 1);
     }
 
     /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on co-located cache
with no split.
+     * Test for partitioned cache.
      *
-     * @throws Exception If failed.
-     */
-    public void testColocatedNoSplit() throws Exception {
-        test(Mode.TEST_COLOCATED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
-
-    /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on co-located cache
with split.
-     *
-     * @throws Exception If failed.
+     * @throws Exception In case of exception.
      */
-    public void testColocatedSplit() throws Exception {
-        test(Mode.TEST_COLOCATED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
-    }
+    public void testGlobalClearAllPartitioned() throws Exception {
+        cacheMode = PARTITIONED;
 
-    /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on REPLICATED cache
with no split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testReplicatedNoSplit() throws Exception {
-        test(Mode.TEST_REPLICATED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
-    }
+        startNodes();
 
-    /**
-     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on REPLICATED cache
with split.
-     *
-     * @throws Exception If failed.
-     */
-    public void testReplicatedSplit() throws Exception {
-        test(Mode.TEST_REPLICATED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
+        performTest();
     }
 
     /**
-     * Internal method for all tests.
+     * Test for replicated cache.
      *
-     * @param mode Test mode
-     * @param keysCnt Keys count.
      * @throws Exception In case of exception.
      */
-    private void test(Mode mode, int keysCnt) throws Exception {
-        startUp();
-
-        switch (mode) {
-            case TEST_LOCAL: {
-                // Check on only one node.
-                GridCache<Integer, Integer> cache = cachesLoc[0];
-
-                fillCache(cache, keysCnt);
-
-                cache.clear();
-
-                assert cache.isEmpty();
-
-                break;
-            }
-            case TEST_PARTITIONED: {
-                // Take in count special case for near-only cache as well.
-                fillCache(cachesPartitioned[0], keysCnt);
-
-                // Ensure correct no-op clean of CLIENT_ONLY cache.
-                warmCache(cachesPartitioned[2], keysCnt);
-                assert cachesPartitioned[2].isEmpty();
-                cachesPartitioned[2].clearLocally();
-                assert cachesPartitioned[2].isEmpty();
+    public void testGlobalClearAllReplicated() throws Exception {
+        cacheMode = REPLICATED;
 
-                stopGrid(2); // Shutdown Grid in order to remove reader in NEAR_PARTITIONED
cache.
+        startNodes();
 
-                // Ensure correct clearLocally of NEA_ONLY cache.
-                warmCache(cachesPartitioned[1], keysCnt);
-                assert !cachesPartitioned[1].isEmpty();
-                cachesPartitioned[1].clearLocally();
-                assert cachesPartitioned[1].isEmpty();
-                fillCache(cachesPartitioned[1], keysCnt);
-
-                stopGrid(1); // Shutdown Grid in order to remove reader in NEAR_PARTITIONED
cache.
-
-                // Ensure correct clearLocally of NEAR_PARTITIONED cache.
-                assert !cachesPartitioned[0].isEmpty();
-                cachesPartitioned[0].clearLocally();
-                assert cachesPartitioned[0].isEmpty();
-
-                break;
-            }
-            default: {
-                assert mode == Mode.TEST_COLOCATED || mode == Mode.TEST_REPLICATED;
-
-                GridCache<Integer, Integer>[] caches = mode == Mode.TEST_COLOCATED
? cachesColocated : cachesReplicated;
-
-                fillCache(caches[0], keysCnt);
-
-                for (GridCache<Integer, Integer> cache : caches) {
-                    assert !cache.isEmpty();
-
-                    cache.clearLocally();
-
-                    assert cache.isEmpty();
-                }
-            }
-        }
+        performTest();
     }
 
     /**
-     * Fill cache with values.
+     * Ensure that clear() clears correct cache and is only executed on nodes with the cache
excluding
+     * master-node where it is executed locally.
      *
-     * @param cache Cache.
-     * @param keysCnt Amount of keys to put.
      * @throws Exception If failed.
      */
-    private void fillCache(GridCache<Integer, Integer> cache, int keysCnt) throws Exception
{
-        try (IgniteTx tx = cache.txStart()) {
-            for (int i = 0; i < keysCnt; i++)
-                cache.put(i, i);
+    public void performTest() throws Exception {
+        // Put values into normal replicated cache.
+        for (int i = 0; i < KEY_CNT; i++)
+            grid(0).jcache(CACHE_NAME).put(i, "val" + i);
 
-            tx.commit();
-        }
-    }
+        // Put values into a cache with another name.
+        for (int i = 0; i < KEY_CNT_OTHER; i++)
+            grid(GRID_CNT - 1).jcache(CACHE_NAME_OTHER).put(i, "val" + i);
 
-    /**
-     * Warm cache up.
-     *
-     * @param cache Cache.
-     * @param keysCnt Amount of keys to get.
-     * @throws Exception If failed.
-     */
-    private void warmCache(GridCache<Integer, Integer> cache, int keysCnt) throws Exception
{
-        for (int i = 0; i < keysCnt; i++)
-            cache.get(i);
-    }
+        // Check cache sizes.
+        for (int i = 0; i < GRID_CNT - 1; i++) {
+            IgniteCache<Object, Object> cache = grid(i).jcache(CACHE_NAME);
 
-    /**
-     * Test mode.
-     */
-    private enum Mode {
-        /** Local cache. */
-        TEST_LOCAL,
+            assertEquals("Key set [i=" + i + ']', KEY_CNT, cache.localSize());
+        }
+
+        assert grid(GRID_CNT - 1).jcache(CACHE_NAME_OTHER).localSize() == KEY_CNT_OTHER;
 
-        /** Partitioned cache. */
-        TEST_PARTITIONED,
+        // Perform clear.
+        grid(0).jcache(CACHE_NAME).clear();
 
-        /** Co-located cache. */
-        TEST_COLOCATED,
+        // Expect caches with the given name to be clear on all nodes.
+        for (int i = 0; i < GRID_CNT - 1; i++)
+            assert grid(i).jcache(CACHE_NAME).isEmpty();
 
-        /** Replicated cache. */
-        TEST_REPLICATED
+        // ... but cache with another name should remain untouched.
+        assert grid(GRID_CNT - 1).jcache(CACHE_NAME_OTHER).localSize() == KEY_CNT_OTHER;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/95d2c956/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocalySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocalySelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocalySelfTest.java
new file mode 100644
index 0000000..a33304f
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheClearLocalySelfTest.java
@@ -0,0 +1,336 @@
+/*
+ * 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.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.junits.common.*;
+import org.apache.ignite.transactions.*;
+
+import java.lang.reflect.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+import static org.apache.ignite.cache.CacheDistributionMode.*;
+import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
+import static org.apache.ignite.internal.processors.cache.GridCacheAdapter.*;
+
+/**
+ * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} operations in multinode
environment with nodes having caches with different names.
+ */
+public class GridCacheClearLocalySelfTest extends GridCommonAbstractTest {
+    /** Local cache. */
+    private static final String CACHE_LOCAL = "cache_local";
+
+    /** Partitioned cache. */
+    private static final String CACHE_PARTITIONED = "cache_partitioned";
+
+    /** Co-located cache. */
+    private static final String CACHE_COLOCATED = "cache_colocated";
+
+    /** Replicated cache. */
+    private static final String CACHE_REPLICATED = "cache_replicated";
+
+    /** Grid nodes count. */
+    private static final int GRID_CNT = 3;
+
+    /** VM IP finder for TCP discovery SPI. */
+    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+    /** Local caches. */
+    private GridCache<Integer, Integer>[] cachesLoc;
+
+    /** Partitioned caches. */
+    private GridCache<Integer, Integer>[] cachesPartitioned;
+
+    /** Colocated caches. */
+    private GridCache<Integer, Integer>[] cachesColocated;
+
+    /** Replicated caches. */
+    private GridCache<Integer, Integer>[] cachesReplicated;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception
{
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        CacheConfiguration ccfgLoc = new CacheConfiguration();
+
+        ccfgLoc.setName(CACHE_LOCAL);
+        ccfgLoc.setCacheMode(LOCAL);
+        ccfgLoc.setWriteSynchronizationMode(FULL_SYNC);
+        ccfgLoc.setAtomicityMode(TRANSACTIONAL);
+
+        CacheConfiguration ccfgPartitioned = new CacheConfiguration();
+
+        ccfgPartitioned.setName(CACHE_PARTITIONED);
+        ccfgPartitioned.setCacheMode(PARTITIONED);
+        ccfgPartitioned.setBackups(1);
+        ccfgPartitioned.setWriteSynchronizationMode(FULL_SYNC);
+        ccfgPartitioned.setDistributionMode(gridName.equals(getTestGridName(0)) ? NEAR_PARTITIONED
:
+            gridName.equals(getTestGridName(1)) ? NEAR_ONLY : CLIENT_ONLY);
+        ccfgPartitioned.setAtomicityMode(TRANSACTIONAL);
+
+        CacheConfiguration ccfgColocated = new CacheConfiguration();
+
+        ccfgColocated.setName(CACHE_COLOCATED);
+        ccfgColocated.setCacheMode(PARTITIONED);
+        ccfgColocated.setBackups(1);
+        ccfgColocated.setWriteSynchronizationMode(FULL_SYNC);
+        ccfgColocated.setDistributionMode(PARTITIONED_ONLY);
+        ccfgColocated.setAtomicityMode(TRANSACTIONAL);
+
+        CacheConfiguration ccfgReplicated = new CacheConfiguration();
+
+        ccfgReplicated.setName(CACHE_REPLICATED);
+        ccfgReplicated.setCacheMode(REPLICATED);
+        ccfgReplicated.setWriteSynchronizationMode(FULL_SYNC);
+        ccfgReplicated.setAtomicityMode(TRANSACTIONAL);
+
+        cfg.setCacheConfiguration(ccfgLoc, ccfgPartitioned, ccfgColocated, ccfgReplicated);
+
+        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+
+        discoSpi.setIpFinder(IP_FINDER);
+
+        cfg.setDiscoverySpi(discoSpi);
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTest() throws Exception {
+        stopAllGrids();
+
+        cachesLoc = null;
+        cachesPartitioned = null;
+        cachesColocated = null;
+        cachesReplicated = null;
+    }
+
+    /**
+     * Startup routine.
+     *
+     * @throws Exception If failed.
+     */
+    private void startUp() throws Exception {
+        cachesLoc = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
+        cachesPartitioned = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
+        cachesColocated = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
+        cachesReplicated = (GridCache<Integer, Integer>[])Array.newInstance(GridCache.class,
GRID_CNT);
+
+        for (int i = 0; i < GRID_CNT; i++) {
+            Ignite ignite = startGrid(i);
+
+            cachesLoc[i] = ((IgniteKernal)ignite).cache(CACHE_LOCAL);
+            cachesPartitioned[i] = ((IgniteKernal)ignite).cache(CACHE_PARTITIONED);
+            cachesColocated[i] = ((IgniteKernal)ignite).cache(CACHE_COLOCATED);
+            cachesReplicated[i] = ((IgniteKernal)ignite).cache(CACHE_REPLICATED);
+        }
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on LOCAL cache with
no split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testLocalNoSplit() throws Exception {
+        test(Mode.TEST_LOCAL, CLEAR_ALL_SPLIT_THRESHOLD / 2);
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on LOCAL cache with
split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testLocalSplit() throws Exception {
+        test(Mode.TEST_LOCAL, CLEAR_ALL_SPLIT_THRESHOLD + 1);
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on PARTITIONED cache
with no split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testPartitionedNoSplit() throws Exception {
+        test(Mode.TEST_PARTITIONED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on PARTITIONED cache
with split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testPartitionedSplit() throws Exception {
+        test(Mode.TEST_PARTITIONED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on co-located cache
with no split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testColocatedNoSplit() throws Exception {
+        test(Mode.TEST_COLOCATED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on co-located cache
with split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testColocatedSplit() throws Exception {
+        test(Mode.TEST_COLOCATED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on REPLICATED cache
with no split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testReplicatedNoSplit() throws Exception {
+        test(Mode.TEST_REPLICATED, CLEAR_ALL_SPLIT_THRESHOLD / 2);
+    }
+
+    /**
+     * Test {@link org.apache.ignite.cache.GridCache#clearLocally()} on REPLICATED cache
with split.
+     *
+     * @throws Exception If failed.
+     */
+    public void testReplicatedSplit() throws Exception {
+        test(Mode.TEST_REPLICATED, CLEAR_ALL_SPLIT_THRESHOLD + 1);
+    }
+
+    /**
+     * Internal method for all tests.
+     *
+     * @param mode Test mode
+     * @param keysCnt Keys count.
+     * @throws Exception In case of exception.
+     */
+    private void test(Mode mode, int keysCnt) throws Exception {
+        startUp();
+
+        switch (mode) {
+            case TEST_LOCAL: {
+                // Check on only one node.
+                GridCache<Integer, Integer> cache = cachesLoc[0];
+
+                fillCache(cache, keysCnt);
+
+                cache.clearLocally();
+
+                assert cache.isEmpty();
+
+                break;
+            }
+            case TEST_PARTITIONED: {
+                // Take in count special case for near-only cache as well.
+                fillCache(cachesPartitioned[0], keysCnt);
+
+                // Ensure correct no-op clean of CLIENT_ONLY cache.
+                warmCache(cachesPartitioned[2], keysCnt);
+                assert cachesPartitioned[2].isEmpty();
+                cachesPartitioned[2].clearLocally();
+                assert cachesPartitioned[2].isEmpty();
+
+                stopGrid(2); // Shutdown Grid in order to remove reader in NEAR_PARTITIONED
cache.
+
+                // Ensure correct clearLocally of NEA_ONLY cache.
+                warmCache(cachesPartitioned[1], keysCnt);
+                assert !cachesPartitioned[1].isEmpty();
+                cachesPartitioned[1].clearLocally();
+                assert cachesPartitioned[1].isEmpty();
+                fillCache(cachesPartitioned[1], keysCnt);
+
+                stopGrid(1); // Shutdown Grid in order to remove reader in NEAR_PARTITIONED
cache.
+
+                // Ensure correct clearLocally of NEAR_PARTITIONED cache.
+                assert !cachesPartitioned[0].isEmpty();
+                cachesPartitioned[0].clearLocally();
+                assert cachesPartitioned[0].isEmpty();
+
+                break;
+            }
+            default: {
+                assert mode == Mode.TEST_COLOCATED || mode == Mode.TEST_REPLICATED;
+
+                GridCache<Integer, Integer>[] caches = mode == Mode.TEST_COLOCATED
? cachesColocated : cachesReplicated;
+
+                fillCache(caches[0], keysCnt);
+
+                for (GridCache<Integer, Integer> cache : caches) {
+                    assert !cache.isEmpty();
+
+                    cache.clearLocally();
+
+                    assert cache.isEmpty();
+                }
+            }
+        }
+    }
+
+    /**
+     * Fill cache with values.
+     *
+     * @param cache Cache.
+     * @param keysCnt Amount of keys to put.
+     * @throws Exception If failed.
+     */
+    private void fillCache(GridCache<Integer, Integer> cache, int keysCnt) throws Exception
{
+        try (IgniteTx tx = cache.txStart()) {
+            for (int i = 0; i < keysCnt; i++)
+                cache.put(i, i);
+
+            tx.commit();
+        }
+    }
+
+    /**
+     * Warm cache up.
+     *
+     * @param cache Cache.
+     * @param keysCnt Amount of keys to get.
+     * @throws Exception If failed.
+     */
+    private void warmCache(GridCache<Integer, Integer> cache, int keysCnt) throws Exception
{
+        for (int i = 0; i < keysCnt; i++)
+            cache.get(i);
+    }
+
+    /**
+     * Test mode.
+     */
+    private enum Mode {
+        /** Local cache. */
+        TEST_LOCAL,
+
+        /** Partitioned cache. */
+        TEST_PARTITIONED,
+
+        /** Co-located cache. */
+        TEST_COLOCATED,
+
+        /** Replicated cache. */
+        TEST_REPLICATED
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/95d2c956/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGlobalClearAllSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGlobalClearAllSelfTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGlobalClearAllSelfTest.java
deleted file mode 100644
index 565400f..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheGlobalClearAllSelfTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * 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.*;
-import org.apache.ignite.cache.*;
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.testframework.junits.common.*;
-
-import static org.apache.ignite.cache.CacheAtomicityMode.*;
-import static org.apache.ignite.cache.CacheDistributionMode.*;
-import static org.apache.ignite.cache.CacheMode.*;
-
-/**
- * Test {@link IgniteCache#clear()} operation in multinode environment with nodes
- * having caches with different names.
- */
-public class GridCacheGlobalClearAllSelfTest extends GridCommonAbstractTest {
-    /** Grid nodes count. */
-    private static final int GRID_CNT = 3;
-
-    /** Amount of keys stored in the default cache. */
-    private static final int KEY_CNT = 20;
-
-    /** Amount of keys stored in cache other than default. */
-    private static final int KEY_CNT_OTHER = 10;
-
-    /** Default cache name. */
-    private static final String CACHE_NAME = "cache_name";
-
-    /** Cache name which differs from the default one. */
-    private static final String CACHE_NAME_OTHER = "cache_name_other";
-
-    /** VM IP finder for TCP discovery SPI. */
-    private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
-
-    /** Cache name which will be passed to grid configuration. */
-    private CacheMode cacheMode = PARTITIONED;
-
-    /** Cache mode which will be passed to grid configuration. */
-    private String cacheName = CACHE_NAME;
-
-    /** {@inheritDoc} */
-    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception
{
-        IgniteConfiguration cfg = super.getConfiguration(gridName);
-
-        CacheConfiguration ccfg = defaultCacheConfiguration();
-
-        ccfg.setName(cacheName);
-        ccfg.setCacheMode(cacheMode);
-        ccfg.setAtomicityMode(TRANSACTIONAL);
-        ccfg.setDistributionMode(NEAR_PARTITIONED);
-
-        if (cacheMode == PARTITIONED)
-            ccfg.setBackups(1);
-
-        cfg.setCacheConfiguration(ccfg);
-
-        TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
-
-        discoSpi.setIpFinder(IP_FINDER);
-
-        cfg.setDiscoverySpi(discoSpi);
-
-        return cfg;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void afterTest() throws Exception {
-        stopAllGrids();
-    }
-
-    /**
-     * Start GRID_CNT nodes. All nodes except the last one will have one cache with particular
name, while the last
-     * one will have one cache of the same type, but with different name.
-     *
-     * @throws Exception In case of exception.
-     */
-    private void startNodes() throws Exception {
-        cacheName = CACHE_NAME;
-
-        for (int i = 0; i < GRID_CNT - 1; i++)
-            startGrid(i);
-
-        cacheName = CACHE_NAME_OTHER;
-
-        startGrid(GRID_CNT - 1);
-    }
-
-    /**
-     * Test for partitioned cache.
-     *
-     * @throws Exception In case of exception.
-     */
-    public void testGlobalClearAllPartitioned() throws Exception {
-        cacheMode = PARTITIONED;
-
-        startNodes();
-
-        performTest();
-    }
-
-    /**
-     * Test for replicated cache.
-     *
-     * @throws Exception In case of exception.
-     */
-    public void testGlobalClearAllReplicated() throws Exception {
-        cacheMode = REPLICATED;
-
-        startNodes();
-
-        performTest();
-    }
-
-    /**
-     * Ensure that clear() clears correct cache and is only executed on nodes with the cache
excluding
-     * master-node where it is executed locally.
-     *
-     * @throws Exception If failed.
-     */
-    public void performTest() throws Exception {
-        // Put values into normal replicated cache.
-        for (int i = 0; i < KEY_CNT; i++)
-            grid(0).jcache(CACHE_NAME).put(i, "val" + i);
-
-        // Put values into a cache with another name.
-        for (int i = 0; i < KEY_CNT_OTHER; i++)
-            grid(GRID_CNT - 1).jcache(CACHE_NAME_OTHER).put(i, "val" + i);
-
-        // Check cache sizes.
-        for (int i = 0; i < GRID_CNT - 1; i++) {
-            IgniteCache<Object, Object> cache = grid(i).jcache(CACHE_NAME);
-
-            assertEquals("Key set [i=" + i + ']', KEY_CNT, cache.localSize());
-        }
-
-        assert grid(GRID_CNT - 1).jcache(CACHE_NAME_OTHER).localSize() == KEY_CNT_OTHER;
-
-        // Perform clear.
-        grid(0).jcache(CACHE_NAME).clear();
-
-        // Expect caches with the given name to be clear on all nodes.
-        for (int i = 0; i < GRID_CNT - 1; i++)
-            assert grid(i).jcache(CACHE_NAME).isEmpty();
-
-        // ... but cache with another name should remain untouched.
-        assert grid(GRID_CNT - 1).jcache(CACHE_NAME_OTHER).localSize() == KEY_CNT_OTHER;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/95d2c956/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
index eb700d4..33b82b4 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
@@ -121,8 +121,8 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest
{
     /**
      * @param cache Cache.
      */
-    protected <K, V> GridCacheAdapter<K, V> internalCache(IgniteCache<K, V>
cache) {
-        return ((IgniteKernal)cache.unwrap(Ignite.class)).internalCache(cache.getName());
+    protected <K, V> GridCache<K, V> internalCache(IgniteCache<K, V> cache)
{
+        return ((IgniteKernal)cache.unwrap(Ignite.class)).cache(cache.getName());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/95d2c956/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
index 4cd6417..28539e7 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
@@ -95,7 +95,6 @@ public class IgniteCacheTestSuite extends TestSuite {
         suite.addTestSuite(GridDataLoaderImplSelfTest.class);
         suite.addTestSuite(GridCacheEntryMemorySizeSelfTest.class);
         suite.addTestSuite(GridCacheClearAllSelfTest.class);
-        suite.addTestSuite(GridCacheGlobalClearAllSelfTest.class);
         suite.addTestSuite(GridCacheObjectToStringSelfTest.class);
         suite.addTestSuite(GridCacheLoadOnlyStoreAdapterSelfTest.class);
         suite.addTestSuite(GridCacheGetStoreErrorSelfTest.class);


Mime
View raw message