You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by sj...@apache.org on 2010/09/15 15:58:21 UTC

svn commit: r997338 - in /harmony/enhanced/java/trunk/classlib/modules/pack200/src/test: java/org/apache/harmony/pack200/tests/ java/org/apache/harmony/unpack200/tests/ resources/org/apache/harmony/pack200/tests/

Author: sjanuary
Date: Wed Sep 15 13:58:20 2010
New Revision: 997338

URL: http://svn.apache.org/viewvc?rev=997338&view=rev
Log:
Pack200 - more tests

Added:
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar   (with props)
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes2.jar   (with props)
Modified:
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/ArchiveTest.java
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodecTest.java
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/PackingOptionsTest.java
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotations.jar
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.jar
    harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.pack.gz

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/ArchiveTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/ArchiveTest.java?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/ArchiveTest.java (original)
+++ harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/ArchiveTest.java Wed Sep 15 13:58:20 2010
@@ -19,6 +19,7 @@ package org.apache.harmony.pack200.tests
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -28,6 +29,7 @@ import java.net.URISyntaxException;
 import java.util.Enumeration;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
+import java.util.jar.JarInputStream;
 import java.util.jar.JarOutputStream;
 
 import junit.framework.TestCase;
@@ -125,7 +127,21 @@ public class ArchiveTest extends TestCas
         compareFiles(jarFile, jarFile2);
     }
 
-    public void testLargeClass() throws IOException, Pack200Exception, URISyntaxException {
+    public void testAlternativeConstructor() throws FileNotFoundException,
+            IOException, URISyntaxException, Pack200Exception {
+        JarInputStream inStream = new JarInputStream(new FileInputStream(
+                new File(Archive.class.getResource(
+                        "/org/apache/harmony/pack200/tests/sqlUnpacked.jar").toURI())));
+        file = File.createTempFile("sql", ".pack.gz");
+        file.deleteOnExit();
+        out = new FileOutputStream(file);
+        new Archive(inStream, out, null).pack();
+        inStream.close();
+        out.close();
+    }
+
+    public void testLargeClass() throws IOException, Pack200Exception,
+            URISyntaxException {
         in = new JarFile(new File(Archive.class.getResource(
                 "/org/apache/harmony/pack200/tests/largeClassUnpacked.jar")
                 .toURI()));
@@ -217,7 +233,7 @@ public class ArchiveTest extends TestCas
         in = new JarFile(new File(Archive.class.getResource(
                 "/org/apache/harmony/pack200/tests/annotations.jar").toURI()));
         file = File.createTempFile("annotations", ".pack");
-//        file.deleteOnExit();
+        file.deleteOnExit();
         out = new FileOutputStream(file);
         PackingOptions options = new PackingOptions();
         options.setGzip(false);
@@ -228,7 +244,7 @@ public class ArchiveTest extends TestCas
         // now unpack
         InputStream in2 = new FileInputStream(file);
         File file2 = File.createTempFile("annotationsout", ".jar");
-//        file2.deleteOnExit();
+        file2.deleteOnExit();
         JarOutputStream out2 = new JarOutputStream(new FileOutputStream(file2));
         org.apache.harmony.unpack200.Archive archive = new org.apache.harmony.unpack200.Archive(
                 in2, out2);

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodecTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodecTest.java?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodecTest.java (original)
+++ harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/CodecTest.java Wed Sep 15 13:58:20 2010
@@ -26,7 +26,6 @@ import org.apache.harmony.pack200.BHSDCo
 import org.apache.harmony.pack200.CanonicalCodecFamilies;
 import org.apache.harmony.pack200.Codec;
 import org.apache.harmony.pack200.Pack200Exception;
-import org.apache.harmony.pack200.RunCodec;
 
 /**
  * 
@@ -205,6 +204,15 @@ public class CodecTest extends TestCase 
         checkAscendingCardinalities(CanonicalCodecFamilies.deltaUnsignedCodecs3);
         checkAscendingCardinalities(CanonicalCodecFamilies.deltaUnsignedCodecs4);
         checkAscendingCardinalities(CanonicalCodecFamilies.deltaUnsignedCodecs5);
+        checkAscendingCardinalities(CanonicalCodecFamilies.nonDeltaSignedCodecs1);
+        checkAscendingCardinalities(CanonicalCodecFamilies.nonDeltaSignedCodecs2);
+        checkAscendingCardinalities(CanonicalCodecFamilies.nonDeltaDoubleSignedCodecs1);
+        checkAscendingCardinalities(CanonicalCodecFamilies.deltaSignedCodecs1);
+        checkAscendingCardinalities(CanonicalCodecFamilies.deltaSignedCodecs2);
+        checkAscendingCardinalities(CanonicalCodecFamilies.deltaSignedCodecs3);
+        checkAscendingCardinalities(CanonicalCodecFamilies.deltaSignedCodecs4);
+        checkAscendingCardinalities(CanonicalCodecFamilies.deltaSignedCodecs5);
+        checkAscendingCardinalities(CanonicalCodecFamilies.deltaDoubleSignedCodecs1);
     }
 
     private void checkAscendingCardinalities(BHSDCodec[] family) {

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/PackingOptionsTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/PackingOptionsTest.java?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/PackingOptionsTest.java (original)
+++ harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/pack200/tests/PackingOptionsTest.java Wed Sep 15 13:58:20 2010
@@ -504,6 +504,44 @@ public class PackingOptionsTest extends 
 //        compareFiles(jarFile, jarFile2);
     }
 
+    public void testNewAttributes2() throws Exception {
+        in = new JarFile(
+                new File(
+                        Archive.class
+                                .getResource(
+                                        "/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar")
+                                .toURI()));
+        file = File.createTempFile("unknown", ".pack");
+        file.deleteOnExit();
+        out = new FileOutputStream(file);
+        PackingOptions options = new PackingOptions();
+        options.addFieldAttributeAction("Pack200", "I");
+        options.addMethodAttributeAction("Pack200", "I");
+        options.addCodeAttributeAction("Pack200", "I");
+        Archive ar = new Archive(in, out, options);
+        ar.pack();
+        in.close();
+        out.close();
+
+        // unpack and check this was done right
+        InputStream in2 = new FileInputStream(file);
+        File file2 = File.createTempFile("unknown", ".jar");
+        file2.deleteOnExit();
+        JarOutputStream out2 = new JarOutputStream(new FileOutputStream(file2));
+        org.apache.harmony.unpack200.Archive u2archive = new org.apache.harmony.unpack200.Archive(
+                in2, out2);
+        u2archive.unpack();
+
+        // compare with original
+        File compareFile = new File(Archive.class.getResource(
+                "/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar").toURI());
+        JarFile jarFile = new JarFile(file2);
+
+        JarFile jarFile2 = new JarFile(compareFile);
+        assertEquals(jarFile2.size(), jarFile.size());
+        compareJarEntries(jarFile, jarFile2);
+    }
+
     public void testErrorAttributes() throws Exception {
         in = new JarFile(
                 new File(

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java (original)
+++ harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java Wed Sep 15 13:58:20 2010
@@ -16,8 +16,11 @@
  */
 package org.apache.harmony.unpack200.tests;
 
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
 import java.io.BufferedReader;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.IOException;
@@ -27,6 +30,7 @@ import java.util.Enumeration;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
 
 import junit.framework.TestCase;
 
@@ -117,6 +121,16 @@ public class ArchiveTest extends TestCas
         }
     }
 
+    public void testAlternativeConstructor() throws Exception {
+        String inputFile = new File(Archive.class
+                .getResource("/org/apache/harmony/pack200/tests/sql.pack.gz").toURI()).getPath();
+        file = File.createTempFile("sql", ".jar");
+        file.deleteOnExit();
+        String outputFile = file.getPath();
+        Archive archive = new Archive(inputFile, outputFile);
+        archive.unpack();
+    }
+
     // Test with an archive containing Harmony's Pack200 module, packed with -E1
     public void testWithPack200E1() throws Exception {
         in = Archive.class
@@ -179,6 +193,58 @@ public class ArchiveTest extends TestCas
         archive.unpack();
     }
 
+
+    public void testRemovePackFile() throws Exception {
+        File original = new File(Archive.class.getResource(
+                "/org/apache/harmony/pack200/tests/sql.pack.gz").toURI());
+        File copy = File.createTempFile("sqlcopy", ".pack.gz");
+        BufferedInputStream inputStream = new BufferedInputStream(
+                new FileInputStream(original));
+        BufferedOutputStream outputStream = new BufferedOutputStream(
+                new FileOutputStream(copy));
+        byte[] bytes = new byte[256];
+        int read = inputStream.read(bytes);
+        while (read > 0) {
+            outputStream.write(bytes, 0, read);
+            read = inputStream.read(bytes);
+        }
+        inputStream.close();
+        outputStream.close();
+        String inputFile = copy.getPath();
+        file = File.createTempFile("sqlout", ".jar");
+        file.deleteOnExit();
+        String outputFile = file.getPath();
+        Archive archive = new Archive(inputFile, outputFile);
+        archive.setRemovePackFile(true);
+        archive.unpack();
+        assertFalse(copy.exists());
+    }
+    
+    public void testDeflateHint() throws Exception {
+        in = Archive.class
+                .getResourceAsStream("/org/apache/harmony/pack200/tests/sql.pack.gz");
+        file = File.createTempFile("sql", ".jar");
+        file.deleteOnExit();
+        out = new JarOutputStream(new FileOutputStream(file));
+        Archive archive = new Archive(in, out);
+        archive.setDeflateHint(true);
+        archive.unpack();
+        JarFile jarFile = new JarFile(file);
+        assertEquals(ZipEntry.DEFLATED, jarFile.getEntry("bin/test/org/apache/harmony/sql/tests/internal/rowset/CachedRowSetImplTest.class").getMethod());
+        
+        in = Archive.class
+                .getResourceAsStream("/org/apache/harmony/pack200/tests/sql.pack.gz");
+        file = File.createTempFile("sql", ".jar");
+        file.deleteOnExit();
+        out = new JarOutputStream(new FileOutputStream(file));
+        archive = new Archive(in, out);
+        archive.setDeflateHint(false);
+        archive.unpack();
+        jarFile = new JarFile(file);
+        assertEquals(ZipEntry.STORED, jarFile.getEntry("bin/test/org/apache/harmony/sql/tests/internal/rowset/CachedRowSetImplTest.class").getMethod());
+        
+    }
+
     protected void tearDown() throws Exception {
         super.tearDown();
         if (in != null) {
@@ -234,6 +300,29 @@ public class ArchiveTest extends TestCas
         reader = new FileReader(logFile);
         assertTrue(reader.ready());
         reader.close();
+        
+        // test append option
+        long length = logFile.length();
+        in = Archive.class
+                .getResourceAsStream("/org/apache/harmony/pack200/tests/sql.pack.gz");
+        file = File.createTempFile("logtest", ".jar");
+        file.deleteOnExit();
+        out = new JarOutputStream(new FileOutputStream(file));
+        archive = new Archive(in, out);
+        archive.setLogFile(logFile.getPath(), true);
+        archive.setVerbose(true);
+        archive.unpack();
+        assertTrue(logFile.length() > length);
+        in = Archive.class
+                .getResourceAsStream("/org/apache/harmony/pack200/tests/sql.pack.gz");
+        file = File.createTempFile("logtest", ".jar");
+        file.deleteOnExit();
+        out = new JarOutputStream(new FileOutputStream(file));
+        archive = new Archive(in, out);
+        archive.setLogFile(logFile.getPath(), false);
+        archive.setVerbose(true);
+        archive.unpack();
+        assertTrue(logFile.length() == length);
 
         // test setting quiet explicitly
         in = Archive.class

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
--- harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java (original)
+++ harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java Wed Sep 15 13:58:20 2010
@@ -80,13 +80,13 @@ public class SegmentTest extends TestCas
         in = Segment.class
                 .getResourceAsStream("/org/apache/harmony/pack200/tests/HelloWorld.pack");
         file = File.createTempFile("hello", "world.jar");
+        file.deleteOnExit();
         out = new JarOutputStream(new FileOutputStream(file));
         Segment segment = new Segment();
         segment.unpack(in, out);
         out.close();
         out = null;
         JarFile jarFile = new JarFile(file);
-        file.deleteOnExit();
 
         JarEntry entry = jarFile
                 .getJarEntry("org/apache/harmony/archive/tests/internal/pack200/HelloWorld.class");

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotations.jar
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotations.jar?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
Binary files - no diff available.

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.jar
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.jar?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
Binary files - no diff available.

Modified: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.pack.gz
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/annotationsRI.pack.gz?rev=997338&r1=997337&r2=997338&view=diff
==============================================================================
Binary files - no diff available.

Added: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar?rev=997338&view=auto
==============================================================================
Binary file - no diff available.

Propchange: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes2.jar
URL: http://svn.apache.org/viewvc/harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes2.jar?rev=997338&view=auto
==============================================================================
Binary file - no diff available.

Propchange: harmony/enhanced/java/trunk/classlib/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/p200WithUnknownAttributes2.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream