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