< prev index next >

test/hotspot/jtreg/compiler/graalunit/common/GraalUnitTestLauncher.java

Print this page
rev 54640 : 8223054: [TESTBUG] Put graalJarsCP before existing classpath in GraalUnitTestLauncher
Reviewed-by: duke


 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 
< prev index next >