Author: ggregory
Date: Tue Jun 21 22:00:25 2016
New Revision: 1749612
URL: http://svn.apache.org/viewvc?rev=1749612&view=rev
Log:
Parameterize test.
Modified:
commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java
Modified:
commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java
URL:
http://svn.apache.org/viewvc/commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java?rev=1749612&r1=1749611&r2=1749612&view=diff
==============================================================================
---
commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java
(original)
+++
commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java
Tue Jun 21 22:00:25 2016
@@ -23,6 +23,8 @@ import static org.junit.Assert.fail;
import java.io.File;
import java.io.FileFilter;
import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@@ -32,14 +34,29 @@ import org.apache.bcel.classfile.Code;
import org.apache.bcel.classfile.JavaClass;
import org.apache.bcel.classfile.Method;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
/**
* Test that the generic dump() methods work on the JDK classes
* Reads each class into an instruction list and then dumps
* the instructions. The output bytes should be the same as the input.
*/
+@RunWith(Parameterized.class)
public class JDKGenericDumpTestCase {
+ @Parameters(name = "{0}")
+ public static Collection<Object[]> data() {
+ return Arrays.asList(new Object[][] { {
System.getProperty("java.home") } });
+ }
+
+ public JDKGenericDumpTestCase(final String javaHome) {
+ this.javaHome = javaHome;
+ }
+
+ private String javaHome;
+
@Test
public void testJDKjars() throws Exception {
final File[] jars = listJDKjars();
@@ -70,18 +87,18 @@ public class JDKGenericDumpTestCase {
}
private void compare(final String name, final Method m) {
-// System.out.println("Method: " + m);
+ // System.out.println("Method: " + m);
final Code c = m.getCode();
- if (c==null) {
+ if (c == null) {
return; // e.g. abstract method
}
final byte[] src = c.getCode();
final InstructionList il = new InstructionList(src);
final byte[] out = il.getByteCode();
if (src.length == out.length) {
- assertArrayEquals(name + ": "+m.toString(), src, out);
+ assertArrayEquals(name + ": " + m.toString(), src, out);
} else {
- System.out.println(name + ": "+m.toString() +" "+ src.length+"
"+out.length);
+ System.out.println(name + ": " + m.toString() + " " + src.length +
" " + out.length);
System.out.println(bytesToHex(src));
System.out.println(bytesToHex(out));
for (final InstructionHandle ih : il) {
@@ -92,7 +109,7 @@ public class JDKGenericDumpTestCase {
}
private File[] listJDKjars() throws Exception {
- final File javaLib = new File(System.getProperty("java.home") +
"/lib");
+ final File javaLib = new File(javaHome + "/lib");
return javaLib.listFiles(new FileFilter() {
@Override
public boolean accept(final File file) {
@@ -102,9 +119,10 @@ public class JDKGenericDumpTestCase {
}
private static final char[] hexArray = "0123456789ABCDEF".toCharArray();
+
private static String bytesToHex(final byte[] bytes) {
final char[] hexChars = new char[bytes.length * 3];
- int i=0;
+ int i = 0;
for (final byte b : bytes) {
final int v = b & 0xFF;
hexChars[i++] = hexArray[v >>> 4];