Fix leaks in buffer tests

This commit is contained in:
Trustin Lee 2013-01-18 13:49:17 +09:00
parent b5c87b0f9c
commit ba8c8171fa
2 changed files with 27 additions and 4 deletions

View File

@ -39,6 +39,7 @@ public abstract class AbstractChannelBufferTest {
private static final int CAPACITY = 4096; // Must be even private static final int CAPACITY = 4096; // Must be even
private static final int BLOCK_SIZE = 128; private static final int BLOCK_SIZE = 128;
private static final byte[] EMPTY_ARRAY = new byte[0];
private long seed; private long seed;
private Random random; private Random random;
@ -60,8 +61,15 @@ public abstract class AbstractChannelBufferTest {
@After @After
public void dispose() { public void dispose() {
if (buffer != null) {
try {
buffer.free();
} catch (Exception e) {
// Ignore.
}
buffer = null; buffer = null;
} }
}
@Test @Test
public void initialState() { public void initialState() {
@ -203,12 +211,12 @@ public abstract class AbstractChannelBufferTest {
@Test(expected = IndexOutOfBoundsException.class) @Test(expected = IndexOutOfBoundsException.class)
public void getByteArrayBoundaryCheck1() { public void getByteArrayBoundaryCheck1() {
buffer.getBytes(-1, new byte[0]); buffer.getBytes(-1, EMPTY_ARRAY);
} }
@Test(expected = IndexOutOfBoundsException.class) @Test(expected = IndexOutOfBoundsException.class)
public void getByteArrayBoundaryCheck2() { public void getByteArrayBoundaryCheck2() {
buffer.getBytes(-1, new byte[0], 0, 0); buffer.getBytes(-1, EMPTY_ARRAY, 0, 0);
} }
@Test @Test
@ -863,6 +871,9 @@ public abstract class AbstractChannelBufferTest {
assertEquals(expectedValue.getByte(j), value.getByte(j)); assertEquals(expectedValue.getByte(j), value.getByte(j));
} }
} }
value.free();
expectedValue.free();
} }
@Test @Test
@ -1037,6 +1048,8 @@ public abstract class AbstractChannelBufferTest {
assertEquals(0, value.readerIndex()); assertEquals(0, value.readerIndex());
assertEquals(0, value.writerIndex()); assertEquals(0, value.writerIndex());
} }
value.free();
} }
@Test @Test
@ -1076,6 +1089,8 @@ public abstract class AbstractChannelBufferTest {
assertEquals(valueOffset, value.readerIndex()); assertEquals(valueOffset, value.readerIndex());
assertEquals(valueOffset + BLOCK_SIZE, value.writerIndex()); assertEquals(valueOffset + BLOCK_SIZE, value.writerIndex());
} }
value.free();
} }
@Test @Test
@ -1591,7 +1606,9 @@ public abstract class AbstractChannelBufferTest {
assertEquals(2, set.size()); assertEquals(2, set.size());
assertTrue(set.contains(elemA.copy())); assertTrue(set.contains(elemA.copy()));
assertTrue(set.contains(elemB.copy()));
ByteBuf elemBCopy = elemB.copy();
assertTrue(set.contains(elemBCopy));
buffer.clear(); buffer.clear();
buffer.writeBytes(elemA.duplicate()); buffer.writeBytes(elemA.duplicate());
@ -1605,6 +1622,9 @@ public abstract class AbstractChannelBufferTest {
assertTrue(set.remove(buffer)); assertTrue(set.remove(buffer));
assertFalse(set.contains(elemB)); assertFalse(set.contains(elemB));
assertEquals(0, set.size()); assertEquals(0, set.size());
elemB.free();
elemBCopy.free();
} }
// Test case for https://github.com/netty/netty/issues/325 // Test case for https://github.com/netty/netty/issues/325

View File

@ -33,6 +33,7 @@ import static org.junit.Assert.*;
/** /**
* Tests channel buffers * Tests channel buffers
*/ */
@SuppressWarnings("ZeroLengthArrayAllocation")
public class ChannelBuffersTest { public class ChannelBuffersTest {
@Test @Test
@ -50,6 +51,8 @@ public class ChannelBuffersTest {
assertEquals(12 + 512, buffer.readableBytes()); assertEquals(12 + 512, buffer.readableBytes());
assertEquals(2, buffer.nioBufferCount()); assertEquals(2, buffer.nioBufferCount());
buffer.free();
} }
@Test @Test