This is an automated email from the ASF dual-hosted git repository. garydgregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-compress.git
commit 1503aca212a6fff9d3d178f0796529773f910d0c Author: Gary Gregory <[email protected]> AuthorDate: Fri Jul 31 10:30:46 2026 -0400 Sort members --- .../compressors/lha/CircularBufferTest.java | 220 ++++++++++----------- 1 file changed, 110 insertions(+), 110 deletions(-) diff --git a/src/test/java/org/apache/commons/compress/compressors/lha/CircularBufferTest.java b/src/test/java/org/apache/commons/compress/compressors/lha/CircularBufferTest.java index a5b0c6f45..1025af26a 100644 --- a/src/test/java/org/apache/commons/compress/compressors/lha/CircularBufferTest.java +++ b/src/test/java/org/apache/commons/compress/compressors/lha/CircularBufferTest.java @@ -27,90 +27,6 @@ import org.junit.jupiter.api.Test; class CircularBufferTest { - @Test - void testPutAndGet1() { - final int size = 16; - final CircularBuffer buffer = new CircularBuffer(size); - for (int i = 0; i < size / 2; i++) { - buffer.put(i); - } - - assertTrue(buffer.available(), "available"); - - for (int i = 0; i < size / 2; i++) { - assertEquals(i, buffer.get(), "buffer[" + i + "]"); - } - - assertEquals(-1, buffer.get()); - assertFalse(buffer.available(), "available"); - } - - @Test - void testPutAndGet2() { - final CircularBuffer buffer = new CircularBuffer(8); - - // Nothing to read - assertFalse(buffer.available()); - assertEquals(-1, buffer.get()); - - // Write a byte and read it - buffer.put(0x01); - assertTrue(buffer.available()); - assertEquals(0x01, buffer.get()); - assertFalse(buffer.available()); - assertEquals(-1, buffer.get()); - - // Write multiple bytes and read them - buffer.put(0x02); - buffer.put(0x03); - buffer.put(0x04); - assertTrue(buffer.available()); - assertEquals(0x02, buffer.get()); - assertEquals(0x03, buffer.get()); - assertEquals(0x04, buffer.get()); - assertFalse(buffer.available()); - assertEquals(-1, buffer.get()); - } - - @Test - void testPutAndGetWrappingAround() { - final CircularBuffer buffer = new CircularBuffer(4); - - // Nothing to read - assertFalse(buffer.available()); - assertEquals(-1, buffer.get()); - - // Write two bytes and read them in a loop making the buffer wrap around several times - for (int i = 0; i < 8; i++) { - buffer.put(i * 2); - buffer.put(i * 2 + 1); - - assertTrue(buffer.available()); - assertEquals(i * 2, buffer.get()); - assertEquals(i * 2 + 1, buffer.get()); - assertFalse(buffer.available()); - assertEquals(-1, buffer.get()); - } - } - - @Test - void testPutOverflow() { - final CircularBuffer buffer = new CircularBuffer(4); - - // Write more bytes than the buffer can hold - buffer.put(0x01); - buffer.put(0x02); - buffer.put(0x03); - buffer.put(0x04); - - try { - buffer.put(0x05); - fail("Expected IllegalStateException for buffer overflow"); - } catch (IllegalStateException e) { - assertEquals("Buffer overflow: Cannot write to a full buffer", e.getMessage()); - } - } - @Test void testCopy1() { final CircularBuffer buffer = new CircularBuffer(16); @@ -228,6 +144,62 @@ void testCopy4() { assertEquals(-1, buffer.get()); } + @Test + void testCopyCausingBufferOverflow() { + final CircularBuffer buffer = new CircularBuffer(4); + + // Write some bytes + buffer.put(0x01); + buffer.put(0x02); + buffer.put(0x03); + buffer.put(0x04); + + // Read some bytes to make space + assertEquals(0x01, buffer.get()); + assertEquals(0x02, buffer.get()); + + try { + buffer.copy(4, 4); // Copying 4 bytes and write to the buffer that will be full during copy + fail("Expected IllegalStateException for buffer overflow during copy"); + } catch (IllegalStateException e) { + assertEquals("Buffer overflow: Cannot write to a full buffer", e.getMessage()); + } + } + + @Test + void testCopyDistanceExceedingBufferSize() { + final CircularBuffer buffer = new CircularBuffer(4); + + // Write some bytes + buffer.put(0x01); + buffer.put(0x02); + buffer.put(0x03); + buffer.put(0x04); + + try { + buffer.copy(5, 2); // Try to copy from a distance that is bigger than the buffer size + fail("Expected IllegalArgumentException for distance exceeding buffer size"); + } catch (IllegalArgumentException e) { + assertEquals("Distance exceeds buffer size", e.getMessage()); + } + } + + @Test + void testCopyDistanceInvalid() { + final CircularBuffer buffer = new CircularBuffer(4); + + // Write some bytes + buffer.put(0x01); + buffer.put(0x02); + + try { + buffer.copy(0, 2); // Try to copy from distance 0 + fail("Expected IllegalArgumentException for invalid distance"); + } catch (IllegalArgumentException e) { + assertEquals("Distance must be at least 1", e.getMessage()); + } + } + @Test void testCopyRunLengthEncoding1() { final CircularBuffer buffer = new CircularBuffer(16); @@ -255,56 +227,84 @@ void testCopyRunLengthEncoding1() { } @Test - void testCopyDistanceInvalid() { - final CircularBuffer buffer = new CircularBuffer(4); + void testPutAndGet1() { + final int size = 16; + final CircularBuffer buffer = new CircularBuffer(size); + for (int i = 0; i < size / 2; i++) { + buffer.put(i); + } - // Write some bytes - buffer.put(0x01); - buffer.put(0x02); + assertTrue(buffer.available(), "available"); - try { - buffer.copy(0, 2); // Try to copy from distance 0 - fail("Expected IllegalArgumentException for invalid distance"); - } catch (IllegalArgumentException e) { - assertEquals("Distance must be at least 1", e.getMessage()); + for (int i = 0; i < size / 2; i++) { + assertEquals(i, buffer.get(), "buffer[" + i + "]"); } + + assertEquals(-1, buffer.get()); + assertFalse(buffer.available(), "available"); } @Test - void testCopyDistanceExceedingBufferSize() { - final CircularBuffer buffer = new CircularBuffer(4); + void testPutAndGet2() { + final CircularBuffer buffer = new CircularBuffer(8); - // Write some bytes + // Nothing to read + assertFalse(buffer.available()); + assertEquals(-1, buffer.get()); + + // Write a byte and read it buffer.put(0x01); + assertTrue(buffer.available()); + assertEquals(0x01, buffer.get()); + assertFalse(buffer.available()); + assertEquals(-1, buffer.get()); + + // Write multiple bytes and read them buffer.put(0x02); buffer.put(0x03); buffer.put(0x04); + assertTrue(buffer.available()); + assertEquals(0x02, buffer.get()); + assertEquals(0x03, buffer.get()); + assertEquals(0x04, buffer.get()); + assertFalse(buffer.available()); + assertEquals(-1, buffer.get()); + } - try { - buffer.copy(5, 2); // Try to copy from a distance that is bigger than the buffer size - fail("Expected IllegalArgumentException for distance exceeding buffer size"); - } catch (IllegalArgumentException e) { - assertEquals("Distance exceeds buffer size", e.getMessage()); + @Test + void testPutAndGetWrappingAround() { + final CircularBuffer buffer = new CircularBuffer(4); + + // Nothing to read + assertFalse(buffer.available()); + assertEquals(-1, buffer.get()); + + // Write two bytes and read them in a loop making the buffer wrap around several times + for (int i = 0; i < 8; i++) { + buffer.put(i * 2); + buffer.put(i * 2 + 1); + + assertTrue(buffer.available()); + assertEquals(i * 2, buffer.get()); + assertEquals(i * 2 + 1, buffer.get()); + assertFalse(buffer.available()); + assertEquals(-1, buffer.get()); } } @Test - void testCopyCausingBufferOverflow() { + void testPutOverflow() { final CircularBuffer buffer = new CircularBuffer(4); - // Write some bytes + // Write more bytes than the buffer can hold buffer.put(0x01); buffer.put(0x02); buffer.put(0x03); buffer.put(0x04); - // Read some bytes to make space - assertEquals(0x01, buffer.get()); - assertEquals(0x02, buffer.get()); - try { - buffer.copy(4, 4); // Copying 4 bytes and write to the buffer that will be full during copy - fail("Expected IllegalStateException for buffer overflow during copy"); + buffer.put(0x05); + fail("Expected IllegalStateException for buffer overflow"); } catch (IllegalStateException e) { assertEquals("Buffer overflow: Cannot write to a full buffer", e.getMessage()); }
