IGNITE-1678 test refactoring
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/589297a4 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/589297a4 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/589297a4 Branch: refs/heads/ignite-1678 Commit: 589297a406421a72254f949a1b0cb19cf14b9a26 Parents: 0415064 Author: Dmitriy Govorukhin <dmitriy.govoruk...@gmail.com> Authored: Tue Aug 28 12:42:21 2018 +0300 Committer: Dmitriy Govorukhin <dmitriy.govoruk...@gmail.com> Committed: Tue Aug 28 12:42:21 2018 +0300 ---------------------------------------------------------------------- ...AtomicSequenceMultiThreadedAbstractTest.java | 105 ++++++++++--------- 1 file changed, 58 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/589297a4/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java index 10b57e8..b105aac 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheAtomicSequenceMultiThreadedAbstractTest.java @@ -28,6 +28,8 @@ import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.testframework.GridTestUtils; +import static org.apache.ignite.testframework.GridTestUtils.waitForCondition; + /** * Cache partitioned multi-threaded tests. */ @@ -53,11 +55,13 @@ public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends I return cfg; } - /** @throws Exception If failed. */ + /** + * @throws Exception If failed. + */ public void testValues() throws Exception { String seqName = UUID.randomUUID().toString(); - final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true); + IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, 0, true); // Local reservations. assertEquals(1, seq.incrementAndGet()); @@ -69,119 +73,117 @@ public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends I assertEquals(9, seq.addAndGet(2)); assertEquals(new Long(9L), U.field(seq, "locVal")); - assertEquals(new Long(10L), U.field(seq, "upBound")); + assertEquals(new Long(9L), U.field(seq, "upBound")); // Cache calls. assertEquals(10, seq.incrementAndGet()); assertEquals(new Long(10L), U.field(seq, "locVal")); - assertEquals(new Long(20L), U.field(seq, "upBound")); + assertEquals(new Long(19L), U.field(seq, "upBound")); seq.addAndGet(9); assertEquals(new Long(19L), U.field(seq, "locVal")); - assertEquals(new Long(20L), U.field(seq, "upBound")); + assertEquals(new Long(19L), U.field(seq, "upBound")); assertEquals(20L, seq.incrementAndGet()); assertEquals(new Long(20L), U.field(seq, "locVal")); - assertEquals(new Long(30L), U.field(seq, "upBound")); + assertEquals(new Long(29L), U.field(seq, "upBound")); seq.addAndGet(9); assertEquals(new Long(29L), U.field(seq, "locVal")); - assertEquals(new Long(30L), U.field(seq, "upBound")); + assertEquals(new Long(29L), U.field(seq, "upBound")); assertEquals(29, seq.getAndIncrement()); assertEquals(new Long(30L), U.field(seq, "locVal")); - assertEquals(new Long(40L), U.field(seq, "upBound")); + assertEquals(new Long(39L), U.field(seq, "upBound")); seq.addAndGet(9); assertEquals(new Long(39L), U.field(seq, "locVal")); - assertEquals(new Long(40L), U.field(seq, "upBound")); + assertEquals(new Long(39L), U.field(seq, "upBound")); assertEquals(39L, seq.getAndIncrement()); assertEquals(new Long(40L), U.field(seq, "locVal")); - assertEquals(new Long(50L), U.field(seq, "upBound")); + assertEquals(new Long(49L), U.field(seq, "upBound")); seq.addAndGet(9); assertEquals(new Long(49L), U.field(seq, "locVal")); - assertEquals(new Long(50L), U.field(seq, "upBound")); + assertEquals(new Long(49L), U.field(seq, "upBound")); assertEquals(50, seq.addAndGet(1)); assertEquals(new Long(50L), U.field(seq, "locVal")); - assertEquals(new Long(60L), U.field(seq, "upBound")); + assertEquals(new Long(59L), U.field(seq, "upBound")); seq.addAndGet(9); assertEquals(new Long(59L), U.field(seq, "locVal")); - assertEquals(new Long(60L), U.field(seq, "upBound")); + assertEquals(new Long(59L), U.field(seq, "upBound")); assertEquals(59, seq.getAndAdd(1)); assertEquals(new Long(60L), U.field(seq, "locVal")); - assertEquals(new Long(70L), U.field(seq, "upBound")); + assertEquals(new Long(69L), U.field(seq, "upBound")); } - /** @throws Exception If failed. */ + /** + * @throws Exception If failed. + */ public void testValues2() throws Exception { + AtomicConfiguration acfg = atomicConfiguration(); + + acfg.setAtomicSequenceReservePercentage(80); + String seqName = UUID.randomUUID().toString(); - final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 10, true); + IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, acfg, 10, true); - assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0); + assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 19, /*resBound*/ 17, /*resBottomBound*/ 10, /*resUpBound*/ 19); - assertEquals(17, seq.addAndGet(7)); + assertEquals(16, seq.addAndGet(6)); - assertSeqFields(seq, /*locVal*/ 17, /*upBound*/ 20, /*resBound*/ 18, /*resBottomBound*/ 0, /*resUpBound*/ 0); + assertSeqFields(seq, /*locVal*/ 16, /*upBound*/ 19, /*resBound*/ 17, /*resBottomBound*/ 10, /*resUpBound*/ 19); - assertEquals(18, seq.incrementAndGet()); + assertEquals(17, seq.incrementAndGet()); - GridTestUtils.waitForCondition(new GridAbsPredicate() { - @Override public boolean apply() { - return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true); - } - }, 1000); + assertEquals(18, seq.incrementAndGet()); - assertSeqFields(seq, /*locVal*/ 18, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30); + assertSeqFields(seq, /*locVal*/ 18, /*upBound*/ 19, /*resBound*/ 17, /*resBottomBound*/ 10, /*resUpBound*/ 19); assertEquals(19, seq.incrementAndGet()); - assertSeqFields(seq, /*locVal*/ 19, /*upBound*/ 20, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30); + assertSeqFields(seq, /*locVal*/ 19, /*upBound*/ 19, /*resBound*/ 17, /*resBottomBound*/ 10, /*resUpBound*/ 19); assertEquals(20, seq.incrementAndGet()); - assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 30, /*resBound*/ 28, /*resBottomBound*/ 20, /*resUpBound*/ 30); + assertSeqFields(seq, /*locVal*/ 20, /*upBound*/ 29, /*resBound*/ 27, /*resBottomBound*/ 20, /*resUpBound*/ 29); } /** @throws Exception If failed. */ public void testValuesPercentage50() throws Exception { - String seqName = UUID.randomUUID().toString(); + AtomicConfiguration acfg = atomicConfiguration(); - final GridCacheAtomicSequenceImpl seq = (GridCacheAtomicSequenceImpl)grid(0).atomicSequence(seqName, 0, true); + acfg.setAtomicSequenceReservePercentage(50); + + String seqName = UUID.randomUUID().toString(); - seq.reservePercentage(50); + IgniteAtomicSequence seq = grid(0).atomicSequence(seqName, acfg, 0, true); - assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 10, /*resBound*/ 8, /*resBottomBound*/ 0, /*resUpBound*/ 0); + assertSeqFields(seq, /*locVal*/ 0, /*upBound*/ 9, /*resBound*/ 4, /*resBottomBound*/ 0, /*resUpBound*/ 9); // Exhaust a first reserved range to get recalculated values according to new reserve percentage. assertEquals(10, seq.addAndGet(10)); - assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 20, /*resBound*/ 15, /*resBottomBound*/ 10, /*resUpBound*/ 20); + assertSeqFields(seq, /*locVal*/ 10, /*upBound*/ 19, /*resBound*/ 14, /*resBottomBound*/ 10, /*resUpBound*/ 19); assertEquals(15, seq.addAndGet(5)); - GridTestUtils.waitForCondition(new GridAbsPredicate() { - @Override public boolean apply() { - return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true); - } - }, 1000); - assertSeqFields(seq, /*locVal*/ 15, /*upBound*/ 20, /*resBound*/ 25, /*resBottomBound*/ 20, /*resUpBound*/ 30); } @@ -202,7 +204,7 @@ public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends I assertEquals(11, seq.addAndGet(1)); - GridTestUtils.waitForCondition(new GridAbsPredicate() { + waitForCondition(new GridAbsPredicate() { @Override public boolean apply() { return !F.eq(U.field(seq, "isReserveFutResultsProcessed"), true); } @@ -282,7 +284,7 @@ public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends I // New reservation (reverse order) assertEquals(18, seq2.incrementAndGet()); - assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() { + assertTrue(waitForCondition(new GridAbsPredicate() { @Override public boolean apply() { return !F.eq(U.field(seq2, "isReserveFutResultsProcessed"), true); } @@ -290,7 +292,7 @@ public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends I assertEquals(8, seq1.incrementAndGet()); - assertTrue(GridTestUtils.waitForCondition(new GridAbsPredicate() { + assertTrue(waitForCondition(new GridAbsPredicate() { @Override public boolean apply() { return !F.eq(U.field(seq1, "isReserveFutResultsProcessed"), true); } @@ -318,13 +320,22 @@ public abstract class GridCacheAtomicSequenceMultiThreadedAbstractTest extends I * @param reservedBottomBound Reservation bottom bound. * @param reservedUpBound Reservation up bound. */ - private void assertSeqFields(GridCacheAtomicSequenceImpl seq, long locVal, long upBound, long newReservationLine, - long reservedBottomBound, long reservedUpBound) { + private void assertSeqFields( + IgniteAtomicSequence seq, + long locVal, + long upBound, + long newReservationLine, + long reservedBottomBound, + long reservedUpBound + ) { assertEquals(new Long(locVal), U.field(seq, "locVal")); assertEquals(new Long(upBound), U.field(seq, "upBound")); - assertEquals(new Long(newReservationLine), U.field(seq, "newReservationLine")); - assertEquals(new Long(reservedBottomBound), U.field(seq, "reservedBottomBound")); - assertEquals(new Long(reservedUpBound), U.field(seq, "reservedUpBound")); + + Object bounds = U.field(U.<Object>field(seq, "reservationCtx"), "bounds"); + + assertEquals(new Long(newReservationLine), U.field(bounds, "newReservationLine")); + assertEquals(new Long(reservedBottomBound), U.field(bounds, "reservedBottomBound")); + assertEquals(new Long(reservedUpBound), U.field(bounds, "reservedUpBound")); } /** @throws Exception If failed. */