Hello Gary, I don't understand this change. Wouldn't it be easier to assign the value of java.home to a field in a setup method?
Benedikt <ggreg...@apache.org> schrieb am Mi., 22. Juni 2016 um 00:00 Uhr: > 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]; > > >