@Test public void testDiscardReadBytes3() { ByteBuf a, b; a = wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 0, 5).order(order), wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 5, 5).order(order))); a.skipBytes(6); a.markReaderIndex(); b.skipBytes(6); b.markReaderIndex(); assertEquals(a.readerIndex(), b.readerIndex()); a.readerIndex(a.readerIndex() - 1); b.readerIndex(b.readerIndex() - 1); assertEquals(a.readerIndex(), b.readerIndex()); a.writerIndex(a.writerIndex() - 1); a.markWriterIndex(); b.writerIndex(b.writerIndex() - 1); b.markWriterIndex(); assertEquals(a.writerIndex(), b.writerIndex()); a.writerIndex(a.writerIndex() + 1); b.writerIndex(b.writerIndex() + 1); assertEquals(a.writerIndex(), b.writerIndex()); assertTrue(ByteBufUtil.equals(a, b)); // now discard a.discardReadBytes(); b.discardReadBytes(); assertEquals(a.readerIndex(), b.readerIndex()); assertEquals(a.writerIndex(), b.writerIndex()); assertTrue(ByteBufUtil.equals(a, b)); a.resetReaderIndex(); b.resetReaderIndex(); assertEquals(a.readerIndex(), b.readerIndex()); a.resetWriterIndex(); b.resetWriterIndex(); assertEquals(a.writerIndex(), b.writerIndex()); assertTrue(ByteBufUtil.equals(a, b)); }
@Test public void testWrittenBuffersEquals() { // XXX Same tests than testEquals with written AggregateChannelBuffers ByteBuf a, b; // Different length. a = wrappedBuffer(new byte[] {1}).order(order); b = wrappedBuffer(wrappedBuffer(new byte[] {1}, new byte[1]).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 1); b.writeBytes(wrappedBuffer(new byte[] {2}).order(order)); assertFalse(ByteBufUtil.equals(a, b)); // Same content, same firstIndex, short length. a = wrappedBuffer(new byte[] {1, 2, 3}).order(order); b = wrappedBuffer(wrappedBuffer(new byte[] {1}, new byte[2]).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 2); b.writeBytes(wrappedBuffer(new byte[] {2}).order(order)); b.writeBytes(wrappedBuffer(new byte[] {3}).order(order)); assertTrue(ByteBufUtil.equals(a, b)); // Same content, different firstIndex, short length. a = wrappedBuffer(new byte[] {1, 2, 3}).order(order); b = wrappedBuffer(wrappedBuffer(new byte[] {0, 1, 2, 3, 4}, 1, 3).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 1); b.writeBytes(wrappedBuffer(new byte[] {0, 1, 2, 3, 4}, 3, 1).order(order)); assertTrue(ByteBufUtil.equals(a, b)); // Different content, same firstIndex, short length. a = wrappedBuffer(new byte[] {1, 2, 3}).order(order); b = freeLater(wrappedBuffer(wrappedBuffer(new byte[] {1, 2}, new byte[1]).order(order))); // to enable writeBytes b.writerIndex(b.writerIndex() - 1); b.writeBytes(wrappedBuffer(new byte[] {4}).order(order)); assertFalse(ByteBufUtil.equals(a, b)); // Different content, different firstIndex, short length. a = wrappedBuffer(new byte[] {1, 2, 3}).order(order); b = wrappedBuffer(wrappedBuffer(new byte[] {0, 1, 2, 4, 5}, 1, 3).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 1); b.writeBytes(wrappedBuffer(new byte[] {0, 1, 2, 4, 5}, 3, 1).order(order)); assertFalse(ByteBufUtil.equals(a, b)); // Same content, same firstIndex, long length. a = wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order); b = freeLater(wrappedBuffer(wrappedBuffer(new byte[] {1, 2, 3}, new byte[7])).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 7); b.writeBytes(wrappedBuffer(new byte[] {4, 5, 6}).order(order)); b.writeBytes(wrappedBuffer(new byte[] {7, 8, 9, 10}).order(order)); assertTrue(ByteBufUtil.equals(a, b)); // Same content, different firstIndex, long length. a = wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order); b = wrappedBuffer( wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 1, 10).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 5); b.writeBytes( wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 6, 5).order(order)); assertTrue(ByteBufUtil.equals(a, b)); // Different content, same firstIndex, long length. a = wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order); b = freeLater( wrappedBuffer(wrappedBuffer(new byte[] {1, 2, 3, 4, 6}, new byte[5])).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 5); b.writeBytes(wrappedBuffer(new byte[] {7, 8, 5, 9, 10}).order(order)); assertFalse(ByteBufUtil.equals(a, b)); // Different content, different firstIndex, long length. a = wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order); b = wrappedBuffer( wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11}, 1, 10).order(order)); // to enable writeBytes b.writerIndex(b.writerIndex() - 5); b.writeBytes( wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11}, 6, 5).order(order)); assertFalse(ByteBufUtil.equals(a, b)); }
@Test public void testSeveralBuffersEquals() { ByteBuf a, b; // XXX Same tests with several buffers in wrappedCheckedBuffer // Different length. a = freeLater(wrappedBuffer(new byte[] {1}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {1}).order(order), wrappedBuffer(new byte[] {2}).order(order))); assertFalse(ByteBufUtil.equals(a, b)); // Same content, same firstIndex, short length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {1}).order(order), wrappedBuffer(new byte[] {2}).order(order), wrappedBuffer(new byte[] {3}).order(order))); assertTrue(ByteBufUtil.equals(a, b)); // Same content, different firstIndex, short length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {0, 1, 2, 3, 4}, 1, 2).order(order), wrappedBuffer(new byte[] {0, 1, 2, 3, 4}, 3, 1).order(order))); assertTrue(ByteBufUtil.equals(a, b)); // Different content, same firstIndex, short length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {1, 2}).order(order), wrappedBuffer(new byte[] {4}).order(order))); assertFalse(ByteBufUtil.equals(a, b)); // Different content, different firstIndex, short length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {0, 1, 2, 4, 5}, 1, 2).order(order), wrappedBuffer(new byte[] {0, 1, 2, 4, 5}, 3, 1).order(order))); assertFalse(ByteBufUtil.equals(a, b)); // Same content, same firstIndex, long length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {1, 2, 3}).order(order), wrappedBuffer(new byte[] {4, 5, 6}).order(order), wrappedBuffer(new byte[] {7, 8, 9, 10}).order(order))); assertTrue(ByteBufUtil.equals(a, b)); // Same content, different firstIndex, long length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 1, 5).order(order), wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, 6, 5) .order(order))); assertTrue(ByteBufUtil.equals(a, b)); // Different content, same firstIndex, long length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {1, 2, 3, 4, 6}).order(order), wrappedBuffer(new byte[] {7, 8, 5, 9, 10}).order(order))); assertFalse(ByteBufUtil.equals(a, b)); // Different content, different firstIndex, long length. a = freeLater(wrappedBuffer(new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}).order(order)); b = freeLater( wrappedBuffer( wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11}, 1, 5).order(order), wrappedBuffer(new byte[] {0, 1, 2, 3, 4, 6, 7, 8, 5, 9, 10, 11}, 6, 5) .order(order))); assertFalse(ByteBufUtil.equals(a, b)); }