237 javaFlags.add("-XX:+UnlockExperimentalVMOptions");
238 javaFlags.add("-XX:+EnableJVMCI");
239 javaFlags.add("-Djava.awt.headless=true");
240 javaFlags.add("-esa");
241 javaFlags.add("-ea");
242 // Make sure exception message is never null
243 javaFlags.add("-XX:-OmitStackTraceInFastThrow");
244 // set timeout factor based on jtreg harness settings
245 javaFlags.add("-Dgraaltest.timeout.factor=" + System.getProperty("test.timeout.factor", "1.0"));
246
247 // generate class path
248 ArrayList<String> graalJars = new ArrayList<String>(Arrays.asList(GRAAL_EXTRA_JARS));
249 graalJars.add(MXTOOL_JARFILE);
250 graalJars.add(GRAAL_UNITTESTS_JARFILE);
251
252 String graalJarsCP = graalJars.stream()
253 .map(s -> String.join(File.separator, libsDir, s))
254 .collect(Collectors.joining(File.pathSeparator));
255
256 javaFlags.add("-cp");
257 javaFlags.add(String.join(File.pathSeparator, System.getProperty("java.class.path"), graalJarsCP));
258
259 //
260 javaFlags.add("com.oracle.mxtool.junit.MxJUnitWrapper");
261 javaFlags.add("-JUnitVerbose");
262 javaFlags.add("-JUnitEagerStackTrace");
263 javaFlags.add("-JUnitEnableTiming");
264
265 javaFlags.add("@"+GENERATED_TESTCLASSES_FILENAME);
266
267 ProcessBuilder javaPB = ProcessTools.createJavaProcessBuilder(true,
268 javaFlags.toArray(new String[javaFlags.size()]));
269
270 // Some tests rely on MX_SUBPROCESS_COMMAND_FILE env variable which contains
271 // name of the file with java executable and java args used to launch the current process.
272 Path cmdFile = Files.createTempFile(Path.of(""), "mx_subprocess_", ".cmd");
273 Files.write(cmdFile, javaPB.command());
274 javaPB.environment().put("MX_SUBPROCESS_COMMAND_FILE", cmdFile.toAbsolutePath().toString());
275
276 System.out.println("INFO: run command: " + String.join(" ", javaPB.command()));
277
|
237 javaFlags.add("-XX:+UnlockExperimentalVMOptions");
238 javaFlags.add("-XX:+EnableJVMCI");
239 javaFlags.add("-Djava.awt.headless=true");
240 javaFlags.add("-esa");
241 javaFlags.add("-ea");
242 // Make sure exception message is never null
243 javaFlags.add("-XX:-OmitStackTraceInFastThrow");
244 // set timeout factor based on jtreg harness settings
245 javaFlags.add("-Dgraaltest.timeout.factor=" + System.getProperty("test.timeout.factor", "1.0"));
246
247 // generate class path
248 ArrayList<String> graalJars = new ArrayList<String>(Arrays.asList(GRAAL_EXTRA_JARS));
249 graalJars.add(MXTOOL_JARFILE);
250 graalJars.add(GRAAL_UNITTESTS_JARFILE);
251
252 String graalJarsCP = graalJars.stream()
253 .map(s -> String.join(File.separator, libsDir, s))
254 .collect(Collectors.joining(File.pathSeparator));
255
256 javaFlags.add("-cp");
257 // Existing classpath returned by System.getProperty("java.class.path") may contain another
258 // version of junit with which the jtreg tool is built. It may be incompatible with required
259 // junit version. So we put graalJarsCP before existing classpath when generating a new one
260 // to avoid incompatibility issues.
261 javaFlags.add(String.join(File.pathSeparator, graalJarsCP, System.getProperty("java.class.path")));
262
263 //
264 javaFlags.add("com.oracle.mxtool.junit.MxJUnitWrapper");
265 javaFlags.add("-JUnitVerbose");
266 javaFlags.add("-JUnitEagerStackTrace");
267 javaFlags.add("-JUnitEnableTiming");
268
269 javaFlags.add("@"+GENERATED_TESTCLASSES_FILENAME);
270
271 ProcessBuilder javaPB = ProcessTools.createJavaProcessBuilder(true,
272 javaFlags.toArray(new String[javaFlags.size()]));
273
274 // Some tests rely on MX_SUBPROCESS_COMMAND_FILE env variable which contains
275 // name of the file with java executable and java args used to launch the current process.
276 Path cmdFile = Files.createTempFile(Path.of(""), "mx_subprocess_", ".cmd");
277 Files.write(cmdFile, javaPB.command());
278 javaPB.environment().put("MX_SUBPROCESS_COMMAND_FILE", cmdFile.toAbsolutePath().toString());
279
280 System.out.println("INFO: run command: " + String.join(" ", javaPB.command()));
281
|