You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2016/06/21 22:00:25 UTC

svn commit: r1749612 - /commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java

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



Re: svn commit: r1749612 - /commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java

Posted by Benedikt Ritter <br...@apache.org>.
Hi,

Benedikt Ritter <br...@apache.org> schrieb am Mi., 22. Juni 2016 um
08:26 Uhr:

> 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?
>

I've reviewed the later changes which introduce the code for checking Java
Homes on Windows. Now it makes sense.

Thank you!


>
> Benedikt
>
>
> <gg...@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];
>>
>>
>>

Re: svn commit: r1749612 - /commons/proper/bcel/trunk/src/test/java/org/apache/bcel/generic/JDKGenericDumpTestCase.java

Posted by Benedikt Ritter <br...@apache.org>.
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

<gg...@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];
>
>
>