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 2008/08/21 11:42:54 UTC
svn commit: r687671 - in
/harmony/enhanced/classlib/trunk/modules/pack200/src/test:
java/org/apache/harmony/unpack200/tests/
resources/org/apache/harmony/pack200/tests/
Author: sjanuary
Date: Thu Aug 21 02:42:52 2008
New Revision: 687671
URL: http://svn.apache.org/viewvc?rev=687671&view=rev
Log:
Pack200 - fix tests so they don't rely on javap any more and compare class files directly instead
Added:
harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/hw.jar (with props)
harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/sqlUnpacked.jar (with props)
Removed:
harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/HelloWorldJavap.out
harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/sqlJavap.out
Modified:
harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java
harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java
Modified: harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java?rev=687671&r1=687670&r2=687671&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/ArchiveTest.java Thu Aug 21 02:42:52 2008
@@ -22,6 +22,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;
@@ -69,51 +70,42 @@
archive.unpack();
JarFile jarFile = new JarFile(file);
file.deleteOnExit();
- JarEntry entry = jarFile
- .getJarEntry("bin/test/org/apache/harmony/sql/tests/javax/sql/rowset/BaseRowSetTest$BaseRowSetImpl.class");
- assertNotNull(entry);
- try {
- Process process2 = Runtime
- .getRuntime()
- .exec(
- "javap -c -verbose -classpath "
- + file.getName()
- + " bin/test/org.apache.harmony.sql.tests.javax.sql.rowset.BaseRowSetTest$BaseRowSetImpl",
- new String[] {}, file.getParentFile());
-
- BufferedReader reader1 = new BufferedReader(new InputStreamReader(
- process2.getInputStream()));
- InputStream javapCompareFile = Archive.class
- .getResourceAsStream("/org/apache/harmony/pack200/tests/sqlJavap.out");
+
+ JarFile jarFile2 = new JarFile(new File(Archive.class.getResource(
+ "/org/apache/harmony/pack200/tests/sqlUnpacked.jar").toURI()));
+
+ Enumeration entries = jarFile.entries();
+ Enumeration entries2 = jarFile2.entries();
+ while(entries.hasMoreElements() && entries2.hasMoreElements()) {
+
+ JarEntry entry = (JarEntry) entries.nextElement();
+ assertNotNull(entry);
+ String name = entry.getName();
+
+ JarEntry entry2 = (JarEntry) entries2.nextElement();
+ assertNotNull(entry2);
+ String name2 = entry2.getName();
+
+ assertEquals(name, name2);
+
+ InputStream ours = jarFile.getInputStream(entry);
+ InputStream expected = jarFile2.getInputStream(entry2);
+
+ BufferedReader reader1 = new BufferedReader(new InputStreamReader(ours));
BufferedReader reader2 = new BufferedReader(new InputStreamReader(
- javapCompareFile));
- String line1 = readNextLine(reader1);
- String line2 = readNextLine(reader2);
+ expected));
+ String line1 = reader1.readLine();
+ String line2 = reader2.readLine();
int i = 1;
while (line1 != null || line2 != null) {
- assertEquals(line2, line1);
- line1 = readNextLine(reader1);
- line2 = readNextLine(reader2);
+ assertEquals("Unpacked class files differ for " + name, line2, line1);
+ line1 = reader1.readLine();
+ line2 = reader2.readLine();
i++;
}
reader1.close();
reader2.close();
- } catch (IOException e) {
- String message = e.getMessage();
- if (message.startsWith("Unable to start program") || message.startsWith("The creation of the Process has just failed")) {
- System.out.println("Warning: org.apache.harmony.unpack200.tests.ArchiveTest.testWithSql() was not completed as javap could not be found");
- } else {
- throw e;
- }
- }
- }
-
- private String readNextLine(BufferedReader reader) throws IOException {
- String line = reader.readLine();
- while ("".equals(line)) {
- line = reader.readLine();
}
- return line;
}
// Test with an archive containing Harmony's Pack200 module, packed with -E1
Modified: harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java?rev=687671&r1=687670&r2=687671&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/pack200/src/test/java/org/apache/harmony/unpack200/tests/SegmentTest.java Thu Aug 21 02:42:52 2008
@@ -87,56 +87,80 @@
out = null;
JarFile jarFile = new JarFile(file);
file.deleteOnExit();
+
JarEntry entry = jarFile
.getJarEntry("org/apache/harmony/archive/tests/internal/pack200/HelloWorld.class");
assertNotNull(entry);
+ InputStream ours = jarFile.getInputStream(entry);
+
+ JarFile jarFile2 = new JarFile(new File(Segment.class.getResource(
+ "/org/apache/harmony/pack200/tests/hw.jar").toURI()));
+ JarEntry entry2 = jarFile2
+ .getJarEntry("org/apache/harmony/archive/tests/internal/pack200/HelloWorld.class");
+ assertNotNull(entry2);
- try {
- Process process = Runtime
- .getRuntime()
- .exec(
- "java -cp "
- + file.getName()
- + " org.apache.harmony.archive.tests.internal.pack200.HelloWorld",
- new String[] {}, file.getParentFile());
- BufferedReader reader = new BufferedReader(new InputStreamReader(
- process.getInputStream()));
- String line = reader.readLine();
- assertEquals("Hello world", line);
- reader.close();
-
- Process process2 = Runtime
- .getRuntime()
- .exec(
- "javap -c -verbose -classpath "
- + file.getName()
- + " org.apache.harmony.archive.tests.internal.pack200.HelloWorld",
- new String[] {}, file.getParentFile());
- BufferedReader reader1 = new BufferedReader(new InputStreamReader(process2
- .getInputStream()));
- InputStream javapCompareFile = Segment.class
- .getResourceAsStream("/org/apache/harmony/pack200/tests/HelloWorldJavap.out");
- BufferedReader reader2 = new BufferedReader(new InputStreamReader(
- javapCompareFile));
- String line1 = readNextLine(reader1);
- String line2 = readNextLine(reader2);
- int i = 1;
- while (line1 != null || line2 != null) {
- assertEquals(line2, line1);
- line1 = readNextLine(reader1);
- line2 = readNextLine(reader2);
- i++;
- }
- reader1.close();
- reader2.close();
- } catch (IOException e) {
- String message = e.getMessage();
- if (message.startsWith("Unable to start program") || message.startsWith("The creation of the Process has just failed")) {
- System.out.println("Warning: org.apache.harmony.unpack200.tests.SegmentTest.testHelloWorld() was not completed as java or javap could not be found");
- } else {
- throw e;
- }
+ InputStream expected = jarFile2.getInputStream(entry2);
+
+ BufferedReader reader1 = new BufferedReader(new InputStreamReader(ours));
+ BufferedReader reader2 = new BufferedReader(new InputStreamReader(expected));
+ String line1 = reader1.readLine();
+ String line2 = reader2.readLine();
+ int i = 1;
+ while (line1 != null || line2 != null) {
+ assertEquals("Unpacked class files differ", line2, line1);
+ line1 = reader1.readLine();
+ line2 = reader2.readLine();
+ i++;
}
+ reader1.close();
+ reader2.close();
+
+// try {
+// Process process = Runtime
+// .getRuntime()
+// .exec(
+// "java -cp "
+// + file.getName()
+// + " org.apache.harmony.archive.tests.internal.pack200.HelloWorld",
+// new String[] {}, file.getParentFile());
+// BufferedReader reader = new BufferedReader(new InputStreamReader(
+// process.getInputStream()));
+// String line = reader.readLine();
+// assertEquals("Hello world", line);
+// reader.close();
+//
+// Process process2 = Runtime
+// .getRuntime()
+// .exec(
+// "javap -c -verbose -classpath "
+// + file.getName()
+// + " org.apache.harmony.archive.tests.internal.pack200.HelloWorld",
+// new String[] {}, file.getParentFile());
+// BufferedReader reader1 = new BufferedReader(new InputStreamReader(process2
+// .getInputStream()));
+// InputStream javapCompareFile = Segment.class
+// .getResourceAsStream("/org/apache/harmony/pack200/tests/HelloWorldJavap.out");
+// BufferedReader reader2 = new BufferedReader(new InputStreamReader(
+// javapCompareFile));
+// String line1 = readNextLine(reader1);
+// String line2 = readNextLine(reader2);
+// int i = 1;
+// while (line1 != null || line2 != null) {
+// assertEquals(line2, line1);
+// line1 = readNextLine(reader1);
+// line2 = readNextLine(reader2);
+// i++;
+// }
+// reader1.close();
+// reader2.close();
+// } catch (IOException e) {
+// String message = e.getMessage();
+// if (message.startsWith("Unable to start program") || message.startsWith("The creation of the Process has just failed")) {
+// System.out.println("Warning: org.apache.harmony.unpack200.tests.SegmentTest.testHelloWorld() was not completed as java or javap could not be found");
+// } else {
+// throw e;
+// }
+// }
}
private String readNextLine(BufferedReader reader) throws IOException {
Added: harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/hw.jar
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/hw.jar?rev=687671&view=auto
==============================================================================
Binary file - no diff available.
Propchange: harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/hw.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/sqlUnpacked.jar
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/sqlUnpacked.jar?rev=687671&view=auto
==============================================================================
Binary file - no diff available.
Propchange: harmony/enhanced/classlib/trunk/modules/pack200/src/test/resources/org/apache/harmony/pack200/tests/sqlUnpacked.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream