71 private static final String JAVA_PATH = JDKToolFinder.getJDKTool("java"); |
71 private static final String JAVA_PATH = JDKToolFinder.getJDKTool("java"); |
72 private static final Path TEST_CLASS = TEST_CLASSES.resolve(TEST_PROCESS_MAIN_CLASS_PACKAGE) |
72 private static final Path TEST_CLASS = TEST_CLASSES.resolve(TEST_PROCESS_MAIN_CLASS_PACKAGE) |
73 .resolve(TEST_PROCESS_MAIN_CLASS_NAME + ".class"); |
73 .resolve(TEST_PROCESS_MAIN_CLASS_NAME + ".class"); |
74 |
74 |
75 private static final String[] CP_OPTIONS = {"-cp", "-classpath", "--class-path"}; |
75 private static final String[] CP_OPTIONS = {"-cp", "-classpath", "--class-path"}; |
76 private static final String[][] VM_ARGS = {{}, {"-Dtest1=aaa"}, {"-Dtest1=aaa", "-Dtest2=bbb"}}; |
76 private static final String[][] VM_ARGS = {{}, {"-Dtest1=aaa"}, {"-Dtest1=aaa", "-Dtest2=bbb ccc"}}; |
77 private static final String[][] ARGS = {{}, {"param1"}, {"param1", "param2"}}; |
77 private static final String[][] ARGS = {{}, {"param1"}, {"param1", "param2"}}; |
78 private static final String[] MP_OPTIONS = {"-p", "--module-path"}; |
78 private static final String[] MP_OPTIONS = {"-p", "--module-path"}; |
79 private static final String[] MODULE_OPTIONS = {"-m", "--module"}; |
79 private static final String[] MODULE_OPTIONS = {"-m", "--module", "--module="}; |
80 private static final String JAR_OPTION = "-jar"; |
80 private static final String JAR_OPTION = "-jar"; |
81 private static final String MODULE_NAME = "module1"; |
81 private static final String MODULE_NAME = "module1"; |
82 |
82 private static final String[][] EXTRA_MODULAR_OPTIONS = {null, |
|
83 {"--add-opens", "java.base/java.net=ALL-UNNAMED"}, |
|
84 {"--add-exports", "java.base/java.net=ALL-UNNAMED"}, |
|
85 {"--add-reads", "java.base/java.net=ALL-UNNAMED"}, |
|
86 {"--add-modules", "java.management"}, |
|
87 {"--limit-modules", "java.management"}, |
|
88 {"--upgrade-module-path", "test"}}; |
|
89 |
|
90 private static final String[] PATCH_MODULE_OPTIONS = {"--patch-module", null}; |
83 |
91 |
84 public static void main(String[] args) throws Exception { |
92 public static void main(String[] args) throws Exception { |
85 new TestProcessHelper().runTests(); |
93 new TestProcessHelper().runTests(); |
86 } |
94 } |
87 |
95 |
95 // and with different combinations of VM and program args. |
103 // and with different combinations of VM and program args. |
96 private void testClassPath() throws Exception { |
104 private void testClassPath() throws Exception { |
97 for (String cp : CP_OPTIONS) { |
105 for (String cp : CP_OPTIONS) { |
98 for (String[] vma : VM_ARGS) { |
106 for (String[] vma : VM_ARGS) { |
99 for (String[] arg : ARGS) { |
107 for (String[] arg : ARGS) { |
100 List<String> cmd = new LinkedList<>(); |
108 for (String[] modularOptions : EXTRA_MODULAR_OPTIONS) { |
101 cmd.add(JAVA_PATH); |
109 List<String> cmd = new LinkedList<>(); |
102 cmd.add(cp); |
110 cmd.add(JAVA_PATH); |
103 cmd.add(TEST_CLASSES.toAbsolutePath().toString()); |
111 cmd.add(cp); |
104 for (String v : vma) { |
112 cmd.add(TEST_CLASSES.toAbsolutePath().toString()); |
105 cmd.add(v); |
113 for (String v : vma) { |
|
114 cmd.add(v); |
|
115 } |
|
116 if (modularOptions != null) { |
|
117 cmd.add(modularOptions[0]); |
|
118 cmd.add(modularOptions[1]); |
|
119 } |
|
120 cmd.add(TEST_PROCESS_MAIN_CLASS); |
|
121 for (String a : arg) { |
|
122 cmd.add(a); |
|
123 } |
|
124 testProcessHelper(cmd, TEST_PROCESS_MAIN_CLASS); |
106 } |
125 } |
107 cmd.add(TEST_PROCESS_MAIN_CLASS); |
|
108 for (String a : arg) { |
|
109 cmd.add(a); |
|
110 } |
|
111 testProcessHelper(cmd, TEST_PROCESS_MAIN_CLASS); |
|
112 } |
126 } |
113 } |
127 } |
114 } |
128 } |
115 } |
129 } |
116 |
130 |
142 prepareModule(); |
156 prepareModule(); |
143 for (String mp : MP_OPTIONS) { |
157 for (String mp : MP_OPTIONS) { |
144 for (String m : MODULE_OPTIONS) { |
158 for (String m : MODULE_OPTIONS) { |
145 for (String[] vma : VM_ARGS) { |
159 for (String[] vma : VM_ARGS) { |
146 for (String[] arg : ARGS) { |
160 for (String[] arg : ARGS) { |
147 List<String> cmd = new LinkedList<>(); |
161 for(String patchModuleOption : PATCH_MODULE_OPTIONS) { |
148 cmd.add(JAVA_PATH); |
162 List<String> cmd = new LinkedList<>(); |
149 cmd.add(mp); |
163 cmd.add(JAVA_PATH); |
150 cmd.add(TEST_MODULES.toAbsolutePath().toString()); |
164 cmd.add(mp); |
151 for (String v : vma) { |
165 cmd.add(TEST_MODULES.toAbsolutePath().toString()); |
152 cmd.add(v); |
166 if (patchModuleOption != null) { |
153 } |
167 cmd.add(patchModuleOption); |
154 cmd.add(m); |
168 cmd.add(MODULE_NAME + "=" + TEST_MODULES.toAbsolutePath().toString()); |
155 cmd.add(MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS); |
169 } |
156 for (String a : arg) { |
170 for (String v : vma) { |
157 cmd.add(a); |
171 cmd.add(v); |
158 } |
172 } |
159 testProcessHelper(cmd, MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS); |
173 if (m.endsWith("=")) { |
|
174 cmd.add(m + MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS); |
|
175 } else { |
|
176 cmd.add(m); |
|
177 cmd.add(MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS); |
|
178 } |
|
179 for (String a : arg) { |
|
180 cmd.add(a); |
|
181 } |
|
182 testProcessHelper(cmd, MODULE_NAME + "/" + TEST_PROCESS_MAIN_CLASS); |
|
183 } |
160 } |
184 } |
161 } |
185 } |
162 } |
186 } |
163 } |
187 } |
164 } |
188 } |