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 0085d3ae4 Reuse NIO API instead of custom code
0085d3ae4 is described below
commit 0085d3ae46b02bd381f7d539dc1cac1c12b1258f
Author: Gary Gregory <[email protected]>
AuthorDate: Tue Nov 14 16:38:59 2023 -0500
Reuse NIO API instead of custom code
---
.../commons/compress/AbstractTempDirTest.java | 4 ++++
.../org/apache/commons/compress/AbstractTest.java | 4 ++++
.../compress/archivers/sevenz/SevenZFileTest.java | 2 +-
.../archivers/zip/ZipArchiveInputStreamTest.java | 9 ++++----
.../compress/archivers/zip/ZipFileTest.java | 2 +-
.../archivers/zip/ZipMemoryFileSystemTest.java | 10 ++++-----
.../commons/compress/compressors/GZipTest.java | 4 ++--
.../commons/compress/compressors/LZMATest.java | 7 +++---
.../lz4/FramedLZ4CompressorOutputStreamTest.java | 4 +++-
.../FramedSnappyCompressorInputStreamTest.java | 11 ++++-----
.../compressors/snappy/SnappyRoundtripTest.java | 26 +++++++++++-----------
.../compressors/z/ZCompressorInputStreamTest.java | 2 +-
.../compressors/zstandard/ZstdRoundtripTest.java | 17 +++++++-------
13 files changed, 56 insertions(+), 46 deletions(-)
diff --git a/src/test/java/org/apache/commons/compress/AbstractTempDirTest.java
b/src/test/java/org/apache/commons/compress/AbstractTempDirTest.java
index 12ca94c39..14c86a1aa 100644
--- a/src/test/java/org/apache/commons/compress/AbstractTempDirTest.java
+++ b/src/test/java/org/apache/commons/compress/AbstractTempDirTest.java
@@ -58,4 +58,8 @@ public class AbstractTempDirTest {
return new File(getTempDirFile(), child);
}
+ protected Path newTempPath(final String child) {
+ return getTempDirPath().resolve(child);
+ }
+
}
diff --git a/src/test/java/org/apache/commons/compress/AbstractTest.java
b/src/test/java/org/apache/commons/compress/AbstractTest.java
index f28b4bb56..01db384ef 100644
--- a/src/test/java/org/apache/commons/compress/AbstractTest.java
+++ b/src/test/java/org/apache/commons/compress/AbstractTest.java
@@ -101,6 +101,10 @@ public abstract class AbstractTest extends
AbstractTempDirTest {
return Files.newInputStream(getPath(path));
}
+ public static byte[] readAllBytes(final String path) throws IOException {
+ return Files.readAllBytes(getPath(path));
+ }
+
@TempDir
protected File tempResultDir;
diff --git
a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
index a922ae03b..0c0789ba7 100644
---
a/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
+++
b/src/test/java/org/apache/commons/compress/archivers/sevenz/SevenZFileTest.java
@@ -299,7 +299,7 @@ public class SevenZFileTest extends AbstractTest {
@Test
public void testGetEntriesOfUnarchiveInMemoryTest() throws IOException {
- final byte[] data = Files.readAllBytes(getFile("bla.7z").toPath());
+ final byte[] data = readAllBytes("bla.7z");
try (SevenZFile sevenZFile = new SevenZFile(new
SeekableInMemoryByteChannel(data))) {
final Iterable<SevenZArchiveEntry> entries =
sevenZFile.getEntries();
final Iterator<SevenZArchiveEntry> iter = entries.iterator();
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 1f2333c67..d182fe3b9 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
@@ -215,7 +215,7 @@ public class ZipArchiveInputStreamTest extends AbstractTest
{
@Test
public void testMultiByteReadThrowsAtEofForCorruptedStoredEntry() throws
Exception {
- final byte[] content =
Files.readAllBytes(getFile("COMPRESS-264.zip").toPath());
+ final byte[] content = readAllBytes("COMPRESS-264.zip");
// make size much bigger than entry's real size
for (int i = 17; i < 26; i++) {
content[i] = (byte) 0xff;
@@ -359,10 +359,9 @@ public class ZipArchiveInputStreamTest extends
AbstractTest {
*/
@Test
public void testReadDeflate64CompressedStream() throws Exception {
- final Path input = getPath("COMPRESS-380/COMPRESS-380-input");
+ final byte[] orig = readAllBytes("COMPRESS-380/COMPRESS-380-input");
final File archive = getFile("COMPRESS-380/COMPRESS-380.zip");
try (ZipArchiveInputStream zin = new
ZipArchiveInputStream(Files.newInputStream(archive.toPath()))) {
- final byte[] orig = Files.readAllBytes(input);
final ZipArchiveEntry e = zin.getNextZipEntry();
final byte[] fromZip = IOUtils.toByteArray(zin);
assertArrayEquals(orig, fromZip);
@@ -466,7 +465,7 @@ public class ZipArchiveInputStreamTest extends AbstractTest
{
@Test
public void testSingleByteReadThrowsAtEofForCorruptedStoredEntry() throws
Exception {
- final byte[] content =
Files.readAllBytes(getFile("COMPRESS-264.zip").toPath());
+ final byte[] content = readAllBytes("COMPRESS-264.zip");
// make size much bigger than entry's real size
for (int i = 17; i < 26; i++) {
content[i] = (byte) 0xff;
@@ -648,7 +647,7 @@ public class ZipArchiveInputStreamTest extends AbstractTest
{
assertTrue(in.canReadEntryData(entry));
}
- assertArrayEquals(Files.readAllBytes(getPath("test2.xml")),
IOUtils.toByteArray(in));
+ assertArrayEquals(readAllBytes("test2.xml"),
IOUtils.toByteArray(in));
}
}
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 14bf5e9a1..5a7cd66f3 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
@@ -241,7 +241,7 @@ public class ZipFileTest extends AbstractTest {
@Test
public void testCDOrderInMemory() throws Exception {
- final byte[] data = Files.readAllBytes(getPath("ordertest.zip"));
+ final byte[] data = readAllBytes("ordertest.zip");
try (SeekableInMemoryByteChannel channel = new
SeekableInMemoryByteChannel(data)) {
zf = new ZipFile(channel, CharsetNames.UTF_8);
diff --git
a/src/test/java/org/apache/commons/compress/archivers/zip/ZipMemoryFileSystemTest.java
b/src/test/java/org/apache/commons/compress/archivers/zip/ZipMemoryFileSystemTest.java
index 479467423..bb6d9eddd 100644
---
a/src/test/java/org/apache/commons/compress/archivers/zip/ZipMemoryFileSystemTest.java
+++
b/src/test/java/org/apache/commons/compress/archivers/zip/ZipMemoryFileSystemTest.java
@@ -46,6 +46,7 @@ import java.util.stream.Stream;
import java.util.zip.Deflater;
import java.util.zip.ZipEntry;
+import org.apache.commons.compress.AbstractTest;
import org.apache.commons.compress.archivers.ArchiveException;
import org.apache.commons.compress.archivers.ArchiveOutputStream;
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
@@ -116,12 +117,9 @@ public class ZipMemoryFileSystemTest {
@Test
public void testPositionToSomeZipSplitSegmentInMemory() throws IOException
{
- final Path firstFile =
getPath("COMPRESS-477/split_zip_created_by_zip/split_zip_created_by_zip.z01");
- final Path secondFile =
getPath("COMPRESS-477/split_zip_created_by_zip/split_zip_created_by_zip.z02");
- final Path lastFile =
getPath("COMPRESS-477/split_zip_created_by_zip/split_zip_created_by_zip.zip");
- final byte[] firstBytes = Files.readAllBytes(firstFile);
- final byte[] secondBytes = Files.readAllBytes(secondFile);
- final byte[] lastBytes = Files.readAllBytes(lastFile);
+ final byte[] firstBytes =
AbstractTest.readAllBytes("COMPRESS-477/split_zip_created_by_zip/split_zip_created_by_zip.z01");
+ final byte[] secondBytes =
AbstractTest.readAllBytes("COMPRESS-477/split_zip_created_by_zip/split_zip_created_by_zip.z02");
+ final byte[] lastBytes =
AbstractTest.readAllBytes("COMPRESS-477/split_zip_created_by_zip/split_zip_created_by_zip.zip");
final int firstFileSize = firstBytes.length;
final int secondFileSize = secondBytes.length;
final int lastFileSize = lastBytes.length;
diff --git
a/src/test/java/org/apache/commons/compress/compressors/GZipTest.java
b/src/test/java/org/apache/commons/compress/compressors/GZipTest.java
index e61e48da2..00f6310d4 100644
--- a/src/test/java/org/apache/commons/compress/compressors/GZipTest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/GZipTest.java
@@ -73,7 +73,7 @@ public final class GZipTest extends AbstractTest {
*/
@Test
public void testCorruptedInput() throws Exception {
- final byte[] data = Files.readAllBytes(getPath("bla.tgz"));
+ final byte[] data = readAllBytes("bla.tgz");
try (InputStream in = new ByteArrayInputStream(data, 0, data.length -
1);
CompressorInputStream cin = new
CompressorStreamFactory().createCompressorInputStream("gz", in);
OutputStream out = new ByteArrayOutputStream()) {
@@ -82,7 +82,7 @@ public final class GZipTest extends AbstractTest {
}
private void testExtraFlags(final int compressionLevel, final int flag,
final int bufferSize) throws Exception {
- final byte[] content =
Files.readAllBytes(getFile("test3.xml").toPath());
+ final byte[] content = readAllBytes("test3.xml");
final ByteArrayOutputStream bout = new ByteArrayOutputStream();
diff --git
a/src/test/java/org/apache/commons/compress/compressors/LZMATest.java
b/src/test/java/org/apache/commons/compress/compressors/LZMATest.java
index fe4c47ceb..8604e9eff 100644
--- a/src/test/java/org/apache/commons/compress/compressors/LZMATest.java
+++ b/src/test/java/org/apache/commons/compress/compressors/LZMATest.java
@@ -27,6 +27,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
+import java.nio.file.Path;
import org.apache.commons.compress.AbstractTest;
import org.apache.commons.compress.compressors.lzma.LZMACompressorInputStream;
@@ -37,14 +38,14 @@ public final class LZMATest extends AbstractTest {
@Test
public void testLzmaRoundtrip() throws Exception {
- final File input = getFile("test1.xml");
+ final Path input = getPath("test1.xml");
final File compressed = newTempFile("test1.xml.xz");
try (OutputStream out = Files.newOutputStream(compressed.toPath())) {
try (CompressorOutputStream cos = new
CompressorStreamFactory().createCompressorOutputStream("lzma", out)) {
- Files.copy(input.toPath(), cos);
+ Files.copy(input, cos);
}
}
- final byte[] orig = Files.readAllBytes(input.toPath());
+ final byte[] orig = Files.readAllBytes(input);
final byte[] uncompressed;
try (InputStream is = Files.newInputStream(compressed.toPath());
CompressorInputStream in = new LZMACompressorInputStream(is)) {
uncompressed = IOUtils.toByteArray(in);
diff --git
a/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStreamTest.java
b/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStreamTest.java
index 4a262a97c..fd05889cf 100644
---
a/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStreamTest.java
+++
b/src/test/java/org/apache/commons/compress/compressors/lz4/FramedLZ4CompressorOutputStreamTest.java
@@ -18,10 +18,12 @@
*/
package org.apache.commons.compress.compressors.lz4;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Arrays;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+
import org.junit.jupiter.api.Test;
public class FramedLZ4CompressorOutputStreamTest {
diff --git
a/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java
b/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java
index 74a7cedc8..47c4aeee6 100644
---
a/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java
+++
b/src/test/java/org/apache/commons/compress/compressors/snappy/FramedSnappyCompressorInputStreamTest.java
@@ -30,6 +30,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
+import java.nio.file.Path;
import org.apache.commons.compress.AbstractTest;
import org.apache.commons.compress.archivers.zip.ZipFile;
@@ -73,19 +74,19 @@ public final class FramedSnappyCompressorInputStreamTest
extends AbstractTest {
*/
@Test
public void testLoremIpsum() throws Exception {
- final File outputSz = newTempFile("lorem-ipsum.1");
- final File outputGz = newTempFile("lorem-ipsum.2");
+ final Path outputSz = newTempPath("lorem-ipsum.1");
+ final Path outputGz = newTempPath("lorem-ipsum.2");
try (InputStream isSz = newInputStream("lorem-ipsum.txt.sz")) {
try (InputStream in = new FramedSnappyCompressorInputStream(isSz))
{
- Files.copy(in, outputSz.toPath());
+ Files.copy(in, outputSz);
}
try (InputStream isGz = newInputStream("lorem-ipsum.txt.gz");
InputStream in = new GzipCompressorInputStream(isGz)) {
- Files.copy(in, outputGz.toPath());
+ Files.copy(in, outputGz);
}
}
- assertArrayEquals(Files.readAllBytes(outputSz.toPath()),
Files.readAllBytes(outputGz.toPath()));
+ assertArrayEquals(Files.readAllBytes(outputSz),
Files.readAllBytes(outputGz));
}
@Test
diff --git
a/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java
b/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java
index 77b81857b..a5b73c249 100644
---
a/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java
+++
b/src/test/java/org/apache/commons/compress/compressors/snappy/SnappyRoundtripTest.java
@@ -24,9 +24,9 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Random;
import org.apache.commons.compress.AbstractTest;
@@ -65,18 +65,18 @@ public final class SnappyRoundtripTest extends AbstractTest
{
// System.err.println("byte array" + " read after " +
(System.currentTimeMillis() - start) + "ms");
}
- private void roundTripTest(final File input, final Parameters params)
throws IOException {
+ private void roundTripTest(final Path input, final Parameters params)
throws IOException {
long start = System.currentTimeMillis();
- final File outputSz = newTempFile(input.getName() + ".raw.sz");
+ final File outputSz = newTempFile(input.getFileName() + ".raw.sz");
try (OutputStream os = Files.newOutputStream(outputSz.toPath());
- SnappyCompressorOutputStream sos = new
SnappyCompressorOutputStream(os, input.length(), params)) {
- Files.copy(input.toPath(), sos);
+ SnappyCompressorOutputStream sos = new
SnappyCompressorOutputStream(os, Files.size(input), params)) {
+ Files.copy(input, sos);
}
// System.err.println(input.getName() + " written, uncompressed bytes:
" + input.length()
// + ", compressed bytes: " + outputSz.length() + " after " +
(System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
try (SnappyCompressorInputStream sis = new
SnappyCompressorInputStream(Files.newInputStream(outputSz.toPath()),
params.getWindowSize())) {
- final byte[] expected = Files.readAllBytes(input.toPath());
+ final byte[] expected = Files.readAllBytes(input);
final byte[] actual = IOUtils.toByteArray(sis);
assertArrayEquals(expected, actual);
}
@@ -84,7 +84,7 @@ public final class SnappyRoundtripTest extends AbstractTest {
}
private void roundTripTest(final String testFile) throws IOException {
- roundTripTest(getFile(testFile),
+ roundTripTest(getPath(testFile),
SnappyCompressorOutputStream.createParameterBuilder(SnappyCompressorInputStream.DEFAULT_BLOCK_SIZE)
.build());
}
@@ -105,7 +105,7 @@ public final class SnappyRoundtripTest extends AbstractTest
{
@Test
public void testBlaTarRoundtripTunedForCompressionRatio() throws
IOException {
// System.err.println("Configuration: tuned for compression ratio");
- roundTripTest(getFile("bla.tar"),
+ roundTripTest(getPath("bla.tar"),
SnappyCompressorOutputStream.createParameterBuilder(SnappyCompressorInputStream.DEFAULT_BLOCK_SIZE)
.tunedForCompressionRatio()
.build());
@@ -114,7 +114,7 @@ public final class SnappyRoundtripTest extends AbstractTest
{
@Test
public void testBlaTarRoundtripTunedForSpeed() throws IOException {
// System.err.println("Configuration: tuned for speed");
- roundTripTest(getFile("bla.tar"),
+ roundTripTest(getPath("bla.tar"),
SnappyCompressorOutputStream.createParameterBuilder(SnappyCompressorInputStream.DEFAULT_BLOCK_SIZE)
.tunedForSpeed()
.build());
@@ -172,14 +172,14 @@ public final class SnappyRoundtripTest extends
AbstractTest {
// The four byte methods would require even more luck and a
// buffer (and a file written to disk) that was 2^5 bigger
// than the buffer used here.
- final File f = newTempFile("reallyBigLiteralTest");
- try (OutputStream fs = Files.newOutputStream(f.toPath())) {
+ final Path path = newTempPath("reallyBigLiteralTest");
+ try (OutputStream outputStream = Files.newOutputStream(path)) {
final int cnt = 1 << 19;
final Random r = new Random();
for (int i = 0 ; i < cnt; i++) {
- fs.write(r.nextInt(256));
+ outputStream.write(r.nextInt(256));
}
}
- roundTripTest(f, newParameters(1 << 18, 4, 64, 1 << 16 - 1, 1 << 18 -
1));
+ roundTripTest(path, newParameters(1 << 18, 4, 64, 1 << 16 - 1, 1 << 18
- 1));
}
}
diff --git
a/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java
b/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java
index 450909205..dd2624cf2 100644
---
a/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java
+++
b/src/test/java/org/apache/commons/compress/compressors/z/ZCompressorInputStreamTest.java
@@ -50,7 +50,7 @@ public class ZCompressorInputStreamTest {
@Test
public void testInvalidMaxCodeSize() throws IOException {
- final byte[] bytes =
Files.readAllBytes(AbstractTest.getPath("bla.tar.Z"));
+ final byte[] bytes = AbstractTest.readAllBytes("bla.tar.Z");
// @formatter:off
final IntStream[] invalid = {
diff --git
a/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java
b/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java
index 6d37be032..009b4e80c 100644
---
a/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java
+++
b/src/test/java/org/apache/commons/compress/compressors/zstandard/ZstdRoundtripTest.java
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
+import java.nio.file.Path;
import org.apache.commons.compress.AbstractTest;
import org.apache.commons.compress.compressors.CompressorInputStream;
@@ -40,18 +41,18 @@ public class ZstdRoundtripTest extends AbstractTest {
}
private void roundtrip(final OutputStreamCreator oc) throws IOException {
- final File input = getFile("bla.tar");
+ final Path input = getPath("bla.tar");
long start = System.currentTimeMillis();
- final File output = newTempFile(input.getName() + ".zstd");
+ final File output = newTempFile(input.getFileName() + ".zstd");
try (FileOutputStream os = new FileOutputStream(output);
ZstdCompressorOutputStream zos = oc.wrap(os)) {
- Files.copy(input.toPath(), zos);
+ Files.copy(input, zos);
}
//System.err.println(input.getName() + " written, uncompressed bytes:
" + input.length()
// + ", compressed bytes: " + output.length() + " after " +
(System.currentTimeMillis() - start) + "ms");
start = System.currentTimeMillis();
try (ZstdCompressorInputStream zis = new
ZstdCompressorInputStream(Files.newInputStream(output.toPath()))) {
- final byte[] expected = Files.readAllBytes(input.toPath());
+ final byte[] expected = Files.readAllBytes(input);
final byte[] actual = IOUtils.toByteArray(zis);
assertArrayEquals(expected, actual);
}
@@ -65,17 +66,17 @@ public class ZstdRoundtripTest extends AbstractTest {
@Test
public void testFactoryRoundtrip() throws Exception {
- final File input = getFile("bla.tar");
+ final Path input = getPath("bla.tar");
long start = System.currentTimeMillis();
- final File output = newTempFile(input.getName() + ".zstd");
+ final File output = newTempFile(input.getFileName() + ".zstd");
try (OutputStream os = Files.newOutputStream(output.toPath());
CompressorOutputStream zos = new
CompressorStreamFactory().createCompressorOutputStream("zstd", os)) {
- Files.copy(input.toPath(), zos);
+ Files.copy(input, zos);
}
start = System.currentTimeMillis();
try (final InputStream inputStream =
Files.newInputStream(output.toPath());
CompressorInputStream zis = new
CompressorStreamFactory().createCompressorInputStream("zstd", inputStream)) {
- final byte[] expected = Files.readAllBytes(input.toPath());
+ final byte[] expected = Files.readAllBytes(input);
final byte[] actual = IOUtils.toByteArray(zis);
assertArrayEquals(expected, actual);
}