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 1540cfd0 Port some test code from IO to NIO APIs 1540cfd0 is described below commit 1540cfd065b46a5483fb7ad247ed4643543b945e Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Fri Jan 27 17:34:40 2023 -0500 Port some test code from IO to NIO APIs --- .../apache/commons/compress/AbstractTestCase.java | 41 ++++++--- .../commons/compress/DetectArchiverTestCase.java | 8 +- .../org/apache/commons/compress/IOMethodsTest.java | 12 +-- .../compress/changes/ChangeSetTestCase.java | 101 +++++++++++---------- 4 files changed, 88 insertions(+), 74 deletions(-) diff --git a/src/test/java/org/apache/commons/compress/AbstractTestCase.java b/src/test/java/org/apache/commons/compress/AbstractTestCase.java index 719920c8..19bd49d0 100644 --- a/src/test/java/org/apache/commons/compress/AbstractTestCase.java +++ b/src/test/java/org/apache/commons/compress/AbstractTestCase.java @@ -119,11 +119,24 @@ public abstract class AbstractTestCase { return true; } + /** + * Accommodate Windows bug encountered in both Sun and IBM JDKs. + * Others possible. If the delete does not work, call System.gc(), + * wait a little and try again. + * + * Copied from FileUtils in Ant 1.8.0. + * + * @return whether deletion was successful + */ + public static boolean tryHardToDelete(final Path f) { + return tryHardToDelete(f != null ? f.toFile() : null); + } + protected File dir; protected File resultDir; - private File archive; // used to delete the archive in tearDown + private Path archive; // used to delete the archive in tearDown protected List<String> archiveList; // Lists the content of the archive as originally created @@ -263,15 +276,15 @@ public abstract class AbstractTestCase { * @throws Exception * in case something goes wrong */ - protected File createArchive(final String archivename) throws Exception { + protected Path createArchive(final String archivename) throws Exception { ArchiveOutputStream out = null; OutputStream stream = null; try { - archive = File.createTempFile("test", "." + archivename); - archive.deleteOnExit(); + archive = Files.createTempFile("test", "." + archivename); + archive.toFile().deleteOnExit(); archiveList = new ArrayList<>(); - stream = Files.newOutputStream(archive.toPath()); + stream = Files.newOutputStream(archive); out = factory.createArchiveOutputStream(archivename, stream); final File file1 = getFile("test1.xml"); @@ -308,14 +321,14 @@ public abstract class AbstractTestCase { * @return the archive File * @throws Exception */ - protected File createEmptyArchive(final String archivename) throws Exception { + protected Path createEmptyArchive(final String archivename) throws Exception { ArchiveOutputStream out = null; OutputStream stream = null; archiveList = new ArrayList<>(); try { - archive = File.createTempFile("empty", "." + archivename); - archive.deleteOnExit(); - stream = Files.newOutputStream(archive.toPath()); + archive = Files.createTempFile("empty", "." + archivename); + archive.toFile().deleteOnExit(); + stream = Files.newOutputStream(archive); out = factory.createArchiveOutputStream(archivename, stream); out.finish(); } finally { @@ -335,14 +348,14 @@ public abstract class AbstractTestCase { * @return the archive File * @throws Exception */ - protected File createSingleEntryArchive(final String archivename) throws Exception { + protected Path createSingleEntryArchive(final String archivename) throws Exception { ArchiveOutputStream out = null; OutputStream stream = null; archiveList = new ArrayList<>(); try { - archive = File.createTempFile("empty", "." + archivename); - archive.deleteOnExit(); - stream = Files.newOutputStream(archive.toPath()); + archive = Files.createTempFile("empty", "." + archivename); + archive.toFile().deleteOnExit(); + stream = Files.newOutputStream(archive); out = factory.createArchiveOutputStream(archivename, stream); // Use short file name so does not cause problems for ar addArchiveEntry(out, "test1.xml", getFile("test1.xml")); @@ -403,7 +416,7 @@ public abstract class AbstractTestCase { dir = resultDir = null; if (!tryHardToDelete(archive)) { // Note: this exception won't be shown if the test has already failed - throw new Exception("Could not delete " + archive.getPath()); + throw new Exception("Could not delete " + archive); } } } diff --git a/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java b/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java index b81cdfe1..118b2245 100644 --- a/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java +++ b/src/test/java/org/apache/commons/compress/DetectArchiverTestCase.java @@ -24,9 +24,9 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.BufferedInputStream; -import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import org.apache.commons.compress.archivers.ArchiveException; import org.apache.commons.compress.archivers.ArchiveInputStream; @@ -42,10 +42,10 @@ public final class DetectArchiverTestCase extends AbstractTestCase { final ClassLoader classLoader = getClass().getClassLoader(); private void checkEmptyArchive(final String type) throws Exception{ - final File ar = createEmptyArchive(type); // will be deleted by tearDown() - ar.deleteOnExit(); // Just in case file cannot be deleted + final Path ar = createEmptyArchive(type); // will be deleted by tearDown() + ar.toFile().deleteOnExit(); // Just in case file cannot be deleted assertDoesNotThrow(() -> { - try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(ar.toPath())); + try (BufferedInputStream in = new BufferedInputStream(Files.newInputStream(ar)); ArchiveInputStream ais = factory.createArchiveInputStream(in)) { } }, "Should have recognized empty archive for " + type); diff --git a/src/test/java/org/apache/commons/compress/IOMethodsTest.java b/src/test/java/org/apache/commons/compress/IOMethodsTest.java index 6eab627e..2d54fae8 100644 --- a/src/test/java/org/apache/commons/compress/IOMethodsTest.java +++ b/src/test/java/org/apache/commons/compress/IOMethodsTest.java @@ -23,10 +23,10 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.InputStream; import java.io.OutputStream; import java.nio.file.Files; +import java.nio.file.Path; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveInputStream; @@ -58,10 +58,10 @@ public class IOMethodsTest extends AbstractTestCase { final OutputStream out1 = new ByteArrayOutputStream(); final OutputStream out2 = new ByteArrayOutputStream(); final OutputStream out3 = new ByteArrayOutputStream(); - final File file = createSingleEntryArchive(archiverName); - file.deleteOnExit(); + final Path file = createSingleEntryArchive(archiverName); + file.toFile().deleteOnExit(); - final InputStream is1 = Files.newInputStream(file.toPath()); + final InputStream is1 = Files.newInputStream(file); final ArchiveInputStream ais1 = factory.createArchiveInputStream(archiverName, is1); final ArchiveEntry nextEntry = ais1.getNextEntry(); assertNotNull(nextEntry); @@ -72,13 +72,13 @@ public class IOMethodsTest extends AbstractTestCase { assertTrue(size > 0, "Size should be > 0, found: " + size); } - final InputStream is2 = Files.newInputStream(file.toPath()); + final InputStream is2 = Files.newInputStream(file); final ArchiveInputStream ais2 = factory.createArchiveInputStream(archiverName, is2); final ArchiveEntry nextEntry2 = ais2.getNextEntry(); assertNotNull(nextEntry2); assertEquals(size, nextEntry2.getSize(), "Expected same entry size"); - final InputStream is3 = Files.newInputStream(file.toPath()); + final InputStream is3 = Files.newInputStream(file); final ArchiveInputStream ais3 = factory.createArchiveInputStream(archiverName, is3); final ArchiveEntry nextEntry3 = ais3.getNextEntry(); assertNotNull(nextEntry3); diff --git a/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java b/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java index 89d62d16..741160ba 100644 --- a/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java +++ b/src/test/java/org/apache/commons/compress/changes/ChangeSetTestCase.java @@ -26,6 +26,7 @@ import java.io.BufferedReader; import java.io.File; import java.io.InputStream; import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -66,15 +67,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testAddAllreadyExistingWithReplaceFalse() throws Exception { final String archivename = "zip"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath())); @@ -113,15 +114,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testAddAllreadyExistingWithReplaceTrue() throws Exception { final String archivename = "zip"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath())); @@ -228,15 +229,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testAddDeleteAdd() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath())); @@ -276,17 +277,17 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testAddDeleteToOneFileArchive() throws Exception { final String archivename = "cpio"; - final File input = this.createSingleEntryArchive(archivename); + final Path input = this.createSingleEntryArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; InputStream is = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); final ChangeSet changes = new ChangeSet(); try { - is = Files.newInputStream(input.toPath()); + is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -339,17 +340,17 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testAddToEmptyArchive() throws Exception { final String archivename = "zip"; - final File input = this.createEmptyArchive(archivename); + final Path input = createEmptyArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; InputStream is = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); final ChangeSet changes = new ChangeSet(); try { - is = Files.newInputStream(input.toPath()); + is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -385,15 +386,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testChangeSetResults() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath())); @@ -448,15 +449,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteAddDelete() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath())); @@ -498,17 +499,17 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteAddToOneFileArchive() throws Exception { final String archivename = "zip"; - final File input = this.createSingleEntryArchive(archivename); + final Path input = createSingleEntryArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; InputStream is = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); final ChangeSet changes = new ChangeSet(); try { - is = Files.newInputStream(input.toPath()); + is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -550,15 +551,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteDir() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -592,15 +593,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteDir2() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -634,15 +635,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteDir3() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -676,15 +677,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteFile() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -719,15 +720,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteFile2() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, @@ -902,15 +903,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteFromAndAddToZip() throws Exception { final String archivename = "zip"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath())); @@ -949,11 +950,11 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeleteFromAndAddToZipUsingZipFilePerform() throws Exception { final String archivename = "zip"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ZipFile ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { @@ -1155,15 +1156,15 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeletePlusAdd() throws Exception { final String archivename = "cpio"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath())); @@ -1204,17 +1205,17 @@ public final class ChangeSetTestCase extends AbstractTestCase { @Test public void testDeletePlusAddSame() throws Exception { final String archivename = "zip"; - final File input = this.createArchive(archivename); + final Path input = createArchive(archivename); ArchiveOutputStream out = null; ArchiveInputStream ais = null; - final File result = File.createTempFile("test", "."+archivename); + final File result = File.createTempFile("test", "." + archivename); result.deleteOnExit(); File testtxt = null; try { - final InputStream is = Files.newInputStream(input.toPath()); + final InputStream is = Files.newInputStream(input); ais = factory.createArchiveInputStream(archivename, is); out = factory.createArchiveOutputStream(archivename, Files.newOutputStream(result.toPath()));