< prev index next >
test/tools/jlink/bindservices/SuggestProviders.java
Print this page
@@ -58,11 +58,11 @@
private static final String MODULE_PATH =
Paths.get(JAVA_HOME, "jmods").toString() +
File.pathSeparator + MODS_DIR.toString();
// the names of the modules in this test
- private static String[] modules = new String[] {"m1", "m2", "m3"};
+ private static String[] modules = new String[] {"m1", "m2", "m3", "m4"};
private static boolean hasJmods() {
if (!Files.exists(Paths.get(JAVA_HOME, "jmods"))) {
System.err.println("Test skipped. NO jmods directory");
@@ -169,19 +169,85 @@
String expected = "--bind-services option is specified. No additional providers suggested.";
assertTrue(output.contains(expected));
}
+ @Test
+ public void suggestTypeNotRealProvider() throws Throwable {
+ if (!hasJmods()) return;
+
+ List<String> output =
+ JLink.run("--module-path", MODULE_PATH,
+ "--add-modules", "m1",
+ "--suggest-providers",
+ "java.util.List").output();
+
+ System.out.println(output);
+ List<String> expected = List.of(
+ "Services specified in --suggest-providers not used: java.util.List"
+ );
+
+ assertTrue(output.containsAll(expected));
+ }
+
+// @Test @ignore JDK-8178405
+ public void noOneUsesProvider() throws Throwable {
+ if (!hasJmods()) return;
+
+ List<String> output =
+ JLink.run("--module-path", MODULE_PATH,
+ "--add-modules", "m4",
+ "--suggest-providers",
+ "p4.Impl").output();
+
+ System.out.println(output);
+ List<String> expected = List.of(
+ "Services specified in --suggest-providers not used: p4.Impl"
+ );
+
+ assertTrue(output.containsAll(expected));
+ }
+
+// @Test @ignore JDK-8178404
+ public void nonObservableModule() throws Throwable {
+ if (!hasJmods()) return;
+
+ List<String> output =
+ JLink.run(false,
+ "--module-path", MODULE_PATH,
+ "--add-modules", "nonExistentModule",
+ "--suggest-providers",
+ "java.nio.charset.spi.CharsetProvider").output();
+
+ System.out.println(output);
+ List<String> expected = List.of(
+ "Error: Module nonExistentModule not found"
+ );
+
+ assertTrue(output.containsAll(expected));
+ }
+
static class JLink {
static final ToolProvider JLINK_TOOL = ToolProvider.findFirst("jlink")
.orElseThrow(() ->
new RuntimeException("jlink tool not found")
);
static JLink run(String... options) {
+ return run(true, options);
+ }
+
+ static JLink run(boolean expectSuccess, String... options) {
JLink jlink = new JLink();
- assertTrue(jlink.execute(options) == 0);
+ if (expectSuccess){
+ assertEquals(jlink.execute(options), 0 ,
+ "Jlink failed.");
+ }
+ else {
+ assertNotEquals(jlink.execute(options), 0,
+ "Jlink succeeded. Expect to fail.");
+ }
return jlink;
}
final List<String> output = new ArrayList<>();
private int execute(String... options) {
< prev index next >