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()));

Reply via email to