< prev index next >

test/jdk/tools/jlink/JLinkTest.java

Print this page




  26 import java.io.StringWriter;
  27 import java.lang.module.ModuleDescriptor;
  28 import java.nio.file.Files;
  29 import java.nio.file.Path;
  30 import java.nio.file.Paths;
  31 import java.util.ArrayList;
  32 import java.util.Collections;
  33 import java.util.List;
  34 import java.util.spi.ToolProvider;
  35 import java.util.stream.Stream;
  36 
  37 import jdk.tools.jlink.plugin.Plugin;
  38 import jdk.tools.jlink.internal.PluginRepository;
  39 import tests.Helper;
  40 import tests.JImageGenerator;
  41 
  42 /*
  43  * @test
  44  * @summary Test image creation
  45  * @bug 8189777

  46  * @author Jean-Francois Denise
  47  * @requires (vm.compMode != "Xcomp" & os.maxMemory >= 2g)
  48  * @library ../lib
  49  * @modules java.base/jdk.internal.jimage
  50  *          jdk.jdeps/com.sun.tools.classfile
  51  *          jdk.jlink/jdk.tools.jlink.internal
  52  *          jdk.jlink/jdk.tools.jlink.plugin
  53  *          jdk.jlink/jdk.tools.jimage
  54  *          jdk.compiler
  55  * @build tests.*
  56  * @run main/othervm -Xmx1g JLinkTest
  57  */
  58 public class JLinkTest {
  59     static final ToolProvider JLINK_TOOL = ToolProvider.findFirst("jlink")
  60         .orElseThrow(() ->
  61             new RuntimeException("jlink tool not found")
  62         );
  63 
  64     // number of built-in plugins from jdk.jlink module
  65     private static int getNumJlinkPlugins() {


 259             helper.generateDefaultJModule(moduleName, "composite2");
 260             String[] res = {".jcov", "/META-INF/"};
 261             String[] files = {Helper.getDebugSymbolsExtension()};
 262             Path imageDir = helper.generateDefaultImage(userOptions, moduleName).assertSuccess();
 263             helper.checkImage(imageDir, moduleName, res, files);
 264         }
 265 
 266         // filter out + Skip debug + compress with filter + sort resources
 267         {
 268             String[] userOptions2 = {"--compress=2:compress-filter=^/java.base/*",
 269                 "--strip-debug", "--exclude-resources",
 270                 "*.jcov, */META-INF/*", "--order-resources",
 271                 "*/module-info.class,/sortcomposite2/*,*/javax/management/*"};
 272             String moduleName = "excludezipfilterskipdebugcomposite2";
 273             helper.generateDefaultJModule(moduleName, "composite2");
 274             String[] res = {".jcov", "/META-INF/"};
 275             Path imageDir = helper.generateDefaultImage(userOptions2, moduleName).assertSuccess();
 276             helper.checkImage(imageDir, moduleName, res, null);
 277         }
 278 









 279         // default compress
 280         {
 281             testCompress(helper, "compresscmdcomposite2", "--compress", "2");
 282         }
 283 
 284         {
 285             testCompress(helper, "compressfiltercmdcomposite2",
 286                     "--compress=2:filter=^/java.base/java/lang/*");
 287         }
 288 
 289         // compress 0
 290         {
 291             testCompress(helper, "compress0filtercmdcomposite2",
 292                     "--compress=0:filter=^/java.base/java/lang/*");
 293         }
 294 
 295         // compress 1
 296         {
 297             testCompress(helper, "compress1filtercmdcomposite2",
 298                     "--compress=1:filter=^/java.base/java/lang/*");




  26 import java.io.StringWriter;
  27 import java.lang.module.ModuleDescriptor;
  28 import java.nio.file.Files;
  29 import java.nio.file.Path;
  30 import java.nio.file.Paths;
  31 import java.util.ArrayList;
  32 import java.util.Collections;
  33 import java.util.List;
  34 import java.util.spi.ToolProvider;
  35 import java.util.stream.Stream;
  36 
  37 import jdk.tools.jlink.plugin.Plugin;
  38 import jdk.tools.jlink.internal.PluginRepository;
  39 import tests.Helper;
  40 import tests.JImageGenerator;
  41 
  42 /*
  43  * @test
  44  * @summary Test image creation
  45  * @bug 8189777
  46  * @bug 8194922
  47  * @author Jean-Francois Denise
  48  * @requires (vm.compMode != "Xcomp" & os.maxMemory >= 2g)
  49  * @library ../lib
  50  * @modules java.base/jdk.internal.jimage
  51  *          jdk.jdeps/com.sun.tools.classfile
  52  *          jdk.jlink/jdk.tools.jlink.internal
  53  *          jdk.jlink/jdk.tools.jlink.plugin
  54  *          jdk.jlink/jdk.tools.jimage
  55  *          jdk.compiler
  56  * @build tests.*
  57  * @run main/othervm -Xmx1g JLinkTest
  58  */
  59 public class JLinkTest {
  60     static final ToolProvider JLINK_TOOL = ToolProvider.findFirst("jlink")
  61         .orElseThrow(() ->
  62             new RuntimeException("jlink tool not found")
  63         );
  64 
  65     // number of built-in plugins from jdk.jlink module
  66     private static int getNumJlinkPlugins() {


 260             helper.generateDefaultJModule(moduleName, "composite2");
 261             String[] res = {".jcov", "/META-INF/"};
 262             String[] files = {Helper.getDebugSymbolsExtension()};
 263             Path imageDir = helper.generateDefaultImage(userOptions, moduleName).assertSuccess();
 264             helper.checkImage(imageDir, moduleName, res, files);
 265         }
 266 
 267         // filter out + Skip debug + compress with filter + sort resources
 268         {
 269             String[] userOptions2 = {"--compress=2:compress-filter=^/java.base/*",
 270                 "--strip-debug", "--exclude-resources",
 271                 "*.jcov, */META-INF/*", "--order-resources",
 272                 "*/module-info.class,/sortcomposite2/*,*/javax/management/*"};
 273             String moduleName = "excludezipfilterskipdebugcomposite2";
 274             helper.generateDefaultJModule(moduleName, "composite2");
 275             String[] res = {".jcov", "/META-INF/"};
 276             Path imageDir = helper.generateDefaultImage(userOptions2, moduleName).assertSuccess();
 277             helper.checkImage(imageDir, moduleName, res, null);
 278         }
 279 
 280         // module-info.class should not be excluded
 281         {
 282             String[] userOptions = { "--exclude-resources", "/jdk_8194922/module-info.class" };
 283             String moduleName = "jdk_8194922";
 284             helper.generateDefaultJModule(moduleName);
 285             helper.generateDefaultImage(userOptions, moduleName).
 286                 assertFailure("Cannot exclude /jdk_8194922/module-info.class");
 287         }
 288 
 289         // default compress
 290         {
 291             testCompress(helper, "compresscmdcomposite2", "--compress", "2");
 292         }
 293 
 294         {
 295             testCompress(helper, "compressfiltercmdcomposite2",
 296                     "--compress=2:filter=^/java.base/java/lang/*");
 297         }
 298 
 299         // compress 0
 300         {
 301             testCompress(helper, "compress0filtercmdcomposite2",
 302                     "--compress=0:filter=^/java.base/java/lang/*");
 303         }
 304 
 305         // compress 1
 306         {
 307             testCompress(helper, "compress1filtercmdcomposite2",
 308                     "--compress=1:filter=^/java.base/java/lang/*");


< prev index next >