private void checkPacket(NPFPacket packet, byte[] correctData) { byte[] data = new byte[packet.getLength()]; packet.toBytes(data, 0, null); checkEquals(correctData, data); }
public void testEncodeDecodeLossyPerPacketMessages2Padded() { NPFPacket p = new NPFPacket(); byte[] fragData = new byte[] {(byte)0x01, (byte)0x23, (byte)0x45, (byte)0x67, (byte)0x89, (byte)0xAB, (byte)0xCD, (byte)0xEF}; p.addMessageFragment(new MessageFragment(true, false, true, 0, 8, 8, 0, fragData, null)); byte[] lossyFragment = new byte[] { (byte)0xFF, (byte)0xEE, (byte)0xDD, (byte)0xCC, (byte)0xBB, (byte)0xAA}; byte[] lossyFragment2 = new byte[] { (byte)0xAA, (byte)0x99, (byte)0x88, (byte)0x77, (byte)0x66, (byte)0x55}; p.addLossyMessage(lossyFragment); p.addLossyMessage(lossyFragment2); byte[] encoded = new byte[p.getLength() + 20]; int randomSeed = new Random().nextInt(); p.toBytes(encoded, 0, new Random(randomSeed)); NPFPacket received = NPFPacket.create(encoded, pn); assertEquals(1, received.getFragments().size()); assertEquals(0, received.countAcks()); assertEquals("Seed was "+randomSeed, 2, received.getLossyMessages().size()); assertEquals(p.getLength(), received.getLength()); assertEquals(encoded.length - 20, received.getLength()); byte[] decodedFragData = received.getFragments().get(0).fragmentData; checkEquals(fragData, decodedFragData); byte[] decodedLossyMessage = received.getLossyMessages().get(0); checkEquals(lossyFragment, decodedLossyMessage); decodedLossyMessage = received.getLossyMessages().get(1); checkEquals(lossyFragment2, decodedLossyMessage); }
public void testEncodeDecodeLossyPerPacketMessages2() { NPFPacket p = new NPFPacket(); byte[] fragData = new byte[] {(byte)0x01, (byte)0x23, (byte)0x45, (byte)0x67, (byte)0x89, (byte)0xAB, (byte)0xCD, (byte)0xEF}; p.addMessageFragment(new MessageFragment(true, false, true, 0, 8, 8, 0, fragData, null)); byte[] lossyFragment = new byte[] { (byte)0xFF, (byte)0xEE, (byte)0xDD, (byte)0xCC, (byte)0xBB, (byte)0xAA}; byte[] lossyFragment2 = new byte[] { (byte)0xAA, (byte)0x99, (byte)0x88, (byte)0x77, (byte)0x66, (byte)0x55}; p.addLossyMessage(lossyFragment); p.addLossyMessage(lossyFragment2); byte[] encoded = new byte[p.getLength()]; p.toBytes(encoded, 0, null); NPFPacket received = NPFPacket.create(encoded, pn); assertEquals(1, received.getFragments().size()); assertEquals(0, received.countAcks()); assertEquals(2, received.getLossyMessages().size()); assertEquals(encoded.length, received.getLength()); byte[] decodedFragData = received.getFragments().get(0).fragmentData; checkEquals(fragData, decodedFragData); byte[] decodedLossyMessage = received.getLossyMessages().get(0); checkEquals(lossyFragment, decodedLossyMessage); decodedLossyMessage = received.getLossyMessages().get(1); checkEquals(lossyFragment2, decodedLossyMessage); }
public void testEncodeDecodeLossyPerPacketMessages() { NPFPacket p = new NPFPacket(); byte[] fragData = new byte[] {(byte)0x01, (byte)0x23, (byte)0x45, (byte)0x67, (byte)0x89, (byte)0xAB, (byte)0xCD, (byte)0xEF}; p.addMessageFragment(new MessageFragment(true, false, true, 0, 8, 8, 0, fragData, null)); byte[] lossyFragment = new byte[] { (byte)0xFF, (byte)0xEE, (byte)0xDD, (byte)0xCC, (byte)0xBB, (byte)0xAA}; p.addLossyMessage(lossyFragment); byte[] encoded = new byte[p.getLength()]; p.toBytes(encoded, 0, null); NPFPacket received = NPFPacket.create(encoded, pn); assertEquals(1, received.getFragments().size()); assertEquals(0, received.countAcks()); assertEquals(1, received.getLossyMessages().size()); assertEquals(encoded.length, received.getLength()); byte[] decodedFragData = received.getFragments().get(0).fragmentData; checkEquals(fragData, decodedFragData); byte[] decodedLossyMessage = received.getLossyMessages().get(0); checkEquals(lossyFragment, decodedLossyMessage); }
public void testLoadStatsLowLevel() throws BlockedTooLongException, InterruptedException { final byte[] loadMessage = new byte[] { (byte)0xFF, (byte)0xEE, (byte)0xDD, (byte)0xCC, (byte)0xBB, (byte)0xAA}; final SessionKey senderKey = new SessionKey(null, null, null, null, null, null, null, null, new NewPacketFormatKeyContext(0, 0), 1); NullBasePeerNode senderNode = new NullBasePeerNode() { @Override public MessageItem makeLoadStats(boolean realtime, boolean highPriority, boolean noRemember) { return new MessageItem(loadMessage, null, false, null, (short) 0, false, false); } @Override public SessionKey getCurrentKeyTracker() { return senderKey; } }; NewPacketFormat sender = new NewPacketFormat(senderNode, 0, 0); PeerMessageQueue senderQueue = new PeerMessageQueue(); senderQueue.queueAndEstimateSize(new MessageItem(new byte[128], null, false, null, (short) 0, false, true), 1024); Thread.sleep(PacketSender.MAX_COALESCING_DELAY*2); NPFPacket packet1 = sender.createPacket(512, senderQueue, senderKey, false); assertTrue(packet1 != null); assertEquals(1, packet1.getFragments().size()); assertEquals(1, packet1.getLossyMessages().size()); NPFPacketTest.checkEquals(loadMessage, packet1.getLossyMessages().get(0)); // Don't decode the packet because it's not a real message. }