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];