@Test public void test48066_1() { DiskStoreID id0 = new DiskStoreID(0, 0); DiskRegionVersionVector rvv0 = new DiskRegionVersionVector(id0); for (int i = 1; i <= 3; i++) { rvv0.recordVersion(id0, i); } System.out.println("rvv0=" + rvv0.fullToString()); DiskRegionVersionVector rvv1 = (DiskRegionVersionVector) rvv0.getCloneForTransmission(); System.out.println("after clone, rvv1=" + rvv1.fullToString()); DiskRegionVersionVector rvv2 = new DiskRegionVersionVector(id0); for (int i = 1; i <= 10; i++) { rvv2.recordVersion(id0, i); } rvv2.recordVersions(rvv1); System.out.println("after init, rvv2=" + rvv2.fullToString()); rvv2.recordVersion(id0, 4); System.out.println("after record 4, rvv2=" + rvv2.fullToString()); assertEquals(4, rvv2.getCurrentVersion()); rvv2.recordVersion(id0, 7); System.out.println("after record 7, rvv2=" + rvv2.fullToString()); assertEquals(7, rvv2.getCurrentVersion()); }
@Test public void testRVVSerialization() throws Exception { DiskStoreID ownerId = new DiskStoreID(0, 0); DiskStoreID id1 = new DiskStoreID(0, 1); DiskStoreID id2 = new DiskStoreID(1, 0); DiskRegionVersionVector rvv = new DiskRegionVersionVector(ownerId); rvv.recordVersion(id1, 5); rvv.recordVersion(id1, 6); rvv.recordVersion(id1, 7); rvv.recordVersion(id1, 9); rvv.recordVersion(id1, 20); rvv.recordVersion(id1, 11); rvv.recordVersion(id1, 12); rvv.recordGCVersion(id2, 5); rvv.recordGCVersion(id1, 3); assertTrue(rvv.sameAs(rvv.getCloneForTransmission())); HeapDataOutputStream out = new HeapDataOutputStream(Version.CURRENT); DataSerializer.writeObject(rvv.getCloneForTransmission(), out); byte[] bytes = out.toByteArray(); DataInputStream dis = new DataInputStream(new ByteArrayInputStream(bytes)); DiskRegionVersionVector rvv2 = DataSerializer.readObject(dis); assertTrue(rvv.sameAs(rvv2)); }
@Test public void test48066_2() { DiskStoreID id0 = new DiskStoreID(0, 0); DiskRegionVersionVector rvv0 = new DiskRegionVersionVector(id0); for (int i = 1; i <= 10; i++) { rvv0.recordVersion(id0, i); } DiskRegionVersionVector rvv1 = new DiskRegionVersionVector(id0); rvv0.recordVersions(rvv1); System.out.println("rvv0=" + rvv0.fullToString()); rvv0.recordVersion(id0, 4); System.out.println("after record 4, rvv0=" + rvv0.fullToString()); assertEquals(4, rvv0.getCurrentVersion()); rvv0.recordVersion(id0, 7); System.out.println("after record 7, rvv0=" + rvv0.fullToString()); assertEquals(7, rvv0.getCurrentVersion()); assertFalse(rvv0.contains(id0, 5)); DiskRegionVersionVector rvv2 = (DiskRegionVersionVector) rvv0.getCloneForTransmission(); System.out.println("after clone, rvv2=" + rvv2.fullToString()); assertEquals(11, rvv0.getNextVersion()); assertFalse(rvv2.contains(id0, 5)); assertEquals(11, rvv2.getNextVersion()); }