author | jlahoda |
Mon, 21 Oct 2019 15:38:26 +0200 | |
changeset 58713 | ad69fd32778e |
parent 52650 | c16b6cc93272 |
child 59021 | cfc7bb9a5a92 |
permissions | -rw-r--r-- |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
1 |
/* |
48433 | 2 |
* Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
4 |
* |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
5 |
* This code is free software; you can redistribute it and/or modify it |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
6 |
* under the terms of the GNU General Public License version 2 only, as |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation. |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
8 |
* |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
9 |
* This code is distributed in the hope that it will be useful, but WITHOUT |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
10 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
11 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
12 |
* version 2 for more details (a copy is included in the LICENSE file that |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
13 |
* accompanied this code). |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
14 |
* |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License version |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
16 |
* 2 along with this work; if not, write to the Free Software Foundation, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
17 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
18 |
* |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
19 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
20 |
* or visit www.oracle.com if you need additional information or have any |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
21 |
* questions. |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
22 |
*/ |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
23 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
24 |
/* |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
25 |
* @test |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
26 |
* @bug 8167057 |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
27 |
* @summary Tests --list-deps, --list-reduced-deps, --print-module-deps options |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
28 |
* @modules java.logging |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
29 |
* java.xml |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
30 |
* jdk.compiler |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
31 |
* jdk.jdeps |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
32 |
* jdk.unsupported |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
33 |
* @library ../lib |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
34 |
* @build CompilerUtils JdepsRunner |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
35 |
* @run testng ListModuleDeps |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
36 |
*/ |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
37 |
|
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
38 |
import java.io.File; |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
39 |
import java.nio.file.Path; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
40 |
import java.nio.file.Paths; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
41 |
import java.util.Arrays; |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
42 |
import java.util.List; |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
43 |
import java.util.stream.Collectors; |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
44 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
45 |
import org.testng.annotations.BeforeTest; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
46 |
import org.testng.annotations.DataProvider; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
47 |
import org.testng.annotations.Test; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
48 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
49 |
import static org.testng.Assert.assertEquals; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
50 |
import static org.testng.Assert.assertTrue; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
51 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
52 |
public class ListModuleDeps { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
53 |
private static final String TEST_SRC = System.getProperty("test.src"); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
54 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
55 |
private static final Path SRC_DIR = Paths.get(TEST_SRC, "src"); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
56 |
private static final Path CLASSES_DIR = Paths.get("classes"); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
57 |
private static final Path LIB_DIR = Paths.get("lib"); |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
58 |
private static final Path LIB2_DIR = Paths.get("lib2"); |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
59 |
|
41998
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
60 |
private static final Path HI_CLASS = |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
61 |
CLASSES_DIR.resolve("hi").resolve("Hi.class"); |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
62 |
private static final Path FOO_CLASS = |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
63 |
CLASSES_DIR.resolve("z").resolve("Foo.class"); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
64 |
private static final Path BAR_CLASS = |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
65 |
CLASSES_DIR.resolve("z").resolve("Bar.class"); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
66 |
private static final Path UNSAFE_CLASS = |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
67 |
CLASSES_DIR.resolve("z").resolve("UseUnsafe.class"); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
68 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
69 |
/** |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
70 |
* Compiles classes used by the test |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
71 |
*/ |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
72 |
@BeforeTest |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
73 |
public void compileAll() throws Exception { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
74 |
// compile library |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
75 |
assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src", "lib2"), LIB2_DIR)); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
76 |
assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src", "lib"), LIB_DIR, "-cp", LIB2_DIR.toString())); |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
77 |
|
41998
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
78 |
// simple program depends only on java.base |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
79 |
assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src", "hi"), CLASSES_DIR)); |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
80 |
|
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
81 |
// compile classes in unnamed module |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
82 |
assertTrue(CompilerUtils.compile(Paths.get(TEST_SRC, "src", "z"), |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
83 |
CLASSES_DIR, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
84 |
"-cp", LIB_DIR.toString(), |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
85 |
"--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
86 |
"--add-exports=java.base/sun.security.util=ALL-UNNAMED", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
87 |
"--add-exports=java.xml/jdk.xml.internal=ALL-UNNAMED" |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
88 |
)); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
89 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
90 |
|
43026
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
91 |
@DataProvider(name = "jdkModules") |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
92 |
public Object[][] jdkModules() { |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
93 |
return new Object[][]{ |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
94 |
{"jdk.compiler", new String[]{ |
58713
ad69fd32778e
8226585: Improve javac messages for using a preview API
jlahoda
parents:
52650
diff
changeset
|
95 |
"java.base/jdk.internal", |
48433 | 96 |
"java.base/jdk.internal.jmod", |
97 |
"java.base/jdk.internal.misc", |
|
43026
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
98 |
"java.base/sun.reflect.annotation", |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
99 |
"java.compiler", |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
100 |
} |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
101 |
}, |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
102 |
}; |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
103 |
} |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
104 |
|
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
105 |
@Test(dataProvider = "jdkModules") |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
106 |
public void testJDKModule(String moduleName, String[] expected) { |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
107 |
JdepsRunner jdeps = JdepsRunner.run( |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
108 |
"--list-deps", "-m", moduleName |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
109 |
); |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
110 |
String[] output = Arrays.stream(jdeps.output()) |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
111 |
.map(s -> s.trim()) |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
112 |
.toArray(String[]::new); |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
113 |
assertEquals(output, expected); |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
114 |
} |
8e8b50c7491d
8172212: jdeps --require and --check should detect the specified module in the image
mchung
parents:
41998
diff
changeset
|
115 |
|
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
116 |
@Test(dataProvider = "listdeps") |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
117 |
public void testListDeps(Path classes, String[] expected) { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
118 |
JdepsRunner jdeps = JdepsRunner.run( |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
119 |
"--class-path", LIB_DIR.toString() + File.pathSeparator + LIB2_DIR.toString(), |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
120 |
"--list-deps", classes.toString() |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
121 |
); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
122 |
String[] output = Arrays.stream(jdeps.output()) |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
123 |
.map(s -> s.trim()) |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
124 |
.toArray(String[]::new); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
125 |
assertEquals(output, expected); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
126 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
127 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
128 |
@Test(dataProvider = "reduceddeps") |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
129 |
public void testListReducedDeps(Path classes, String[] expected) { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
130 |
JdepsRunner jdeps = JdepsRunner.run( |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
131 |
"--class-path", LIB_DIR.toString() + File.pathSeparator + LIB2_DIR.toString(), |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
132 |
"--list-reduced-deps", classes.toString() |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
133 |
); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
134 |
String[] output = Arrays.stream(jdeps.output()) |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
135 |
.map(s -> s.trim()) |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
136 |
.toArray(String[]::new); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
137 |
assertEquals(output, expected); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
138 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
139 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
140 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
141 |
@DataProvider(name = "listdeps") |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
142 |
public Object[][] listdeps() { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
143 |
return new Object[][] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
144 |
{ CLASSES_DIR, new String[] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
145 |
"java.base/jdk.internal.misc", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
146 |
"java.base/sun.security.util", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
147 |
"java.logging", |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
148 |
"java.management", |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
149 |
"java.sql", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
150 |
"java.xml/jdk.xml.internal", |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
151 |
"jdk.unsupported" |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
152 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
153 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
154 |
|
41998
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
155 |
{ HI_CLASS, new String[] { |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
156 |
"java.base" |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
157 |
} |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
158 |
}, |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
159 |
|
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
160 |
{ FOO_CLASS, new String[] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
161 |
"java.base", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
162 |
"java.logging", |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
163 |
"java.management", |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
164 |
"java.sql", |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
165 |
"java.xml" |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
166 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
167 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
168 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
169 |
{ BAR_CLASS, new String[] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
170 |
"java.base/sun.security.util", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
171 |
"java.xml/jdk.xml.internal", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
172 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
173 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
174 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
175 |
{ UNSAFE_CLASS, new String[] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
176 |
"java.base/jdk.internal.misc", |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
177 |
"jdk.unsupported" |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
178 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
179 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
180 |
}; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
181 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
182 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
183 |
@DataProvider(name = "reduceddeps") |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
184 |
public Object[][] reduceddeps() { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
185 |
Path barClass = CLASSES_DIR.resolve("z").resolve("Bar.class"); |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
186 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
187 |
return new Object[][] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
188 |
{ CLASSES_DIR, new String[] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
189 |
"java.base/jdk.internal.misc", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
190 |
"java.base/sun.security.util", |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
191 |
"java.management", |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
192 |
"java.sql", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
193 |
"java.xml/jdk.xml.internal", |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
194 |
"jdk.unsupported" |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
195 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
196 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
197 |
|
41998
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
198 |
{ HI_CLASS, new String[] { |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
199 |
"java.base" |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
200 |
} |
feae61dc2280
8169606: jdeps --list-reduced-deps should not show java.base as all modules require it
mchung
parents:
41860
diff
changeset
|
201 |
}, |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
202 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
203 |
{ FOO_CLASS, new String[] { |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
204 |
"java.base", |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
205 |
"java.management", |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
206 |
"java.sql" |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
207 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
208 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
209 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
210 |
{ BAR_CLASS, new String[] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
211 |
"java.base/sun.security.util", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
212 |
"java.xml/jdk.xml.internal", |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
213 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
214 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
215 |
|
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
216 |
{ UNSAFE_CLASS, new String[] { |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
217 |
"java.base/jdk.internal.misc", |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
218 |
"jdk.unsupported" |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
219 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
220 |
}, |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
221 |
}; |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
222 |
} |
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
223 |
|
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
224 |
@Test(dataProvider = "moduledeps") |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
225 |
public void testPrintModuleDeps(Path classes, String expected) { |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
226 |
JdepsRunner jdeps = JdepsRunner.run( |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
227 |
"--class-path", LIB_DIR.toString() + File.pathSeparator + LIB2_DIR.toString(), |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
228 |
"--print-module-deps", classes.toString() |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
229 |
); |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
230 |
String output = Arrays.stream(jdeps.output()) |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
231 |
.map(s -> s.trim()) |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
232 |
.collect(Collectors.joining(",")); |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
233 |
assertEquals(output, expected); |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
234 |
} |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
235 |
|
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
236 |
|
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
237 |
@DataProvider(name = "moduledeps") |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
238 |
public Object[][] moduledeps() { |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
239 |
Path barClass = CLASSES_DIR.resolve("z").resolve("Bar.class"); |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
240 |
|
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
241 |
return new Object[][] { |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
242 |
// java.xml is an implied reads edge from java.sql |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
243 |
{ CLASSES_DIR, "java.base,java.management,java.sql,jdk.unsupported"}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
244 |
{ HI_CLASS, "java.base"}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
245 |
{ FOO_CLASS, "java.base,java.management,java.sql"}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
246 |
{ BAR_CLASS, "java.base,java.xml"}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
247 |
{ UNSAFE_CLASS, "java.base,jdk.unsupported"}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
248 |
}; |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
249 |
} |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
250 |
|
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
251 |
@Test(dataProvider = "noRecursiveModuledeps") |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
252 |
public void testNoRecursiveModuleDeps(Path classes, String expected) { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
253 |
JdepsRunner jdeps = JdepsRunner.run( |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
254 |
"--class-path", LIB_DIR.toString() + File.pathSeparator + LIB2_DIR.toString(), |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
255 |
"--print-module-deps", "--no-recursive", classes.toString() |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
256 |
); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
257 |
String output = Arrays.stream(jdeps.output()) |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
258 |
.map(s -> s.trim()) |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
259 |
.collect(Collectors.joining(",")); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
260 |
assertEquals(output, expected); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
261 |
} |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
262 |
|
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
263 |
@DataProvider(name = "noRecursiveModuledeps") |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
264 |
public Object[][] noRecursiveModuledeps() { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
265 |
Path barClass = CLASSES_DIR.resolve("z").resolve("Bar.class"); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
266 |
|
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
267 |
return new Object[][] { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
268 |
// java.xml is an implied reads edge from java.sql |
47357
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
269 |
{ CLASSES_DIR, "java.base,java.sql,jdk.unsupported"}, |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
270 |
{ HI_CLASS, "java.base"}, |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
271 |
{ FOO_CLASS, "java.base,java.sql"}, |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
272 |
{ BAR_CLASS, "java.base,java.xml"}, |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
273 |
{ UNSAFE_CLASS, "java.base,jdk.unsupported"}, |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
274 |
}; |
74700c8e39e9
8189202: (jdeps) Need jdeps output format easy for jlink --add-modules to use
mchung
parents:
47216
diff
changeset
|
275 |
} |
52650
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
276 |
|
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
277 |
@DataProvider(name = "recursiveDeps") |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
278 |
public Object[][] recursiveDeps() { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
279 |
return new Object[][] { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
280 |
{ // lib2 is classpath but not analyzed because lib.Lib is not present |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
281 |
// but it is the only class depending on lib2.Lib2 |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
282 |
List.of("--list-deps", "--class-path", LIB2_DIR.toString(), |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
283 |
"--ignore-missing-deps", CLASSES_DIR.toString()), |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
284 |
new String[] { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
285 |
"java.base/jdk.internal.misc", |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
286 |
"java.base/sun.security.util", |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
287 |
"java.logging", |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
288 |
"java.sql", |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
289 |
"java.xml/jdk.xml.internal", |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
290 |
"jdk.unsupported" |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
291 |
} |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
292 |
}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
293 |
{ // lib2 is classpath but not analyzed because lib.Lib is not present |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
294 |
// but it is the only class depending on lib2.Lib2 |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
295 |
List.of("--print-module-deps", "--class-path", LIB2_DIR.toString(), |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
296 |
"--ignore-missing-deps", CLASSES_DIR.toString()), |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
297 |
new String[] { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
298 |
"java.base,java.sql,jdk.unsupported" |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
299 |
} |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
300 |
}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
301 |
{ // Foo depends on lib.Lib which depends on lib2.Libs |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
302 |
List.of("--print-module-deps", |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
303 |
"--ignore-missing-deps", FOO_CLASS.toString()), |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
304 |
new String[] { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
305 |
"java.base,java.sql" |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
306 |
} |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
307 |
}, |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
308 |
}; |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
309 |
} |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
310 |
|
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
311 |
@Test(dataProvider = "recursiveDeps") |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
312 |
public void testRecursiveDeps(List<String> options, String[] expected) { |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
313 |
JdepsRunner jdeps = JdepsRunner.run(options.toArray(new String[0])); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
314 |
String[] output = Arrays.stream(jdeps.output()) |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
315 |
.map(s -> s.trim()) |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
316 |
.toArray(String[]::new); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
317 |
assertEquals(output, expected); |
c16b6cc93272
8213909: jdeps --print-module-deps should report missing dependences
mchung
parents:
48433
diff
changeset
|
318 |
} |
41860
906670ff49c7
8167057: jdeps option to list modules and internal APIs for @modules for test dev
mchung
parents:
diff
changeset
|
319 |
} |