You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by gv...@apache.org on 2019/02/07 11:55:04 UTC
[ignite] branch master updated: IGNITE-10444: MVCC:
CacheMvccTxFastFinishTest fixed. This closes #6026.
This is an automated email from the ASF dual-hosted git repository.
gvvinblade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new ba48c3f IGNITE-10444: MVCC: CacheMvccTxFastFinishTest fixed. This closes #6026.
ba48c3f is described below
commit ba48c3f1523db543447203c3e0f884e707ba66f7
Author: ipavlukhin <vo...@gmail.com>
AuthorDate: Thu Feb 7 14:54:53 2019 +0300
IGNITE-10444: MVCC: CacheMvccTxFastFinishTest fixed. This closes #6026.
Signed-off-by: Andrey V. Mashenkov <an...@gmail.com>
---
.../cache/CacheMvccTxFastFinishTest.java | 18 ++++++++--
.../processors/cache/CacheTxFastFinishTest.java | 40 ++++++++++++++++------
2 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMvccTxFastFinishTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMvccTxFastFinishTest.java
index 52ea882..e70b6d4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMvccTxFastFinishTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheMvccTxFastFinishTest.java
@@ -20,6 +20,8 @@ package org.apache.ignite.internal.processors.cache;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteTransactions;
+import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
+import org.apache.ignite.testframework.MvccFeatureChecker;
import org.apache.ignite.transactions.Transaction;
import org.junit.Ignore;
@@ -31,6 +33,8 @@ import static org.apache.ignite.transactions.TransactionIsolation.REPEATABLE_REA
public class CacheMvccTxFastFinishTest extends CacheTxFastFinishTest {
/** {@inheritDoc} */
@Override protected void fastFinishTx(Ignite ignite) {
+ assert MvccFeatureChecker.forcedMvcc();
+
IgniteTransactions txs = ignite.transactions();
IgniteCache<Integer, Integer> cache = ignite.cache(DEFAULT_CACHE_NAME);
@@ -44,7 +48,7 @@ public class CacheMvccTxFastFinishTest extends CacheTxFastFinishTest {
try (Transaction tx = txs.txStart(PESSIMISTIC, REPEATABLE_READ)) {
cache.get(i);
- checkNormalTxFinish(tx, commit);
+ checkNormalTxFinish(tx, commit, true);
}
}
@@ -52,9 +56,19 @@ public class CacheMvccTxFastFinishTest extends CacheTxFastFinishTest {
try (Transaction tx = txs.txStart(PESSIMISTIC, REPEATABLE_READ)) {
cache.put(i, i);
- checkNormalTxFinish(tx, commit);
+ checkNormalTxFinish(tx, commit, false);
}
}
}
}
+
+ /** {@inheritDoc} */
+ @Override protected void checkNormalCommittedTx(IgniteInternalTx tx, boolean readOnly) {
+ if (readOnly)
+ assertNull(prepareFuture(tx));
+ else
+ assertNotNull(prepareFuture(tx));
+
+ assertNotNull(finishFuture(tx));
+ }
}
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java
index 94d272d..85e0991 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheTxFastFinishTest.java
@@ -28,6 +28,7 @@ import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFa
import org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
import org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl;
import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.MvccFeatureChecker;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.apache.ignite.transactions.Transaction;
import org.apache.ignite.transactions.TransactionConcurrency;
@@ -37,6 +38,7 @@ import org.junit.Test;
import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
+import static org.apache.ignite.testframework.MvccFeatureChecker.Feature.NEAR_CACHE;
import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
import static org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
import static org.apache.ignite.transactions.TransactionIsolation.READ_COMMITTED;
@@ -86,6 +88,8 @@ public class CacheTxFastFinishTest extends GridCommonAbstractTest {
*/
@Test
public void testFastFinishTxNearCache() throws Exception {
+ MvccFeatureChecker.skipIfNotSupported(NEAR_CACHE);
+
nearCache = true;
fastFinishTx();
@@ -169,13 +173,13 @@ public class CacheTxFastFinishTest extends GridCommonAbstractTest {
try (Transaction tx = txs.txStart(OPTIMISTIC, SERIALIZABLE)) {
cache.get(i);
- checkNormalTxFinish(tx, commit);
+ checkNormalTxFinish(tx, commit, true);
}
try (Transaction tx = txs.txStart(PESSIMISTIC, REPEATABLE_READ)) {
cache.get(i);
- checkNormalTxFinish(tx, commit);
+ checkNormalTxFinish(tx, commit, true);
}
}
@@ -185,7 +189,7 @@ public class CacheTxFastFinishTest extends GridCommonAbstractTest {
try (Transaction tx = txs.txStart(c, isolation)) {
cache.put(i, i);
- checkNormalTxFinish(tx, commit);
+ checkNormalTxFinish(tx, commit, false);
}
}
}
@@ -205,31 +209,47 @@ public class CacheTxFastFinishTest extends GridCommonAbstractTest {
IgniteInternalTx tx0 = ((TransactionProxyImpl)tx).tx();
- assertNull(fieldValue(tx0, "prepFut"));
- assertTrue(fieldValue(tx0, "finishFut") instanceof GridNearTxFastFinishFuture);
+ assertNull(prepareFuture(tx0));
+ assertTrue(finishFuture(tx0) instanceof GridNearTxFastFinishFuture);
}
/**
* @param tx Transaction.
* @param commit Commit flag.
+ * @param readOnly {@code true} if checked tx did no writes.
*/
- protected void checkNormalTxFinish(Transaction tx, boolean commit) {
+ protected void checkNormalTxFinish(Transaction tx, boolean commit, boolean readOnly) {
IgniteInternalTx tx0 = ((TransactionProxyImpl)tx).tx();
if (commit) {
tx.commit();
- assertNotNull(fieldValue(tx0, "prepFut"));
- assertNotNull(fieldValue(tx0, "finishFut"));
+ checkNormalCommittedTx(tx0, readOnly);
}
else {
tx.rollback();
- assertNull(fieldValue(tx0, "prepFut"));
- assertNotNull(fieldValue(tx0, "finishFut"));
+ assertNull(prepareFuture(tx0));
+ assertNotNull(finishFuture(tx0));
}
}
+ /** */
+ protected void checkNormalCommittedTx(IgniteInternalTx tx, boolean readOnly) {
+ assertNotNull(prepareFuture(tx));
+ assertNotNull(finishFuture(tx));
+ }
+
+ /** */
+ protected Object prepareFuture(IgniteInternalTx tx) {
+ return fieldValue(tx, "prepFut");
+ }
+
+ /** */
+ protected Object finishFuture(IgniteInternalTx tx) {
+ return fieldValue(tx, "finishFut");
+ }
+
/**
* @param obj Obejct.
* @param fieldName Field name.