package org.jgroups.tests; import org.jgroups.*; import org.jgroups.blocks.RequestCorrelator; import org.jgroups.protocols.*; import org.jgroups.protocols.pbcast.*; import org.jgroups.protocols.relay.RELAY2; import org.jgroups.protocols.relay.SiteMaster; import org.jgroups.protocols.relay.SiteUUID; import org.jgroups.stack.GossipData; import org.jgroups.stack.IpAddress; import org.jgroups.util.*; import org.jgroups.util.UUID; import org.testng.Assert; import org.testng.annotations.Test; import java.io.*; import java.util.*; /** * Tests whether method size() of a header and its serialized size correspond * @author Bela Ban */ @Test(groups=Global.FUNCTIONAL) public class SizeTest { public static void testTpHeader() throws Exception { _testSize(new TpHeader("DemoChannel")); } public static void testPingHeader() throws Exception { _testSize(new PingHeader(PingHeader.GET_MBRS_REQ, "bla")); _testSize(new PingHeader(PingHeader.GET_MBRS_RSP, new PingData())); _testSize(new PingHeader(PingHeader.GET_MBRS_RSP, (PingData)null)); _testSize(new PingHeader(PingHeader.GET_MBRS_RSP, (String)null)); _testSize(new PingHeader(PingHeader.GET_MBRS_RSP, new PingData(Util.createRandomAddress(), null, true))); Address self=Util.createRandomAddress(); PingData rsp=new PingData(self, Util.createView(self, 1, self), true); _testSize(new PingHeader(PingHeader.GET_MBRS_RSP, rsp)); rsp=new PingData(self, Util.createView(self, 1, self, Util.createRandomAddress(), Util.createRandomAddress()), true); _testSize(new PingHeader(PingHeader.GET_MBRS_RSP, rsp)); } public static void testPingData() throws Exception { PingData data; final Address own=org.jgroups.util.UUID.randomUUID(); final Address coord=org.jgroups.util.UUID.randomUUID(); final PhysicalAddress physical_addr_1=new IpAddress("127.0.0.1", 7500); final PhysicalAddress physical_addr_2=new IpAddress("192.168.1.5", 6000); final PhysicalAddress physical_addr_3=new IpAddress("192.134.2.1", 6655); final Address self=Util.createRandomAddress(); data=new PingData(null, null, false); _testSize(data); data=new PingData(own, Util.createView(coord, 22, coord, Util.createRandomAddress()), false); _testSize(data); data=new PingData(null, null, false, "node-1", null); _testSize(data); data=new PingData(own, Util.createView(coord, 22, coord), false, "node-1", null); _testSize(data); data=new PingData(own, Util.createView(coord, 22, coord), false, "node-1", new ArrayList<PhysicalAddress>(7)); _testSize(data); data=new PingData(null, null, false, "node-1", new ArrayList<PhysicalAddress>(7)); _testSize(data); List<PhysicalAddress> list=new ArrayList<PhysicalAddress>(); list.add(physical_addr_1); list.add(physical_addr_2); list.add(physical_addr_3); data=new PingData(null, null, false, "node-1", list); _testSize(data); list.clear(); list.add(new IpAddress("127.0.0.1", 7500)); data=new PingData(null, null, false, "node-1", list); _testSize(data); View view=Util.createView(coord, 322649, coord, own, UUID.randomUUID()); data.setView(view); _testSize(data); data=new PingData(self, Util.createView(self, 1, self), true, "logical-name", null); _testSize(data); } public static void testGossipData() throws Exception { GossipData data; final Address own=org.jgroups.util.UUID.randomUUID(); final Address coord=org.jgroups.util.UUID.randomUUID(); UUID.add(own, "own"); UUID.add(coord, "coord"); final PhysicalAddress physical_addr_1=new IpAddress("127.0.0.1", 7500); final PhysicalAddress physical_addr_2=new IpAddress("192.168.1.5", 6000); final PhysicalAddress physical_addr_3=new IpAddress("192.134.2.1", 6655); _testSize(new GossipData()); data=new GossipData((byte)1); _testSize(data); data=new GossipData((byte)1, "DemoCluster", own, (List<Address>)null, null); _testSize(data); data=new GossipData((byte)1, "DemoCluster", own, Arrays.asList(own, coord), null); _testSize(data); data=new GossipData((byte)1, "DemoCluster", own, Arrays.asList(own, coord), Arrays.asList(physical_addr_1, physical_addr_2, physical_addr_3)); _testSize(data); List<PhysicalAddress> list=new ArrayList<PhysicalAddress>(); list.add(physical_addr_1); list.add(physical_addr_2); list.add(physical_addr_3); data=new GossipData((byte)1, "DemoCluster", own, Arrays.asList(own, coord), list); _testSize(data); data=new GossipData((byte)1, "demo", own, "logical_name", null); _testSize(data); data=new GossipData((byte)1, "demo", own, new byte[]{'b', 'e', 'l', 'a'}); _testSize(data); byte[] buffer=new byte[10]; buffer[2]='B'; buffer[3]='e'; buffer[4]='l'; buffer[5]='a'; data=new GossipData((byte)1, "demo", own, buffer, 2, 4); _testSize(data); } public static void testDigest() throws Exception { Address addr=Util.createRandomAddress(); MutableDigest mutableDigest=new MutableDigest(2); mutableDigest.add(addr, 200, 205); mutableDigest.add(Util.createRandomAddress(), 104, 105); _testSize(mutableDigest); Digest digest=new MutableDigest(10); _testSize(digest); digest=new Digest(Util.createRandomAddress(), 45, 50); _testSize(digest); } public static void testNakackHeader() throws Exception { _testSize(NakAckHeader.createMessageHeader(322649)); _testSize(NakAckHeader.createXmitRequestHeader(100, 104, Util.createRandomAddress())); _testSize(NakAckHeader.createXmitResponseHeader()); } public static void testFdHeaders() throws Exception { FD.FdHeader hdr=new FD.FdHeader(FD.FdHeader.HEARTBEAT_ACK); _testSize(hdr); IpAddress a1=new IpAddress("127.0.0.1", 5555); IpAddress a2=new IpAddress("127.0.0.1", 6666); List<Address> suspects=new ArrayList<Address>(); suspects.add(a1); suspects.add(a2); hdr=new FD.FdHeader(FD.FdHeader.SUSPECT, suspects, a1); _testSize(hdr); FD_SOCK.FdHeader sockhdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.GET_CACHE); _testSize(sockhdr); sockhdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.SUSPECT, new IpAddress("127.0.0.1", 5555)); _testSize(sockhdr); Set<Address> tmp=new HashSet<Address>(); tmp.add(a1); tmp.add(a2); sockhdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.SUSPECT, tmp); _testSize(sockhdr); Map<Address,IpAddress> cache=new HashMap<Address,IpAddress>(); cache.put(a1, a2); cache.put(a2, a1); sockhdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.SUSPECT, cache); _testSize(sockhdr); } public static void testFdSockHeaders() throws Exception { FD_SOCK.FdHeader hdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.GET_CACHE); _testSize(hdr); hdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.GET_CACHE, new IpAddress("127.0.0.1", 4567)); _testSize(hdr); Set<Address> set=new HashSet<Address>(); set.add(new IpAddress(3452)); set.add(new IpAddress("127.0.0.1", 5000)); hdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.GET_CACHE, set); _testSize(hdr); Map<Address,IpAddress> map=new HashMap<Address,IpAddress>(); map.put(new IpAddress("127.0.0.1", 5000), new IpAddress(4553)); map.put(new IpAddress("127.0.0.1", 6000), new IpAddress(4523)); map.put(new IpAddress(7000), new IpAddress(4553)); hdr=new FD_SOCK.FdHeader(FD_SOCK.FdHeader.GET_CACHE, map); _testSize(hdr); // check that IpAddress is correctly sized in FD_SOCK.FdHeader hdr = new FD_SOCK.FdHeader(FD_SOCK.FdHeader.I_HAVE_SOCK, new IpAddress("127.0.0.1", 4567), new IpAddress("127.0.0.1", 4567)); _testSize(hdr) ; } public static void testUnicastHeader() throws Exception { UNICAST.UnicastHeader hdr=UNICAST.UnicastHeader.createDataHeader(322649, (short)127, false); _testSize(hdr); hdr=UNICAST.UnicastHeader.createDataHeader(322649, Short.MAX_VALUE, false); _testSize(hdr); hdr=UNICAST.UnicastHeader.createDataHeader(322649, (short)(Short.MAX_VALUE -10), true); _testSize(hdr); hdr=UNICAST.UnicastHeader.createAckHeader(322649); _testSize(hdr); hdr=UNICAST.UnicastHeader.createSendFirstSeqnoHeader(33333); _testSize(hdr); } public static void testUnicast2Header() throws Exception { UNICAST2.Unicast2Header hdr=UNICAST2.Unicast2Header.createDataHeader(322649, (short)127, false); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createDataHeader(322649, Short.MAX_VALUE, false); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createDataHeader(322649, (short)(Short.MAX_VALUE -10), true); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createSendFirstSeqnoHeader(322649); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createStableHeader((short)55, 0, 0); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createStableHeader((short)55, 0, 1); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createStableHeader((short)55, 70000, 100000); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createStableHeader((short)55, Integer.MAX_VALUE, (long)Integer.MAX_VALUE+1000); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createXmitReqHeader(); _testSize(hdr); _testMarshalling(hdr); hdr=UNICAST2.Unicast2Header.createSendFirstSeqnoHeader(322649); _testSize(hdr); _testMarshalling(hdr); } public static void testStableHeader() throws Exception { org.jgroups.protocols.pbcast.STABLE.StableHeader hdr; Address addr=UUID.randomUUID(); Map<Address,long[]> map=new HashMap<Address,long[]>(); map.put(addr, new long[]{200, 205}); Digest digest=new Digest(map); hdr=new STABLE.StableHeader(STABLE.StableHeader.STABLE_GOSSIP, digest); _testSize(hdr); hdr=new STABLE.StableHeader(STABLE.StableHeader.STABILITY, null); _testSize(hdr); } public static void testStableHeader2() throws Exception { org.jgroups.protocols.pbcast.STABLE.StableHeader hdr; IpAddress addr=new IpAddress("127.0.0.1", 5555); MutableDigest digest=new MutableDigest(2); digest.add(addr, 200, 205); hdr=new STABLE.StableHeader(STABLE.StableHeader.STABLE_GOSSIP, digest); _testSize(hdr); hdr=new STABLE.StableHeader(STABLE.StableHeader.STABILITY, null); _testSize(hdr); } public static void testSequencerHeader() throws Exception { org.jgroups.protocols.SEQUENCER.SequencerHeader hdr; hdr=new SEQUENCER.SequencerHeader((byte)1, 1L); _testSize(hdr); } public static void testAddressVector() throws Exception { List<Address> v=new ArrayList<Address>(); _testSize(v); v.add(new IpAddress(1111)); _testSize(v); v.add(new IpAddress(2222)); _testSize(v); } public static void testViewId() throws Exception { ViewId vid=new ViewId(); _testSize(vid); Address addr=Util.createRandomAddress("A"); vid=new ViewId(addr); _testSize(vid); vid=new ViewId(addr, 322649); _testSize(vid); } public static void testMergeId() throws Exception { MergeId id=MergeId.create(UUID.randomUUID()); System.out.println("id = " + id); _testSize(id); id=MergeId.create(UUID.randomUUID()); System.out.println("id = " + id); _testSize(id); Address addr=UUID.randomUUID(); id=MergeId.create(addr); System.out.println("id = " + id); _testSize(id); id=MergeId.create(addr); System.out.println("id = " + id); _testSize(id); id=MergeId.create(addr); System.out.println("id = " + id); _testSize(id); } public static void testView() throws Exception { Address one=Util.createRandomAddress("A"); ViewId vid=new ViewId(one, 322649); List<Address> mbrs=new ArrayList<Address>(); mbrs.add(one); View v=new View(vid, mbrs); _testSize(v); mbrs.add(Util.createRandomAddress("B")); v=new View(vid, mbrs); _testSize(v); mbrs.add(Util.createRandomAddress("C")); v=new View(vid, mbrs); _testSize(v); } public static void testMergeView() throws Exception { ViewId vid=new ViewId(UUID.randomUUID(), 322649); List<Address> mbrs=new ArrayList<Address>(); View v=new MergeView(vid, mbrs, null); _testSize(v); mbrs.add(UUID.randomUUID()); _testSize(v); mbrs.add(UUID.randomUUID()); _testSize(v); } public static void testMergeView2() throws Exception { List<Address> m1, m2 , m3, all; List<View> subgroups; Address a,b,c,d,e,f; View v1, v2, v3, view_all; a=Util.createRandomAddress(); b=Util.createRandomAddress(); c=Util.createRandomAddress(); d=Util.createRandomAddress(); e=Util.createRandomAddress(); f=Util.createRandomAddress(); m1=new ArrayList<Address>(); m2=new ArrayList<Address>(); m3=new ArrayList<Address>(); all=new ArrayList<Address>(); subgroups=new ArrayList<View>(); m1.add(a); m1.add(b); m1.add(c); m2.add(d); m3.add(e); m3.add(f); all.add(a); all.add(b); all.add(c); all.add(d); all.add(e); all.add(f); v1=new View(a, 1, m1); v2=new View(d, 2, m2); v3=new View(e, 3, m3); subgroups.add(v1); subgroups.add(v2); subgroups.add(v3); view_all=new MergeView(a, 5, all, subgroups); System.out.println("MergeView: " + view_all); _testSize(view_all); } public static void testMergeView3() throws Exception { List<Address> m1, m2 , m3, all; List<View> subgroups; Address a,b,c,d,e,f; View v1, v2, v3, v4, view_all; a=new IpAddress(1000); b=new IpAddress(2000); c=new IpAddress(3000); d=new IpAddress(4000); e=new IpAddress(5000); f=new IpAddress(6000); m1=new ArrayList<Address>(); m2=new ArrayList<Address>(); m3=new ArrayList<Address>(); all=new ArrayList<Address>(); subgroups=new ArrayList<View>(); m1.add(a); m1.add(b); m1.add(c); m2.add(d); m3.add(e); m3.add(f); all.add(a); all.add(b); all.add(c); all.add(d); all.add(e); all.add(f); v1=new View(a, 1, m1); v2=new MergeView(d, 2, m2, new ArrayList<View>()); v3=new View(e, 3, m3); v4=new MergeView(e, 4, m3, null); subgroups.add(v1); subgroups.add(v2); subgroups.add(v3); subgroups.add(v4); view_all=new MergeView(a, 5, all, subgroups); System.out.println("MergeView: " + view_all); _testSize(view_all); } public static void testMergeHeader() throws Exception { MERGE3.MergeHeader hdr=new MERGE3.MergeHeader(); _testSize(hdr); ViewId view_id=new ViewId(Util.createRandomAddress("A"), 22); hdr=MERGE3.MergeHeader.createInfo(view_id, null, null); _testSize(hdr); String logical_name="A"; hdr=MERGE3.MergeHeader.createInfo(view_id, logical_name, null); _testSize(hdr); List<PhysicalAddress> physical_addr=new ArrayList<PhysicalAddress>(); physical_addr.add(new IpAddress(5002)); hdr=MERGE3.MergeHeader.createInfo(view_id, logical_name, physical_addr); _testSize(hdr); Address a=Util.createRandomAddress("A"), b=Util.createRandomAddress("B"), c=Util.createRandomAddress("C"); View view=Util.createView(a, 22, a,b,c); hdr=MERGE3.MergeHeader.createViewRequest(); _testSize(hdr); hdr=MERGE3.MergeHeader.createViewResponse(view); _testSize(hdr); } public static void testJoinRsp() throws Exception { JoinRsp rsp; Address a=Util.createRandomAddress("A"), b=Util.createRandomAddress("B"), c=Util.createRandomAddress("C"); View v=Util.createView(a, 55, a, b, c); MutableDigest digest=new MutableDigest(3); digest.add(a, 1000, 1050); digest.add(b, 700, 700); digest.add(c, 0, 0); rsp=new JoinRsp(v, digest); _testSize(rsp); rsp=new JoinRsp(v, null); _testSize(rsp); rsp=new JoinRsp("boom"); _testSize(rsp); } public static void testLargeJoinRsp() throws Exception { int NUM=1000; Address[] members=new Address[NUM]; for(int i=0; i < members.length; i++) members[i]=Util.createRandomAddress("m" + i); View view=Util.createView(members[0], 53, members); MutableDigest digest=new MutableDigest(NUM); for(Address member: members) digest.add(member, 70000, 100000, false); JoinRsp rsp=new JoinRsp(view, digest); _testSize(rsp); rsp=new JoinRsp(view, null); _testSize(rsp); } public static void testGmsHeader() throws Exception { Address addr=UUID.randomUUID(); GMS.GmsHeader hdr=new GMS.GmsHeader(GMS.GmsHeader.JOIN_REQ, addr); _testSize(hdr); List<Address> members=new ArrayList<Address>(); members.add(addr); members.add(addr); View v=new View(addr, 33, members); hdr=new GMS.GmsHeader(GMS.GmsHeader.JOIN_RSP, v); _testSize(hdr); Collection<Address> mbrs=new ArrayList<Address>(); Collections.addAll(mbrs, UUID.randomUUID(), UUID.randomUUID(), UUID.randomUUID()); hdr=new GMS.GmsHeader(GMS.GmsHeader.MERGE_REQ, mbrs); } public static void testFCHeader() throws Exception { FcHeader hdr=new FcHeader(FcHeader.REPLENISH); _testSize(hdr); } public static void testFragHeader() throws Exception { FragHeader hdr=new FragHeader(322649, 1, 10); _testSize(hdr); } public static void testCompressHeader() throws Exception { COMPRESS.CompressHeader hdr=new COMPRESS.CompressHeader(2002); _testSize(hdr); } public static void testStompHeader() throws Exception { STOMP.StompHeader hdr=STOMP.StompHeader.createHeader(STOMP.StompHeader.Type.MESSAGE, "destination", "/topics/chat", "sender", UUID.randomUUID().toString()); _testSize(hdr); hdr=STOMP.StompHeader.createHeader(STOMP.StompHeader.Type.ENDPOINT, "endpoint", "192.168.1.5:8787"); _testSize(hdr); } public static void testRelayHeader() throws Exception { RELAY.RelayHeader hdr=RELAY.RelayHeader.create(RELAY.RelayHeader.Type.FORWARD); _testSize(hdr); hdr=RELAY.RelayHeader.createDisseminateHeader(Util.createRandomAddress("A")); _testSize(hdr); Map<Address,String> uuid_cache=new HashMap<Address,String>(); uuid_cache.put(Util.createRandomAddress("A"), "A"); uuid_cache.put(Util.createRandomAddress("B"), "B"); uuid_cache.put(Util.createRandomAddress("B"), "B"); // hdr=RELAY.RelayHeader.create(RELAY.RelayHeader.Type.UUIDS); // _testSize(hdr); } public static void testStateHeader() throws Exception { IpAddress addr=new IpAddress("127.0.0.1", 5555); STATE_TRANSFER.StateHeader hdr; hdr=new STATE_TRANSFER.StateHeader(STATE_TRANSFER.StateHeader.STATE_REQ, null); _testSize(hdr); MutableDigest digest=new MutableDigest(2); digest.add(addr, 200, 205); digest.add(new IpAddress(2314), 104, 105); hdr=new STATE_TRANSFER.StateHeader(STATE_TRANSFER.StateHeader.STATE_RSP, digest); _testSize(hdr); } public static void testRelay2Header() throws Exception { Address dest=new SiteMaster((short)0); RELAY2.Relay2Header hdr=new RELAY2.Relay2Header(RELAY2.Relay2Header.DATA, dest, null); _testSize(hdr); Address sender=new SiteUUID(UUID.randomUUID(), "dummy", (short)1); hdr=new RELAY2.Relay2Header(RELAY2.Relay2Header.DATA, dest, sender); _testSize(hdr); } public static void testEncryptHeader() throws Exception { ENCRYPT.EncryptHeader hdr=new ENCRYPT.EncryptHeader((short)1, null); _testSize(hdr); hdr=new ENCRYPT.EncryptHeader((short)2, "Hello world"); _testSize(hdr); } public static void testIpAddress() throws Exception { IpAddress addr=new IpAddress(); _testSize(addr); } public static void testIpAddress1() throws Exception { IpAddress addr=new IpAddress("127.0.0.1", 5555); _testSize(addr); } public static void testIpAddressWithHighPort() throws Exception { IpAddress addr=new IpAddress("127.0.0.1", 65535); _testSize(addr); } public static void testIpAddress2() throws Exception { IpAddress addr=new IpAddress(3456); _testSize(addr); } public static void testIpAddress3() throws Exception { IpAddress addr=new IpAddress(5555, false); _testSize(addr); } public static void testWriteAddress() throws Exception { Address uuid=UUID.randomUUID(); _testWriteAddress(uuid); Address addr=new IpAddress(7500); _testWriteAddress(addr); addr=new IpAddress("127.0.0.1", 5678); _testWriteAddress(addr); } private static void _testWriteAddress(Address addr) throws Exception { int len=Util.size(addr); ByteArrayOutputStream output=new ByteArrayOutputStream(); DataOutputStream out=new DataOutputStream(output); Util.writeAddress(addr, out); out.flush(); byte[] buf=output.toByteArray(); out.close(); System.out.println("\nlen=" + len + ", serialized length=" + buf.length); assert len == buf.length; DataInputStream in=new DataInputStream(new ByteArrayInputStream(buf)); Address new_addr=Util.readAddress(in); System.out.println("old addr=" + addr + "\nnew addr=" + new_addr); assert addr.equals(new_addr); } public static void testWriteAddresses() throws Exception { List<Address> list=new ArrayList<Address>(); for(int i=0; i < 3; i++) list.add(UUID.randomUUID()); _testWriteAddresses(list); list.clear(); list.add(new IpAddress(7500)); list.add(new IpAddress("192.168.1.5", 4444)); list.add(new IpAddress("127.0.0.1", 5674)); _testWriteAddresses(list); } private static void _testWriteAddresses(List<Address> list) throws Exception { long len=Util.size(list); ByteArrayOutputStream output=new ByteArrayOutputStream(); DataOutputStream out=new DataOutputStream(output); Util.writeAddresses(list, out); out.flush(); byte[] buf=output.toByteArray(); out.close(); System.out.println("\nlen=" + len + ", serialized length=" + buf.length); assert len == buf.length; DataInputStream in=new DataInputStream(new ByteArrayInputStream(buf)); Collection<? extends Address> new_list=Util.readAddresses(in, ArrayList.class); System.out.println("old list=" + list + "\nnew list=" + new_list); assert list.equals(new_list); } public static void testUUID() throws Exception { org.jgroups.util.UUID uuid=org.jgroups.util.UUID.randomUUID(); System.out.println("uuid = " + uuid); _testSize(uuid); uuid=org.jgroups.util.UUID.randomUUID(); byte[] buf=Util.streamableToByteBuffer(uuid); org.jgroups.util.UUID uuid2=(org.jgroups.util.UUID)Util.streamableFromByteBuffer(org.jgroups.util.UUID.class, buf); System.out.println("uuid: " + uuid); System.out.println("uuid2: " + uuid2); assert uuid.equals(uuid2); int hash1=uuid.hashCode(), hash2=uuid2.hashCode(); System.out.println("hash 1: " + hash1); System.out.println("hash 2: " + hash2); assert hash1 == hash2; } public static void testRequestCorrelatorHeader() throws Exception { RequestCorrelator.Header hdr; hdr=new RequestCorrelator.Header(RequestCorrelator.Header.REQ, 322649, false, (short)1000); _testSize(hdr); hdr=new RequestCorrelator.Header(RequestCorrelator.Header.RSP, 322649, true, (short)356); ByteArrayOutputStream output=new ByteArrayOutputStream(); DataOutputStream out=new DataOutputStream(output); hdr.writeTo(out); out.flush(); byte[] buf=output.toByteArray(); out.close(); ByteArrayInputStream input=new ByteArrayInputStream(buf); DataInputStream in=new DataInputStream(input); hdr=new RequestCorrelator.Header(); hdr.readFrom(in); Assert.assertEquals(322649, hdr.id); assert hdr.rsp_expected; Assert.assertEquals((short)356, hdr.corrId); Assert.assertEquals(RequestCorrelator.Header.RSP, hdr.type); hdr=new RequestCorrelator.Header(RequestCorrelator.Header.RSP, 322649, true, (short)356); output=new ByteArrayOutputStream(); out=new DataOutputStream(output); hdr.writeTo(out); out.flush(); buf=output.toByteArray(); out.close(); input=new ByteArrayInputStream(buf); in=new DataInputStream(input); hdr=new RequestCorrelator.Header(); hdr.readFrom(in); Assert.assertEquals(322649, hdr.id); assert hdr.rsp_expected; Assert.assertEquals(356, hdr.corrId); Assert.assertEquals(RequestCorrelator.Header.RSP, hdr.type); } private static void _testMarshalling(UNICAST2.Unicast2Header hdr) throws Exception { byte[] buf=Util.streamableToByteBuffer(hdr); UNICAST2.Unicast2Header hdr2=(UNICAST2.Unicast2Header)Util.streamableFromByteBuffer(UNICAST2.Unicast2Header.class, buf); assert hdr.getType() == hdr2.getType(); assert hdr.getSeqno() == hdr2.getSeqno(); assert hdr.getHighSeqno() == hdr2.getHighSeqno(); assert hdr.getConnId() == hdr2.getConnId(); assert hdr.isFirst() == hdr2.isFirst(); } private static void _testSize(Digest digest) throws Exception { long len=digest.serializedSize(); byte[] serialized_form=Util.streamableToByteBuffer(digest); System.out.println("digest = " + digest); System.out.println("size=" + len + ", serialized size=" + serialized_form.length); assert len == serialized_form.length; } private static void _testSize(Header hdr) throws Exception { long size=hdr.size(); byte[] serialized_form=Util.streamableToByteBuffer(hdr); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); Assert.assertEquals(serialized_form.length, size); } private static void _testSize(Address addr) throws Exception { long size=addr.size(); byte[] serialized_form=Util.streamableToByteBuffer(addr); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); Assert.assertEquals(serialized_form.length, size); } private static void _testSize(ViewId vid) throws Exception { long size=vid.serializedSize(); byte[] serialized_form=Util.streamableToByteBuffer(vid); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); Assert.assertEquals(serialized_form.length, size); } private static void _testSize(MergeId id) throws Exception { long size=id.size(); byte[] serialized_form=Util.streamableToByteBuffer(id); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); assert serialized_form.length == size; } private static void _testSize(View v) throws Exception { long size=v.serializedSize(); byte[] serialized_form=Util.streamableToByteBuffer(v); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); Assert.assertEquals(serialized_form.length, size); } private static void _testSize(Collection<Address> coll) throws Exception { long size=Util.size(coll); byte[] serialized_form=Util.collectionToByteBuffer(coll); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); Assert.assertEquals(serialized_form.length, size); } private static void _testSize(MERGE3.MergeHeader hdr) throws Exception { long size=hdr.size(); byte[] serialized_form=Util.streamableToByteBuffer(hdr); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); Assert.assertEquals(serialized_form.length, size); } private static void _testSize(JoinRsp rsp) throws Exception { long size=rsp.serializedSize(); byte[] serialized_form=Util.streamableToByteBuffer(rsp); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); Assert.assertEquals(serialized_form.length, size); JoinRsp rsp2=(JoinRsp)Util.streamableFromByteBuffer(JoinRsp.class, serialized_form); assert Util.match(rsp.getDigest(), rsp2.getDigest()); assert Util.match(rsp.getView(), rsp2.getView()); assert Util.match(rsp.getFailReason(), rsp2.getFailReason()); } private static void _testSize(PingData data) throws Exception { System.out.println("\ndata: " + data); long size=data.size(); byte[] serialized_form=Util.streamableToByteBuffer(data); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); assert serialized_form.length == size : "serialized length=" + serialized_form.length + ", size=" + size; } private static void _testSize(GossipData data) throws Exception { System.out.println("\ndata: " + data); long size=data.size(); byte[] serialized_form=Util.streamableToByteBuffer(data); System.out.println("size=" + size + ", serialized size=" + serialized_form.length); assert serialized_form.length == size : "serialized length=" + serialized_form.length + ", size=" + size; } }