1 17 package org.apache.tools.tar; 18 19 import java.io.IOException ; 20 import java.io.ByteArrayInputStream ; 21 import java.io.ByteArrayOutputStream ; 22 import junit.framework.TestCase; 23 24 public class TarRoundTripTest extends TestCase { 25 26 private static final String LONG_NAME 27 = "this/path/name/contains/more/than/one/hundred/characters/in/order/" 28 + "to/test/the/GNU/long/file/name/capability/round/tripped"; 29 30 public TarRoundTripTest(String name) { 31 super(name); 32 } 33 34 37 public void testLongRoundTripping() throws IOException { 38 TarEntry original = new TarEntry(LONG_NAME); 39 assertEquals("over 100 chars", true, LONG_NAME.length() > 100); 40 assertEquals("original name", LONG_NAME, original.getName()); 41 42 43 ByteArrayOutputStream buff = new ByteArrayOutputStream (); 44 TarOutputStream tos = new TarOutputStream(buff); 45 tos.setLongFileMode(TarOutputStream.LONGFILE_GNU); 46 tos.putNextEntry(original); 47 tos.closeEntry(); 48 tos.close(); 49 50 TarInputStream tis 51 = new TarInputStream(new ByteArrayInputStream (buff.toByteArray())); 52 TarEntry tripped = tis.getNextEntry(); 53 assertEquals("round-tripped name", LONG_NAME, tripped.getName()); 54 assertNull("no more entries", tis.getNextEntry()); 55 tis.close(); 56 } 57 } 58 59 60 | Popular Tags |