Author: bodewig
Date: Thu Dec 27 18:04:18 2012
New Revision: 1426276

URL: http://svn.apache.org/viewvc?rev=1426276&view=rev
Log:
COMPRESS-200 - passing test case, will ask for more info

Modified:
    
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java

Modified: 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java?rev=1426276&r1=1426275&r2=1426276&view=diff
==============================================================================
--- 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
 (original)
+++ 
commons/proper/compress/trunk/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
 Thu Dec 27 18:04:18 2012
@@ -337,4 +337,39 @@ public class TarArchiveOutputStreamTest 
         tin.close();
     }
 
-}
\ No newline at end of file
+    /**
+     * @see https://issues.apache.org/jira/browse/COMPRESS-200
+     */
+    public void testRoundtripWith66CharFileNameGnu() throws Exception {
+        testRoundtripWith66CharFileName(TarArchiveOutputStream.LONGFILE_GNU);
+    }
+
+    /**
+     * @see https://issues.apache.org/jira/browse/COMPRESS-200
+     */
+    public void testRoundtripWith66CharFileNamePosix() throws Exception {
+        testRoundtripWith66CharFileName(TarArchiveOutputStream.LONGFILE_POSIX);
+    }
+
+    private void testRoundtripWith66CharFileName(int mode) throws Exception {
+        String n = 
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+            + "AAAAAAA";
+        assertEquals(67, n.length());
+        TarArchiveEntry t = new TarArchiveEntry(n);
+        t.setSize(10 * 1024);
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        TarArchiveOutputStream tos = new TarArchiveOutputStream(bos);
+        tos.setLongFileMode(mode);
+        tos.putArchiveEntry(t);
+        tos.write(new byte[10 * 1024]);
+        tos.closeArchiveEntry();
+        byte[] data = bos.toByteArray();
+        TarArchiveInputStream tin =
+            new TarArchiveInputStream(new ByteArrayInputStream(data));
+        TarArchiveEntry e = tin.getNextTarEntry();
+        assertEquals(n, e.getName());
+        tin.close();
+        tos.close();
+    }
+
+}


Reply via email to