Skip to content

Commit

Permalink
Merge pull request #1866 from emeroad/#1838_buffer_api_enhancement
Browse files Browse the repository at this point in the history
#1838 fixed incorrect buffer expend multiplier
  • Loading branch information
emeroad committed Jun 22, 2016
2 parents 1914e38 + b35eb8c commit 58493e3
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ protected void checkExpand(final int size) {
protected int computeExpandedBufferSize(final int size, int length, int remain) {
int expandedBufferSize = 0;
while (remain < size) {
length <<= 2;
length <<= 1;
expandedBufferSize = length;
remain = expandedBufferSize - offset;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ public void testUdp() throws Exception {
}

@Test
public void test_remaining() throws Exception {
public void testRemaining() throws Exception {
final byte[] bytes = new byte[BytesUtils.INT_BYTE_LENGTH];
Buffer buffer = new AutomaticBuffer(bytes);
Assert.assertEquals(buffer.remaining(), 4);
Expand All @@ -326,4 +326,43 @@ public void test_remaining() throws Exception {

}


@Test
public void testExpendMultiplier_2multiplier() throws Exception {
int bufferSize = 4;
Buffer buffer = new AutomaticBuffer(bufferSize);

buffer.putBytes(new byte[8]);
logger.debug("bufferSize:{} offset:{}", buffer.getInternalBuffer().length, buffer.getOffset());
Assert.assertEquals(buffer.getInternalBuffer().length, 8);

buffer.putBytes(new byte[8]);

logger.debug("bufferSize:{} offset:{}", buffer.getInternalBuffer().length, buffer.getOffset());
Assert.assertEquals(buffer.getInternalBuffer().length, 16);


buffer.putBytes(new byte[8]);
logger.debug("bufferSize:{} offset:{}", buffer.getInternalBuffer().length, buffer.getOffset());
Assert.assertEquals(buffer.getInternalBuffer().length, 32);
}

@Test
public void testExpendMultiplier_4multiplier() throws Exception {
int bufferSize = 4;
Buffer buffer = new AutomaticBuffer(bufferSize);

buffer.putBytes(new byte[5*4]);

logger.debug("bufferSize:{} offset:{}", buffer.getInternalBuffer().length, buffer.getOffset());
Assert.assertEquals(buffer.getInternalBuffer().length, 32);

buffer.putBytes(new byte[8*4]);

logger.debug("bufferSize:{} offset:{}", buffer.getInternalBuffer().length, buffer.getOffset());
Assert.assertEquals(buffer.getInternalBuffer().length, 64);


}

}

0 comments on commit 58493e3

Please sign in to comment.