/** * Test hook */ public int getExceptionCount(T mbr) { if (mbr.equals(this.myId)) { return localExceptions.getExceptionCount(); } RegionVersionHolder<T> h = this.memberToVersion.get(mbr); if (h == null) { throw new IllegalStateException("there should be a holder for " + mbr); } return h.getExceptionCount(); }
private void createHolderTest(boolean useBitSet) { RegionVersionHolder h = createHolder(useBitSet); assertEquals(0, h.getExceptionCount()); }
@Test public void testFillSpecialExceptionWithBitSet() { RegionVersionHolder h = createHolder(true); h.recordVersion(1l); createSpecialException(h); assertEquals(1, h.getExceptionCount()); RVVException e = (RVVException) h.getExceptionForTest().iterator().next(); assertTrue(h.isSpecialException(e, h)); h.recordVersion(2l); // BUG: the exception is not removed // assertIndexDetailsEquals("unexpected RVV exception : " + h, 0, h.getExceptionCount()); }
private void recordZeroDoesNothing(boolean useBitSet) { RegionVersionHolder h = createHolder(useBitSet); h.recordVersion(0l); assertEquals(0, h.getExceptionCount()); assertEquals(0l, h.getVersion()); }
private void skippedVersionCreatesException(boolean useBitSet) { RegionVersionHolder h = createHolder(useBitSet); h.recordVersion(2l); assertEquals(1, h.getExceptionCount()); assertEquals(2l, h.getVersion()); }
private void fillLargeException(boolean useBitSet) { RegionVersionHolder h = createHolder(useBitSet); long bigVersion = RegionVersionHolder.BIT_SET_WIDTH + 1; h.recordVersion(bigVersion); for (long i = 0l; i < bigVersion; i++) { h.recordVersion(i); } assertEquals("expected no exceptions in " + h, 0, h.getExceptionCount()); assertEquals(bigVersion, h.getVersion()); }
private void recordSequentialVersions(boolean useBitSet) { RegionVersionHolder h = createHolder(useBitSet); h.recordVersion(1l); h.recordVersion(2l); h.recordVersion(3l); assertEquals(0, h.getExceptionCount()); assertEquals(3l, h.getVersion()); }
private void fillException(boolean useBitSet) { RegionVersionHolder h = createHolder(useBitSet); h.recordVersion(3l); h.recordVersion(1l); h.recordVersion(2l); h.recordVersion(2l); assertEquals(0, h.getExceptionCount()); assertEquals(3l, h.getVersion()); }
@Test public void testReceiveDuplicateAfterBitSetFlushWithBitSet() { RegionVersionHolder h = createHolder(true); long bigVersion = RegionVersionHolder.BIT_SET_WIDTH + 1; h.recordVersion(bigVersion); for (long i = 0l; i < bigVersion; i++) { h.recordVersion(i); } h.recordVersion(bigVersion); assertEquals("expected no exceptions in " + h, 0, h.getExceptionCount()); assertEquals(bigVersion, h.getVersion()); }