56 return;
57 }
58
59 helper.generateDefaultModules();
60
61
62 // Test that generate-jli is enabled by default
63 Result result = JImageGenerator.getJLinkTask()
64 .modulePath(helper.defaultModulePath())
65 .output(helper.createNewImageDir("generate-jli"))
66 .addMods("java.base")
67 .call();
68
69 Path image = result.assertSuccess();
70
71 JImageValidator.validate(
72 image.resolve("lib").resolve("modules"),
73 classFilesForSpecies(GenerateJLIClassesPlugin.defaultSpecies()),
74 List.of());
75
76
77 // Test a valid set of options
78 result = JImageGenerator.getJLinkTask()
79 .modulePath(helper.defaultModulePath())
80 .output(helper.createNewImageDir("generate-jli"))
81 .option("--generate-jli-classes=bmh:bmh-species=LL,L3")
82 .addMods("java.base")
83 .call();
84
85 image = result.assertSuccess();
86
87 JImageValidator.validate(
88 image.resolve("lib").resolve("modules"),
89 classFilesForSpecies(List.of("LL", "L3")),
90 classFilesForSpecies(List.of("L4")));
91
92
93 // Test disabling BMH species generation
94 result = JImageGenerator.getJLinkTask()
95 .modulePath(helper.defaultModulePath())
96 .output(helper.createNewImageDir("generate-jli"))
97 .option("--generate-jli-classes=not-bmh:bmh-species=LL,L3")
98 .addMods("java.base")
99 .call();
100
101 image = result.assertSuccess();
102 JImageValidator.validate(
103 image.resolve("lib").resolve("modules"),
104 List.of(),
105 classFilesForSpecies(List.of("LL", "L3", "L4")));
106
107
108 // Test an invalid set of options
109 result = JImageGenerator.getJLinkTask()
110 .modulePath(helper.defaultModulePath())
111 .output(helper.createNewImageDir("generate-jli"))
112 .option("--generate-jli-classes=bmh:bmh-species=LL,L7V")
113 .addMods("java.base")
114 .call();
115
116 result.assertFailure();
117 }
118
119 private static List<String> classFilesForSpecies(List<String> species) {
120 return species.stream()
121 .map(s -> "/java.base/java/lang/invoke/BoundMethodHandle$Species_" + s + ".class")
122 .collect(Collectors.toList());
123 }
124 }
|
56 return;
57 }
58
59 helper.generateDefaultModules();
60
61
62 // Test that generate-jli is enabled by default
63 Result result = JImageGenerator.getJLinkTask()
64 .modulePath(helper.defaultModulePath())
65 .output(helper.createNewImageDir("generate-jli"))
66 .addMods("java.base")
67 .call();
68
69 Path image = result.assertSuccess();
70
71 JImageValidator.validate(
72 image.resolve("lib").resolve("modules"),
73 classFilesForSpecies(GenerateJLIClassesPlugin.defaultSpecies()),
74 List.of());
75
76 }
77
78 private static List<String> classFilesForSpecies(List<String> species) {
79 return species.stream()
80 .map(s -> "/java.base/java/lang/invoke/BoundMethodHandle$Species_" + s + ".class")
81 .collect(Collectors.toList());
82 }
83 }
|