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 2017/11/27 19:15:00 UTC

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

Author: ggregory
Date: Mon Nov 27 19:15:00 2017
New Revision: 1816495

URL: http://svn.apache.org/viewvc?rev=1816495&view=rev
Log:
This test was pretending to test JDK jars but was not. Also now tests JRE 9, 10 EA and JDK 9 and 10 EA.

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=1816495&r1=1816494&r2=1816495&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 Mon Nov 27 19:15:00 2017
@@ -45,17 +45,20 @@ import org.junit.runners.Parameterized.P
 import com.sun.jna.platform.win32.Advapi32Util;
 
 /**
- * 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.
+ * 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 {
 
     private static final String KEY_JDK = "SOFTWARE\\JavaSoft\\Java Development Kit";
 
+    private static final String KEY_JDK_9 = "SOFTWARE\\JavaSoft\\JDK";
+
     private static final String KEY_JRE = "SOFTWARE\\JavaSoft\\Java Runtime Environment";
 
+    private static final String KEY_JRE_9 = "SOFTWARE\\JavaSoft\\JRE";
+
     @Parameters(name = "{0}")
     public static Collection<String> data() {
         return findJavaHomes();
@@ -72,19 +75,21 @@ public class JDKGenericDumpTestCase {
 
     private static Set<String> findJavaHomesOnWindows() {
         Set<String> javaHomes = new HashSet<>();
-        final String[] jreKeys = Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JRE);
-        javaHomes = findJavaHomesOnWindows(jreKeys);
-        final String[] jdkKeys = Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JDK);
-        javaHomes.addAll(findJavaHomesOnWindows(jdkKeys));
+        javaHomes.addAll(findJavaHomesOnWindows(KEY_JRE, Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JRE)));
+        javaHomes
+                .addAll(findJavaHomesOnWindows(KEY_JRE_9, Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JRE_9)));
+        javaHomes.addAll(findJavaHomesOnWindows(KEY_JDK, Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JDK)));
+        javaHomes
+                .addAll(findJavaHomesOnWindows(KEY_JDK_9, Advapi32Util.registryGetKeys(HKEY_LOCAL_MACHINE, KEY_JDK_9)));
         return javaHomes;
     }
 
-    private static Set<String> findJavaHomesOnWindows(final String[] keys) {
+    private static Set<String> findJavaHomesOnWindows(String keyJavaHome, final String[] keys) {
         final Set<String> javaHomes = new HashSet<>(keys.length);
         for (final String key : keys) {
-            if (Advapi32Util.registryKeyExists(HKEY_LOCAL_MACHINE, KEY_JRE + "\\" + key)) {
-                final String javaHome = Advapi32Util.registryGetStringValue(HKEY_LOCAL_MACHINE, KEY_JRE + "\\" + key,
-                        "JavaHome");
+            if (Advapi32Util.registryKeyExists(HKEY_LOCAL_MACHINE, keyJavaHome + "\\" + key)) {
+                final String javaHome = Advapi32Util.registryGetStringValue(HKEY_LOCAL_MACHINE,
+                        keyJavaHome + "\\" + key, "JavaHome");
                 if (StringUtils.isNoneBlank(javaHome)) {
                     if (new File(javaHome).exists()) {
                         javaHomes.add(javaHome);