8153238: Improve test/tools/jlink/JLinkTest.java not to hard code the number of plugins

Reviewed-by: jlaskey
This commit is contained in:
Athijegannathan Sundararajan 2016-06-24 23:28:06 +05:30
parent 9d4c46f850
commit f74ee54f5c

View File

@ -24,6 +24,7 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.module.ModuleDescriptor;
import java.lang.reflect.Layer;
import java.nio.file.Files;
import java.nio.file.Path;
@ -34,6 +35,7 @@ import java.util.List;
import java.util.stream.Stream;
import jdk.tools.jlink.plugin.Plugin;
import jdk.tools.jlink.plugin.TransformerPlugin;
import jdk.tools.jlink.internal.PluginRepository;
import tests.Helper;
import tests.JImageGenerator;
@ -54,6 +56,13 @@ import tests.JImageGenerator.InMemoryFile;
* @run main/othervm -verbose:gc -Xmx1g JLinkTest
*/
public class JLinkTest {
// number of built-in plugins from jdk.jlink module
private static int getNumJlinkPlugins() {
ModuleDescriptor desc = Plugin.class.getModule().getDescriptor();
return desc.provides().
get(TransformerPlugin.class.getName()).
providers().size();
}
public static void main(String[] args) throws Exception {
@ -63,7 +72,7 @@ public class JLinkTest {
return;
}
helper.generateDefaultModules();
int numPlugins = 13;
int numPlugins = getNumJlinkPlugins();
{
// number of built-in plugins
List<Plugin> builtInPlugins = new ArrayList<>();
@ -72,7 +81,9 @@ public class JLinkTest {
p.getState();
p.getType();
}
if (builtInPlugins.size() != numPlugins) {
// Note: other boot layer modules may provide jlink plugins.
// We should at least see the builtin plugins from jdk.jlink.
if (builtInPlugins.size() < numPlugins) {
throw new AssertionError("Found plugins doesn't match expected number : " +
numPlugins + "\n" + builtInPlugins);
}