Repository: incubator-ignite Updated Branches: refs/heads/ignite-1171 [created] 91115c81d
# ignite-1171 debug Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/91115c81 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/91115c81 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/91115c81 Branch: refs/heads/ignite-1171 Commit: 91115c81df64ec68220d92bb7b0e7ee25c6a7a7d Parents: ae11e9b Author: sboikov <sboi...@gridgain.com> Authored: Tue Aug 11 11:47:09 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Tue Aug 11 11:47:09 2015 +0300 ---------------------------------------------------------------------- .../distributed/GridCacheAffEarlySelfTest.java | 175 +++++++++++++++++++ .../ignite/testsuites/IgniteCacheTestSuite.java | 122 +------------ 2 files changed, 178 insertions(+), 119 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/91115c81/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAffEarlySelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAffEarlySelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAffEarlySelfTest.java new file mode 100644 index 0000000..d915f09 --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheAffEarlySelfTest.java @@ -0,0 +1,175 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.internal.processors.cache.distributed; + +import org.apache.ignite.*; +import org.apache.ignite.cache.*; +import org.apache.ignite.configuration.*; +import org.apache.ignite.internal.*; +import org.apache.ignite.marshaller.optimized.*; +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 java.util.*; +import java.util.concurrent.atomic.*; + +/** + * + */ +public class GridCacheAffEarlySelfTest extends GridCommonAbstractTest { + /** Grid count. */ + private static int GRID_CNT = 8; + + /** Stopped. */ + private volatile boolean stopped; + + /** Iteration. */ + private static final int iters = 10; + + /** Concurrent. */ + private static final boolean concurrent = true; + + /** Futs. */ + private Collection<IgniteInternalFuture<?>> futs = new ArrayList<>(GRID_CNT); + + /** */ + private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true); + + /** {@inheritDoc} */ + @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { + IgniteConfiguration cfg = super.getConfiguration(gridName); + + TcpDiscoverySpi discoSpi = new TcpDiscoverySpi(); + discoSpi.setIpFinder(ipFinder); + + cfg.setDiscoverySpi(discoSpi); + + OptimizedMarshaller marsh = new OptimizedMarshaller(); + marsh.setRequireSerializable(false); + + cfg.setMarshaller(marsh); + + return cfg; + } + + /** {@inheritDoc} */ + @Override protected long getTestTimeout() { + return 6 * 60 * 1000L; + } + + /** + * + */ + public void testStartNodes() throws Exception { + for (int i = 0; i < iters; i++) { + try { + System.out.println("*** Iteration " + (i + 1) + '/' + iters); + + IgniteInternalFuture<?> fut = multithreadedAsync(new Runnable() { + @Override public void run() { + try { + doTest(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + }, 1); + + fut.get(30000); + } + catch (IgniteFutureTimeoutCheckedException e) { + // No-op. + } + finally { + stopAllGrids(true); + } + } + } + + /** + * + */ + public void doTest() throws Exception { + final AtomicBoolean failed = new AtomicBoolean(); + + for (int i = 0; i < GRID_CNT; i++) { + final int idx = i; + + final Ignite grid = concurrent ? null : startGrid(idx); + + IgniteInternalFuture<?> fut = multithreadedAsync(new Runnable() { + @Override + public void run() { + Random rnd = new Random(); + + try { + Ignite ignite = grid == null ? startGrid(idx) : grid; + + IgniteCache cache = getCache(ignite); + + cache.put(ignite.cluster().localNode().id(), UUID.randomUUID()); + + while (!stopped) { + int val = Math.abs(rnd.nextInt(100)); + if (val >= 0 && val < 40) + cache.containsKey(ignite.cluster().localNode().id()); + else if (val >= 40 && val < 80) + cache.get(ignite.cluster().localNode().id()); + else + cache.put(ignite.cluster().localNode().id(), UUID.randomUUID()); + + Thread.sleep(50); + } + } catch (Exception e) { + e.printStackTrace(); + + failed.set(true); + } + } + }, 1); + + futs.add(fut); + } + + Thread.sleep(10000); + + stopped = true; + + for (IgniteInternalFuture<?> fut : futs) + fut.get(); + + assertFalse(failed.get()); + } + + /** + * @param grid Grid. + */ + private IgniteCache getCache(Ignite grid) { + CacheConfiguration ccfg = defaultCacheConfiguration(); + + ccfg.setCacheMode(CacheMode.PARTITIONED); + ccfg.setAtomicityMode(CacheAtomicityMode.ATOMIC); + ccfg.setBackups(1); + ccfg.setNearConfiguration(null); + + return grid.getOrCreateCache(ccfg); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/91115c81/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 bafdfef..5eba9c8 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 @@ -56,125 +56,9 @@ public class IgniteCacheTestSuite extends TestSuite { public static TestSuite suite(Set<Class> ignoredTests) throws Exception { TestSuite suite = new TestSuite("IgniteCache Test Suite"); - suite.addTestSuite(IgniteCacheEntryListenerAtomicTest.class); - suite.addTestSuite(IgniteCacheEntryListenerAtomicReplicatedTest.class); - suite.addTestSuite(IgniteCacheEntryListenerAtomicLocalTest.class); - suite.addTestSuite(IgniteCacheEntryListenerTxTest.class); - suite.addTestSuite(IgniteCacheEntryListenerTxReplicatedTest.class); - suite.addTestSuite(IgniteCacheEntryListenerTxLocalTest.class); - suite.addTestSuite(IgniteCacheEntryListenerEagerTtlDisabledTest.class); - - suite.addTestSuite(IgniteClientAffinityAssignmentSelfTest.class); - - suite.addTestSuite(IgniteCacheAtomicInvokeTest.class); - suite.addTestSuite(IgniteCacheAtomicNearEnabledInvokeTest.class); - suite.addTestSuite(IgniteCacheAtomicPrimaryWriteOrderInvokeTest.class); - suite.addTestSuite(IgniteCacheAtomicPrimaryWriteOrderWithStoreInvokeTest.class); - suite.addTestSuite(IgniteCacheAtomicLocalInvokeTest.class); - suite.addTestSuite(IgniteCacheAtomicLocalWithStoreInvokeTest.class); - suite.addTestSuite(IgniteCacheTxInvokeTest.class); - suite.addTestSuite(IgniteCacheTxNearEnabledInvokeTest.class); - suite.addTestSuite(IgniteCacheTxLocalInvokeTest.class); - suite.addTestSuite(IgniteCrossCacheTxStoreSelfTest.class); - - suite.addTestSuite(IgnitePutAllLargeBatchSelfTest.class); - suite.addTestSuite(IgnitePutAllUpdateNonPreloadedPartitionSelfTest.class); - - // User's class loader tests. - suite.addTestSuite(IgniteCacheAtomicExecutionContextTest.class); - suite.addTestSuite(IgniteCachePartitionedExecutionContextTest.class); - suite.addTestSuite(IgniteCacheReplicatedExecutionContextTest.class); - suite.addTestSuite(IgniteCacheTxExecutionContextTest.class); - suite.addTestSuite(IgniteCacheContinuousExecutionContextTest.class); - suite.addTestSuite(IgniteCacheIsolatedExecutionContextTest.class); - suite.addTestSuite(IgniteCacheP2PDisableExecutionContextTest.class); - suite.addTestSuite(IgniteCachePrivateExecutionContextTest.class); - suite.addTestSuite(IgniteCacheSharedExecutionContextTest.class); - - // Warmup closure tests. - suite.addTestSuite(IgniteWarmupClosureSelfTest.class); - - // Affinity tests. - suite.addTestSuite(GridFairAffinityFunctionNodesSelfTest.class); - suite.addTestSuite(GridFairAffinityFunctionSelfTest.class); - suite.addTestSuite(IgniteFairAffinityDynamicCacheSelfTest.class); - suite.addTestSuite(GridCacheAffinityBackupsSelfTest.class); - suite.addTestSuite(IgniteCacheAffinitySelfTest.class); - suite.addTestSuite(IgniteClientNodeAffinityTest.class); - - // Swap tests. - suite.addTestSuite(GridCacheSwapPreloadSelfTest.class); - suite.addTestSuite(GridCacheSwapReloadSelfTest.class); - - // Common tests. - suite.addTestSuite(GridCacheConcurrentMapSelfTest.class); - suite.addTestSuite(GridCacheAffinityMapperSelfTest.class); - suite.addTestSuite(CacheAffinityCallSelfTest.class); - GridTestUtils.addTestIfNeeded(suite, GridCacheAffinityRoutingSelfTest.class, ignoredTests); - GridTestUtils.addTestIfNeeded(suite, GridCacheMvccSelfTest.class, ignoredTests); - suite.addTestSuite(GridCacheMvccPartitionedSelfTest.class); - suite.addTestSuite(GridCacheMvccManagerSelfTest.class); - suite.addTestSuite(GridCacheP2PUndeploySelfTest.class); - suite.addTestSuite(GridCacheConfigurationValidationSelfTest.class); - suite.addTestSuite(GridCacheConfigurationConsistencySelfTest.class); - suite.addTestSuite(GridCacheJdbcBlobStoreSelfTest.class); - suite.addTestSuite(GridCacheJdbcBlobStoreMultithreadedSelfTest.class); - suite.addTestSuite(CacheJdbcPojoStoreTest.class); - suite.addTestSuite(CacheJdbcPojoStoreMultitreadedSelfTest.class); - suite.addTestSuite(GridCacheBalancingStoreSelfTest.class); - suite.addTestSuite(GridCacheAffinityApiSelfTest.class); - suite.addTestSuite(GridCacheStoreValueBytesSelfTest.class); - GridTestUtils.addTestIfNeeded(suite, DataStreamProcessorSelfTest.class, ignoredTests); - suite.addTestSuite(DataStreamerMultiThreadedSelfTest.class); - suite.addTestSuite(DataStreamerMultinodeCreateCacheTest.class); - suite.addTestSuite(DataStreamerImplSelfTest.class); - GridTestUtils.addTestIfNeeded(suite, GridCacheEntryMemorySizeSelfTest.class, ignoredTests); - suite.addTestSuite(GridCacheClearAllSelfTest.class); - suite.addTestSuite(GridCacheObjectToStringSelfTest.class); - suite.addTestSuite(GridCacheLoadOnlyStoreAdapterSelfTest.class); - suite.addTestSuite(GridCacheGetStoreErrorSelfTest.class); - suite.addTestSuite(CacheFutureExceptionSelfTest.class); - suite.addTestSuite(GridCacheAsyncOperationsLimitSelfTest.class); - suite.addTestSuite(GridCacheTtlManagerSelfTest.class); - suite.addTestSuite(GridCacheLifecycleAwareSelfTest.class); - suite.addTestSuite(IgniteCacheAtomicStopBusySelfTest.class); - suite.addTestSuite(IgniteCacheTransactionalStopBusySelfTest.class); - suite.addTestSuite(GridCacheAtomicNearCacheSelfTest.class); - suite.addTestSuite(CacheAtomicNearUpdateTopologyChangeTest.class); - suite.addTestSuite(CacheTxNearUpdateTopologyChangeTest.class); - suite.addTestSuite(GridCacheStorePutxSelfTest.class); - suite.addTestSuite(GridCacheOffHeapMultiThreadedUpdateSelfTest.class); - suite.addTestSuite(GridCacheOffHeapAtomicMultiThreadedUpdateSelfTest.class); - suite.addTestSuite(GridCacheColocatedTxStoreExceptionSelfTest.class); - suite.addTestSuite(GridCacheReplicatedTxStoreExceptionSelfTest.class); - suite.addTestSuite(GridCacheLocalTxStoreExceptionSelfTest.class); - suite.addTestSuite(GridCacheNearTxStoreExceptionSelfTest.class); - suite.addTestSuite(GridCacheMissingCommitVersionSelfTest.class); - suite.addTestSuite(GridCacheEntrySetIterationPreloadingSelfTest.class); - suite.addTestSuite(GridCacheMixedPartitionExchangeSelfTest.class); - suite.addTestSuite(IgniteCacheAtomicMessageRecoveryTest.class); - suite.addTestSuite(IgniteCacheTxMessageRecoveryTest.class); - GridTestUtils.addTestIfNeeded(suite, GridCacheOffHeapTieredEvictionAtomicSelfTest.class, ignoredTests); - GridTestUtils.addTestIfNeeded(suite, GridCacheOffHeapTieredEvictionSelfTest.class, ignoredTests); - GridTestUtils.addTestIfNeeded(suite, GridCacheOffHeapTieredAtomicSelfTest.class, ignoredTests); - GridTestUtils.addTestIfNeeded(suite, GridCacheOffHeapTieredSelfTest.class, ignoredTests); - suite.addTestSuite(GridCacheGlobalLoadTest.class); - suite.addTestSuite(GridCachePartitionedLocalStoreSelfTest.class); - suite.addTestSuite(GridCacheReplicatedLocalStoreSelfTest.class); - suite.addTestSuite(GridCachePartitionedOffHeapLocalStoreSelfTest.class); - suite.addTestSuite(GridCacheTxPartitionedLocalStoreSelfTest.class); - suite.addTestSuite(IgniteCacheSystemTransactionsSelfTest.class); - - suite.addTest(IgniteCacheTcpClientDiscoveryTestSuite.suite()); - - // Heuristic exception handling. - suite.addTestSuite(GridCacheColocatedTxExceptionSelfTest.class); - suite.addTestSuite(GridCacheReplicatedTxExceptionSelfTest.class); - suite.addTestSuite(GridCacheLocalTxExceptionSelfTest.class); - suite.addTestSuite(GridCacheNearTxExceptionSelfTest.class); - suite.addTestSuite(GridCacheStopSelfTest.class); - - suite.addTestSuite(IgniteCacheNearLockValueSelfTest.class); + suite.addTestSuite(GridCacheAffEarlySelfTest.class); + suite.addTestSuite(GridCacheAffEarlySelfTest.class); + suite.addTestSuite(GridCacheAffEarlySelfTest.class); return suite; }