You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/11/10 20:51:39 UTC

(commons-compress) branch master updated: Sort members

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git


The following commit(s) were added to refs/heads/master by this push:
     new 75cb7770d Sort members
75cb7770d is described below

commit 75cb7770dc3784876cf738a279614ad1b56c039e
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Nov 10 15:51:34 2023 -0500

    Sort members
---
 .../compress/archivers/examples/ExpanderTest.java  |  18 ++--
 .../commons/compress/archivers/tar/BigFilesIT.java |  32 +++---
 .../archivers/tar/TarMemoryFileSystemTest.java     |  60 ++++++------
 .../archivers/zip/ZipArchiveInputStreamTest.java   | 108 ++++++++++-----------
 .../compress/archivers/zip/ZipFileTest.java        |  14 +--
 .../harmony/pack200/tests/PackingOptionsTest.java  |  80 +++++++--------
 .../MultiReadOnlySeekableByteChannelTest.java      |  50 +++++-----
 .../utils/SeekableInMemoryByteChannelTest.java     |  78 +++++++--------
 8 files changed, 220 insertions(+), 220 deletions(-)

diff --git a/src/test/java/org/apache/commons/compress/archivers/examples/ExpanderTest.java b/src/test/java/org/apache/commons/compress/archivers/examples/ExpanderTest.java
index 07dced361..72c3cb935 100644
--- a/src/test/java/org/apache/commons/compress/archivers/examples/ExpanderTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/examples/ExpanderTest.java
@@ -174,15 +174,6 @@ public class ExpanderTest extends AbstractTest {
         }
     }
 
-    @Test
-    public void testTarFileVersion() throws IOException, ArchiveException {
-        setupTar();
-        try (TarFile f = new TarFile(archive)) {
-            new Expander().expand(f, tempResultDir);
-        }
-        verifyTargetDir();
-    }
-
     @Test
     public void testCompress603Tar() throws IOException, ArchiveException {
         setupTarForCompress603();
@@ -270,6 +261,15 @@ public class ExpanderTest extends AbstractTest {
         verifyTargetDir();
     }
 
+    @Test
+    public void testTarFileVersion() throws IOException, ArchiveException {
+        setupTar();
+        try (TarFile f = new TarFile(archive)) {
+            new Expander().expand(f, tempResultDir);
+        }
+        verifyTargetDir();
+    }
+
     @Test
     public void testZipFileVersion() throws IOException, ArchiveException {
         setupZip();
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java b/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java
index beaf0f659..2b58c4593 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/BigFilesIT.java
@@ -61,22 +61,6 @@ public class BigFilesIT extends AbstractTest {
         }
     }
 
-    @Test
-    public void testTarFileReadFileHeadersOfArchiveBiggerThan8GByte() throws Exception {
-        final Path file = getPath("8.posix.tar.gz");
-        final Path output = tempResultDir.toPath().resolve("8.posix.tar");
-        try (InputStream in = new BufferedInputStream(Files.newInputStream(file));
-             GzipCompressorInputStream gzin = new GzipCompressorInputStream(in)) {
-            Files.copy(gzin, output, StandardCopyOption.REPLACE_EXISTING);
-        }
-
-        try (final TarFile tarFile = new TarFile(output)) {
-            final List<TarArchiveEntry> entries = tarFile.getEntries();
-            assertEquals(1, entries.size());
-            assertNotNull(entries.get(0));
-        }
-    }
-
     @Test
     public void testReadFileBiggerThan8GBytePosix() throws Exception {
         readFileBiggerThan8GByte("8.posix.tar.gz");
@@ -98,4 +82,20 @@ public class BigFilesIT extends AbstractTest {
         }
     }
 
+    @Test
+    public void testTarFileReadFileHeadersOfArchiveBiggerThan8GByte() throws Exception {
+        final Path file = getPath("8.posix.tar.gz");
+        final Path output = tempResultDir.toPath().resolve("8.posix.tar");
+        try (InputStream in = new BufferedInputStream(Files.newInputStream(file));
+             GzipCompressorInputStream gzin = new GzipCompressorInputStream(in)) {
+            Files.copy(gzin, output, StandardCopyOption.REPLACE_EXISTING);
+        }
+
+        try (final TarFile tarFile = new TarFile(output)) {
+            final List<TarArchiveEntry> entries = tarFile.getEntries();
+            assertEquals(1, entries.size());
+            assertNotNull(entries.get(0));
+        }
+    }
+
 }
diff --git a/src/test/java/org/apache/commons/compress/archivers/tar/TarMemoryFileSystemTest.java b/src/test/java/org/apache/commons/compress/archivers/tar/TarMemoryFileSystemTest.java
index 4afe2cebc..78c8194b8 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarMemoryFileSystemTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarMemoryFileSystemTest.java
@@ -42,6 +42,36 @@ import com.github.marschall.memoryfilesystem.MemoryFileSystemBuilder;
 
 public class TarMemoryFileSystemTest {
 
+    @Test
+    public void testCheckUserInformationInTarEntry() throws IOException, ArchiveException {
+        final String user = "commons";
+        final String group = "compress";
+        try (FileSystem fileSystem = MemoryFileSystemBuilder.newLinux().addUser(user).addGroup(group).build()) {
+            final Path source = fileSystem.getPath("original-file.txt");
+            Files.write(source, "Test".getBytes(UTF_8));
+            Files.setAttribute(source, "posix:owner", (UserPrincipal) () -> user);
+            Files.setAttribute(source, "posix:group", (GroupPrincipal) () -> group);
+
+            final Path target = fileSystem.getPath("original-file.tar");
+            try (final OutputStream out = Files.newOutputStream(target);
+                    final ArchiveOutputStream<ArchiveEntry> tarOut = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream(ArchiveStreamFactory.TAR, out)) {
+                final TarArchiveEntry entry = new TarArchiveEntry(source);
+                tarOut.putArchiveEntry(entry);
+
+                Files.copy(source, tarOut);
+                tarOut.closeArchiveEntry();
+            }
+
+            try (final InputStream input = Files.newInputStream(target);
+                    final TarArchiveInputStream tarIn = new TarArchiveInputStream(input)) {
+                final TarArchiveEntry nextTarEntry = tarIn.getNextTarEntry();
+
+                assertEquals(user, nextTarEntry.getUserName());
+                assertEquals(group, nextTarEntry.getGroupName());
+            }
+        }
+    }
+
     @Test
     public void testTarFromMemoryFileSystem() throws IOException, ArchiveException {
         try (FileSystem fileSystem = MemoryFileSystemBuilder.newLinux().build()) {
@@ -83,34 +113,4 @@ public class TarMemoryFileSystemTest {
             }
         }
     }
-
-    @Test
-    public void testCheckUserInformationInTarEntry() throws IOException, ArchiveException {
-        final String user = "commons";
-        final String group = "compress";
-        try (FileSystem fileSystem = MemoryFileSystemBuilder.newLinux().addUser(user).addGroup(group).build()) {
-            final Path source = fileSystem.getPath("original-file.txt");
-            Files.write(source, "Test".getBytes(UTF_8));
-            Files.setAttribute(source, "posix:owner", (UserPrincipal) () -> user);
-            Files.setAttribute(source, "posix:group", (GroupPrincipal) () -> group);
-
-            final Path target = fileSystem.getPath("original-file.tar");
-            try (final OutputStream out = Files.newOutputStream(target);
-                    final ArchiveOutputStream<ArchiveEntry> tarOut = ArchiveStreamFactory.DEFAULT.createArchiveOutputStream(ArchiveStreamFactory.TAR, out)) {
-                final TarArchiveEntry entry = new TarArchiveEntry(source);
-                tarOut.putArchiveEntry(entry);
-
-                Files.copy(source, tarOut);
-                tarOut.closeArchiveEntry();
-            }
-
-            try (final InputStream input = Files.newInputStream(target);
-                    final TarArchiveInputStream tarIn = new TarArchiveInputStream(input)) {
-                final TarArchiveEntry nextTarEntry = tarIn.getNextTarEntry();
-
-                assertEquals(user, nextTarEntry.getUserName());
-                assertEquals(group, nextTarEntry.getGroupName());
-            }
-        }
-    }
 }
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
index 835fa57a6..0189a666a 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
@@ -571,6 +571,60 @@ public class ZipArchiveInputStreamTest extends AbstractTest {
         }
     }
 
+    @Test
+    public void testThrowsIfStoredDDIsDifferentFromLengthRead() throws IOException {
+        try (InputStream fs = newInputStream("bla-stored-dd-contradicts-actualsize.zip");
+                ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
+            final ZipArchiveEntry e = archive.getNextZipEntry();
+            assertNotNull(e);
+            assertEquals("test1.xml", e.getName());
+            assertEquals(-1, e.getCompressedSize());
+            assertEquals(-1, e.getSize());
+            assertThrows(ZipException.class, () -> IOUtils.toByteArray(archive));
+        }
+    }
+
+    @Test
+    public void testThrowsIfStoredDDIsInconsistent() throws IOException {
+        try (InputStream fs = newInputStream("bla-stored-dd-sizes-differ.zip");
+                ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
+            final ZipArchiveEntry e = archive.getNextZipEntry();
+            assertNotNull(e);
+            assertEquals("test1.xml", e.getName());
+            assertEquals(-1, e.getCompressedSize());
+            assertEquals(-1, e.getSize());
+            assertThrows(ZipException.class, () -> IOUtils.toByteArray(archive));
+        }
+    }
+
+    /**
+     * @see <a href="https://issues.apache.org/jira/browse/COMPRESS-523">COMPRESS-523</a>
+     */
+    @Test
+    public void testThrowsIfThereIsNoEocd() {
+        assertThrows(IOException.class, () -> fuzzingTest(new int[] { 0x50, 0x4b, 0x01, 0x02, 0x14, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+                0x00, 0x43, 0xbe, 0x00, 0x00, 0x00, 0xb7, 0xe8, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 }));
+    }
+
+    /**
+     * @see <a href="https://issues.apache.org/jira/browse/COMPRESS-518">COMPRESS-518</a>
+     */
+    @Test
+    public void testThrowsIfZip64ExtraCouldNotBeUnderstood() {
+        assertThrows(IOException.class,
+                () -> fuzzingTest(new int[] { 0x50, 0x4b, 0x03, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x84, 0xb6, 0xba, 0x46, 0x72, 0xb6, 0xfe, 0x77, 0x63,
+                        0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x62, 0x62, 0x62, 0x01, 0x00, 0x09, 0x00, 0x03, 0xe7, 0xce, 0x64,
+                        0x55, 0xf3, 0xce, 0x64, 0x55, 0x75, 0x78, 0x0b, 0x00, 0x01, 0x04, 0x5c, 0xf9, 0x01, 0x00, 0x04, 0x88, 0x13, 0x00, 0x00 }));
+    }
+
+    @Test
+    public void testThrowsIOExceptionIfThereIsCorruptedZip64Extra() throws IOException {
+        try (InputStream fis = newInputStream("COMPRESS-546.zip");
+                ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(fis)) {
+            assertThrows(IOException.class, () -> getAllZipEntries(zipInputStream));
+        }
+    }
+
     @Test
     public void testUnshrinkEntry() throws Exception {
         try (ZipArchiveInputStream in = new ZipArchiveInputStream(newInputStream("SHRUNK.ZIP"))) {
@@ -655,58 +709,4 @@ public class ZipArchiveInputStreamTest extends AbstractTest {
             getAllZipEntries(zipInputStream);
         }
     }
-
-    @Test
-    public void testThrowsIfStoredDDIsDifferentFromLengthRead() throws IOException {
-        try (InputStream fs = newInputStream("bla-stored-dd-contradicts-actualsize.zip");
-                ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
-            final ZipArchiveEntry e = archive.getNextZipEntry();
-            assertNotNull(e);
-            assertEquals("test1.xml", e.getName());
-            assertEquals(-1, e.getCompressedSize());
-            assertEquals(-1, e.getSize());
-            assertThrows(ZipException.class, () -> IOUtils.toByteArray(archive));
-        }
-    }
-
-    @Test
-    public void testThrowsIfStoredDDIsInconsistent() throws IOException {
-        try (InputStream fs = newInputStream("bla-stored-dd-sizes-differ.zip");
-                ZipArchiveInputStream archive = new ZipArchiveInputStream(fs, "UTF-8", true, true)) {
-            final ZipArchiveEntry e = archive.getNextZipEntry();
-            assertNotNull(e);
-            assertEquals("test1.xml", e.getName());
-            assertEquals(-1, e.getCompressedSize());
-            assertEquals(-1, e.getSize());
-            assertThrows(ZipException.class, () -> IOUtils.toByteArray(archive));
-        }
-    }
-
-    /**
-     * @see <a href="https://issues.apache.org/jira/browse/COMPRESS-523">COMPRESS-523</a>
-     */
-    @Test
-    public void testThrowsIfThereIsNoEocd() {
-        assertThrows(IOException.class, () -> fuzzingTest(new int[] { 0x50, 0x4b, 0x01, 0x02, 0x14, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
-                0x00, 0x43, 0xbe, 0x00, 0x00, 0x00, 0xb7, 0xe8, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 }));
-    }
-
-    /**
-     * @see <a href="https://issues.apache.org/jira/browse/COMPRESS-518">COMPRESS-518</a>
-     */
-    @Test
-    public void testThrowsIfZip64ExtraCouldNotBeUnderstood() {
-        assertThrows(IOException.class,
-                () -> fuzzingTest(new int[] { 0x50, 0x4b, 0x03, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x84, 0xb6, 0xba, 0x46, 0x72, 0xb6, 0xfe, 0x77, 0x63,
-                        0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x03, 0x00, 0x1c, 0x00, 0x62, 0x62, 0x62, 0x01, 0x00, 0x09, 0x00, 0x03, 0xe7, 0xce, 0x64,
-                        0x55, 0xf3, 0xce, 0x64, 0x55, 0x75, 0x78, 0x0b, 0x00, 0x01, 0x04, 0x5c, 0xf9, 0x01, 0x00, 0x04, 0x88, 0x13, 0x00, 0x00 }));
-    }
-
-    @Test
-    public void testThrowsIOExceptionIfThereIsCorruptedZip64Extra() throws IOException {
-        try (InputStream fis = newInputStream("COMPRESS-546.zip");
-                ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(fis)) {
-            assertThrows(IOException.class, () -> getAllZipEntries(zipInputStream));
-        }
-    }
 }
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
index 645588f35..77714979c 100644
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipFileTest.java
@@ -887,6 +887,13 @@ public class ZipFileTest extends AbstractTest {
         assertNotNull(zf.getEntry("test2.xml"));
     }
 
+    @Test
+    public void testThrowsExceptionWhenWritingPreamble() throws IOException {
+        final ZipArchiveOutputStream outputStream = new ZipArchiveOutputStream(new ByteArrayOutputStream());
+        outputStream.putArchiveEntry(new ZipArchiveEntry());
+        assertThrows(IllegalStateException.class, () -> outputStream.writePreamble(ByteUtils.EMPTY_BYTE_ARRAY));
+    }
+
     @Test
     public void testUnixSymlinkSampleFile() throws Exception {
         final String entryPrefix = "COMPRESS-214_unix_symlinks/";
@@ -965,11 +972,4 @@ public class ZipFileTest extends AbstractTest {
         assertNull(zf.getEntry("\u00e4\\\u00fc.txt"));
         assertNotNull(zf.getEntry("\u00e4/\u00fc.txt"));
     }
-
-    @Test
-    public void testThrowsExceptionWhenWritingPreamble() throws IOException {
-        final ZipArchiveOutputStream outputStream = new ZipArchiveOutputStream(new ByteArrayOutputStream());
-        outputStream.putArchiveEntry(new ZipArchiveEntry());
-        assertThrows(IllegalStateException.class, () -> outputStream.writePreamble(ByteUtils.EMPTY_BYTE_ARRAY));
-    }
 }
diff --git a/src/test/java/org/apache/commons/compress/harmony/pack200/tests/PackingOptionsTest.java b/src/test/java/org/apache/commons/compress/harmony/pack200/tests/PackingOptionsTest.java
index cdbd1cbfd..d89162f8a 100644
--- a/src/test/java/org/apache/commons/compress/harmony/pack200/tests/PackingOptionsTest.java
+++ b/src/test/java/org/apache/commons/compress/harmony/pack200/tests/PackingOptionsTest.java
@@ -107,23 +107,6 @@ public class PackingOptionsTest extends AbstractTempDirTest {
         assertThrows(IllegalArgumentException.class, () -> options.setDeflateHint("hello"), "Should throw IllegalArgumentException for incorrect deflate hint");
     }
 
-    @Test
-    public void testPackEffort0() throws Pack200Exception, IOException, URISyntaxException {
-        final File f1 = new File(Archive.class.getResource("/pack200/jndi.jar").toURI());
-        File file = createTempFile("jndiE0", ".pack");
-        try (JarFile in = new JarFile(f1);
-                FileOutputStream out = new FileOutputStream(file)) {
-            final PackingOptions options = new PackingOptions();
-            options.setGzip(false);
-            options.setEffort(0);
-            new Archive(in, out, options).pack();
-        }
-        try (JarFile jf1 = new JarFile(f1);
-                JarFile jf2 = new JarFile(file)) {
-            compareFiles(jf1, jf2);
-        }
-    }
-
     @Test
     public void testErrorAttributes() throws Exception {
         File file = createTempFile("unknown", ".pack");
@@ -359,13 +342,6 @@ public class PackingOptionsTest extends AbstractTempDirTest {
         }
     }
 
-    private void unpackJar(final File sourceFile, final File destFile) throws Pack200Exception, IOException, FileNotFoundException {
-        try (InputStream in2 = new FileInputStream(sourceFile);
-                JarOutputStream out2 = new JarOutputStream(new FileOutputStream(destFile))) {
-            unpack(in2, out2);
-        }
-    }
-
     @Test
     public void testNewAttributes2() throws Exception {
         File file = createTempFile("unknown", ".pack");
@@ -391,6 +367,23 @@ public class PackingOptionsTest extends AbstractTempDirTest {
         }
     }
 
+    @Test
+    public void testPackEffort0() throws Pack200Exception, IOException, URISyntaxException {
+        final File f1 = new File(Archive.class.getResource("/pack200/jndi.jar").toURI());
+        File file = createTempFile("jndiE0", ".pack");
+        try (JarFile in = new JarFile(f1);
+                FileOutputStream out = new FileOutputStream(file)) {
+            final PackingOptions options = new PackingOptions();
+            options.setGzip(false);
+            options.setEffort(0);
+            new Archive(in, out, options).pack();
+        }
+        try (JarFile jf1 = new JarFile(f1);
+                JarFile jf2 = new JarFile(file)) {
+            compareFiles(jf1, jf2);
+        }
+    }
+
     @Test
     public void testPassAttributes() throws Exception {
         File file = createTempFile("unknown", ".pack");
@@ -499,22 +492,6 @@ public class PackingOptionsTest extends AbstractTempDirTest {
         }
     }
 
-    // public void testE0again() throws IOException, Pack200Exception,
-    // URISyntaxException {
-    // JarInputStream inputStream = new
-    // JarInputStream(Archive.class.getResourceAsStream("/pack200/jndi.jar"));
-    // file = File.createTempFile("jndiE0", ".pack");
-    // out = new FileOutputStream(file);
-    // Archive archive = new Archive(inputStream, out, false);
-    // archive.setEffort(0);
-    // archive.pack();
-    // inputStream.close();
-    // out.close();
-    // in = new JarFile(new File(Archive.class.getResource(
-    // "/pack200/jndi.jar").toURI()));
-    // compareFiles(in, new JarFile(file));
-    // }
-
     @Test
     public void testStripDebug() throws IOException, Pack200Exception, URISyntaxException {
         File file = createTempFile("sql", ".pack");
@@ -539,8 +516,31 @@ public class PackingOptionsTest extends AbstractTempDirTest {
         }
     }
 
+    // public void testE0again() throws IOException, Pack200Exception,
+    // URISyntaxException {
+    // JarInputStream inputStream = new
+    // JarInputStream(Archive.class.getResourceAsStream("/pack200/jndi.jar"));
+    // file = File.createTempFile("jndiE0", ".pack");
+    // out = new FileOutputStream(file);
+    // Archive archive = new Archive(inputStream, out, false);
+    // archive.setEffort(0);
+    // archive.pack();
+    // inputStream.close();
+    // out.close();
+    // in = new JarFile(new File(Archive.class.getResource(
+    // "/pack200/jndi.jar").toURI()));
+    // compareFiles(in, new JarFile(file));
+    // }
+
     private void unpack(final InputStream inputStream, final JarOutputStream outputStream) throws Pack200Exception, IOException {
         new org.apache.commons.compress.harmony.unpack200.Archive(inputStream, outputStream).unpack();
     }
 
+    private void unpackJar(final File sourceFile, final File destFile) throws Pack200Exception, IOException, FileNotFoundException {
+        try (InputStream in2 = new FileInputStream(sourceFile);
+                JarOutputStream out2 = new JarOutputStream(new FileOutputStream(destFile))) {
+            unpack(in2, out2);
+        }
+    }
+
 }
diff --git a/src/test/java/org/apache/commons/compress/utils/MultiReadOnlySeekableByteChannelTest.java b/src/test/java/org/apache/commons/compress/utils/MultiReadOnlySeekableByteChannelTest.java
index 29b758c7c..735c93907 100644
--- a/src/test/java/org/apache/commons/compress/utils/MultiReadOnlySeekableByteChannelTest.java
+++ b/src/test/java/org/apache/commons/compress/utils/MultiReadOnlySeekableByteChannelTest.java
@@ -299,30 +299,6 @@ public class MultiReadOnlySeekableByteChannelTest {
 
     // https://docs.oracle.com/javase/7/docs/api/java/io/Closeable.html#close()
 
-    @Test
-    public void testVerifyGrouped() {
-        assertArrayEquals(new byte[][] { new byte[] { 1, 2, 3, }, new byte[] { 4, 5, 6, }, new byte[] { 7, }, },
-                grouped(new byte[] { 1, 2, 3, 4, 5, 6, 7 }, 3));
-        assertArrayEquals(new byte[][] { new byte[] { 1, 2, 3, }, new byte[] { 4, 5, 6, }, }, grouped(new byte[] { 1, 2, 3, 4, 5, 6 }, 3));
-        assertArrayEquals(new byte[][] { new byte[] { 1, 2, 3, }, new byte[] { 4, 5, }, }, grouped(new byte[] { 1, 2, 3, 4, 5, }, 3));
-    }
-
-    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#position()
-
-    /*
-     * <q>ClosedChannelException - If this channel is closed</q>
-     */
-    @Test
-    @Disabled("we deliberately violate the spec")
-    public void throwsClosedChannelExceptionWhenPositionIsReadOnClosedChannel() throws Exception {
-        try (SeekableByteChannel c = testChannel()) {
-            c.close();
-            c.position();
-        }
-    }
-
-    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#size()
-
     /*
      * <q>ClosedChannelException - If this channel is closed</q>
      */
@@ -334,7 +310,7 @@ public class MultiReadOnlySeekableByteChannelTest {
         }
     }
 
-    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#position(long)
+    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#position()
 
     /*
      * <q>ClosedChannelException - If this channel is closed</q>
@@ -347,6 +323,8 @@ public class MultiReadOnlySeekableByteChannelTest {
         }
     }
 
+    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#size()
+
     /*
      * <q>IOException - If the new position is negative</q>
      */
@@ -357,6 +335,8 @@ public class MultiReadOnlySeekableByteChannelTest {
         }
     }
 
+    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#position(long)
+
     @Test
     public void testTwoEmptyChannelsConcatenateAsEmptyChannel() throws IOException {
         try (SeekableByteChannel channel = MultiReadOnlySeekableByteChannel.forSeekableByteChannels(makeEmpty(), makeEmpty())) {
@@ -364,4 +344,24 @@ public class MultiReadOnlySeekableByteChannelTest {
         }
     }
 
+    @Test
+    public void testVerifyGrouped() {
+        assertArrayEquals(new byte[][] { new byte[] { 1, 2, 3, }, new byte[] { 4, 5, 6, }, new byte[] { 7, }, },
+                grouped(new byte[] { 1, 2, 3, 4, 5, 6, 7 }, 3));
+        assertArrayEquals(new byte[][] { new byte[] { 1, 2, 3, }, new byte[] { 4, 5, 6, }, }, grouped(new byte[] { 1, 2, 3, 4, 5, 6 }, 3));
+        assertArrayEquals(new byte[][] { new byte[] { 1, 2, 3, }, new byte[] { 4, 5, }, }, grouped(new byte[] { 1, 2, 3, 4, 5, }, 3));
+    }
+
+    /*
+     * <q>ClosedChannelException - If this channel is closed</q>
+     */
+    @Test
+    @Disabled("we deliberately violate the spec")
+    public void throwsClosedChannelExceptionWhenPositionIsReadOnClosedChannel() throws Exception {
+        try (SeekableByteChannel c = testChannel()) {
+            c.close();
+            c.position();
+        }
+    }
+
 }
diff --git a/src/test/java/org/apache/commons/compress/utils/SeekableInMemoryByteChannelTest.java b/src/test/java/org/apache/commons/compress/utils/SeekableInMemoryByteChannelTest.java
index 9dea2c53d..e6071df8d 100644
--- a/src/test/java/org/apache/commons/compress/utils/SeekableInMemoryByteChannelTest.java
+++ b/src/test/java/org/apache/commons/compress/utils/SeekableInMemoryByteChannelTest.java
@@ -237,20 +237,6 @@ public class SeekableInMemoryByteChannelTest {
 
     // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#size()
 
-    /*
-     * <q>ClosedChannelException - If this channel is closed</q>
-     */
-    @Test
-    @Disabled("we deliberately violate the spec")
-    public void throwsClosedChannelExceptionWhenPositionIsReadOnClosedChannel() throws Exception {
-        try (SeekableByteChannel c = new SeekableInMemoryByteChannel()) {
-            c.close();
-            c.position();
-        }
-    }
-
-    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#position(long)
-
     /*
      * <q>ClosedChannelException - If this channel is closed</q>
      */
@@ -262,29 +248,7 @@ public class SeekableInMemoryByteChannelTest {
         }
     }
 
-    /*
-     * <q>ClosedChannelException - If this channel is closed</q>
-     */
-    @Test
-    @Disabled("we deliberately violate the spec")
-    public void throwsClosedChannelExceptionWhenSizeIsReadOnClosedChannel() throws Exception {
-        try (SeekableByteChannel c = new SeekableInMemoryByteChannel()) {
-            c.close();
-            c.size();
-        }
-    }
-
-    /*
-     * <q>ClosedChannelException - If this channel is closed</q>
-     */
-    @Test
-    @Disabled("we deliberately violate the spec")
-    public void throwsClosedChannelExceptionWhenTruncateIsCalledOnClosedChannel() throws Exception {
-        try (SeekableByteChannel c = new SeekableInMemoryByteChannel()) {
-            c.close();
-            c.truncate(0);
-        }
-    }
+    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#position(long)
 
     /*
      * <q>IllegalArgumentException - If the new position is negative</q>
@@ -296,8 +260,6 @@ public class SeekableInMemoryByteChannelTest {
         }
     }
 
-    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#truncate(long)
-
     /*
      * <q>IOException - If the new position is negative</q>
      */
@@ -334,6 +296,8 @@ public class SeekableInMemoryByteChannelTest {
         }
     }
 
+    // https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html#truncate(long)
+
     /*
      * <q> In either case, if the current position is greater than the given size then it is set to that size.</q>
      */
@@ -390,6 +354,42 @@ public class SeekableInMemoryByteChannelTest {
         }
     }
 
+    /*
+     * <q>ClosedChannelException - If this channel is closed</q>
+     */
+    @Test
+    @Disabled("we deliberately violate the spec")
+    public void throwsClosedChannelExceptionWhenPositionIsReadOnClosedChannel() throws Exception {
+        try (SeekableByteChannel c = new SeekableInMemoryByteChannel()) {
+            c.close();
+            c.position();
+        }
+    }
+
+    /*
+     * <q>ClosedChannelException - If this channel is closed</q>
+     */
+    @Test
+    @Disabled("we deliberately violate the spec")
+    public void throwsClosedChannelExceptionWhenSizeIsReadOnClosedChannel() throws Exception {
+        try (SeekableByteChannel c = new SeekableInMemoryByteChannel()) {
+            c.close();
+            c.size();
+        }
+    }
+
+    /*
+     * <q>ClosedChannelException - If this channel is closed</q>
+     */
+    @Test
+    @Disabled("we deliberately violate the spec")
+    public void throwsClosedChannelExceptionWhenTruncateIsCalledOnClosedChannel() throws Exception {
+        try (SeekableByteChannel c = new SeekableInMemoryByteChannel()) {
+            c.close();
+            c.truncate(0);
+        }
+    }
+
     /*
      * <q>Setting the position to a value that is greater than the current size is legal but does not change the size of the entity. A later attempt to write
      * bytes at such a position will cause the entity to grow to accommodate the new bytes; the values of any bytes between the previous end-of-file and the