@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 that we can copy the member to version map correctly. */ @Test public void testCopyMemberToVersion() { DiskStoreID id0 = new DiskStoreID(0, 0); DiskStoreID id1 = new DiskStoreID(0, 1); DiskStoreID id2 = new DiskStoreID(1, 0); DiskRegionVersionVector rvv0 = new DiskRegionVersionVector(id0); rvv0.getNextVersion(); rvv0.getNextVersion(); rvv0.getNextVersion(); rvv0.recordVersion(id1, 1); rvv0.recordVersion(id1, 3); DiskRegionVersionVector rvv1 = new DiskRegionVersionVector(id1); rvv1.recordVersions(rvv0); assertEquals(3, rvv1.getCurrentVersion()); assertFalse(rvv1.contains(id1, 2)); assertTrue(rvv1.contains(id1, 1)); assertTrue(rvv1.contains(id1, 3)); assertTrue(rvv1.contains(id0, 3)); assertTrue(rvv0.sameAs(rvv1)); rvv1.recordVersion(id1, 2); assertTrue(rvv1.isNewerThanOrCanFillExceptionsFor(rvv0)); assertFalse(rvv0.isNewerThanOrCanFillExceptionsFor(rvv1)); assertTrue(rvv1.dominates(rvv0)); assertFalse(rvv0.dominates(rvv1)); }