From fadd95ae494109bff579938ce899cdc98f8c9ad9 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Wed, 21 Sep 2011 15:56:50 +0100 Subject: [PATCH] Added a test for MAX_PACKET_LENGTH. --- test/build.xml | 1 + .../transport/ConnectionWriterImplTest.java | 2 +- .../briar/transport/ConnectionWriterTest.java | 49 +++++++++++++++++++ .../transport/PaddedConnectionWriterTest.java | 2 +- 4 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 test/net/sf/briar/transport/ConnectionWriterTest.java diff --git a/test/build.xml b/test/build.xml index c30d880148..793c9d63a3 100644 --- a/test/build.xml +++ b/test/build.xml @@ -41,6 +41,7 @@ <test name='net.sf.briar.transport.ConnectionRecogniserImplTest'/> <test name='net.sf.briar.transport.ConnectionWindowImplTest'/> <test name='net.sf.briar.transport.ConnectionWriterImplTest'/> + <test name='net.sf.briar.transport.ConnectionWriterTest'/> <test name='net.sf.briar.transport.FrameReadWriteTest'/> <test name='net.sf.briar.transport.PaddedConnectionWriterTest'/> <test name='net.sf.briar.util.ByteUtilsTest'/> diff --git a/test/net/sf/briar/transport/ConnectionWriterImplTest.java b/test/net/sf/briar/transport/ConnectionWriterImplTest.java index 56528e9e24..9d7794a797 100644 --- a/test/net/sf/briar/transport/ConnectionWriterImplTest.java +++ b/test/net/sf/briar/transport/ConnectionWriterImplTest.java @@ -103,7 +103,7 @@ public class ConnectionWriterImplTest extends TransportTest { @Test public void testGetCapacity() throws Exception { - int overheadPerFrame = 4 + mac.getMacLength(); + int overheadPerFrame = headerLength + macLength; ByteArrayOutputStream out = new ByteArrayOutputStream(); ConnectionEncrypter e = new NullConnectionEncrypter(out); ConnectionWriterImpl w = new ConnectionWriterImpl(e, mac); diff --git a/test/net/sf/briar/transport/ConnectionWriterTest.java b/test/net/sf/briar/transport/ConnectionWriterTest.java new file mode 100644 index 0000000000..aa1487edae --- /dev/null +++ b/test/net/sf/briar/transport/ConnectionWriterTest.java @@ -0,0 +1,49 @@ +package net.sf.briar.transport; + +import java.io.ByteArrayOutputStream; + +import junit.framework.TestCase; +import net.sf.briar.api.protocol.ProtocolConstants; +import net.sf.briar.api.transport.ConnectionWriter; +import net.sf.briar.api.transport.ConnectionWriterFactory; +import net.sf.briar.api.transport.TransportConstants; +import net.sf.briar.crypto.CryptoModule; + +import org.junit.Test; + +import com.google.inject.Guice; +import com.google.inject.Injector; + +public class ConnectionWriterTest extends TestCase { + + private final ConnectionWriterFactory connectionWriterFactory; + private final byte[] secret = new byte[100]; + private final int transportId = 999; + private final long connection = 1234L; + + public ConnectionWriterTest() throws Exception { + super(); + Injector i = Guice.createInjector(new CryptoModule(), + new TransportModule()); + connectionWriterFactory = i.getInstance(ConnectionWriterFactory.class); + } + + @Test + public void testOverhead() throws Exception { + ByteArrayOutputStream out = new ByteArrayOutputStream( + TransportConstants.MIN_CONNECTION_LENGTH); + ConnectionWriter w = connectionWriterFactory.createConnectionWriter(out, + true, transportId, connection, secret); + // Check that the connection writer thinks there's room for a packet + long capacity = w.getCapacity(TransportConstants.MIN_CONNECTION_LENGTH); + assertTrue(capacity >= ProtocolConstants.MAX_PACKET_LENGTH); + assertTrue(capacity <= TransportConstants.MIN_CONNECTION_LENGTH); + // Check that there really is room for a packet + byte[] payload = new byte[ProtocolConstants.MAX_PACKET_LENGTH]; + w.getOutputStream().write(payload); + w.getOutputStream().flush(); + long used = out.size(); + assertTrue(used >= ProtocolConstants.MAX_PACKET_LENGTH); + assertTrue(used <= TransportConstants.MIN_CONNECTION_LENGTH); + } +} diff --git a/test/net/sf/briar/transport/PaddedConnectionWriterTest.java b/test/net/sf/briar/transport/PaddedConnectionWriterTest.java index 8cdbb78f4d..90efc10499 100644 --- a/test/net/sf/briar/transport/PaddedConnectionWriterTest.java +++ b/test/net/sf/briar/transport/PaddedConnectionWriterTest.java @@ -163,7 +163,7 @@ public class PaddedConnectionWriterTest extends TransportTest { @Test public void testGetCapacity() throws Exception { - int overheadPerFrame = 4 + mac.getMacLength(); + int overheadPerFrame = headerLength + macLength; ByteArrayOutputStream out = new ByteArrayOutputStream(); ConnectionEncrypter e = new NullConnectionEncrypter(out); PaddedConnectionWriter w = new PaddedConnectionWriter(e, mac); -- GitLab