Browse Source

AjcTestCase: Improve forked JVM parameter handling

- Recognise more "fork-worthy" JVM parameters
- Pass on program arguments to program in forked JVM

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
tags/V1_9_21_2
Alexander Kriegisch 2 months ago
parent
commit
512d3fc281

+ 8
- 5
org.aspectj.ajdt.core/src/test/java/org/aspectj/tools/ajc/AjcTestCase.java View File

else if ( else if (
vmargs != null && ( vmargs != null && (
vmargs.contains("--enable-preview") || vmargs.contains("--enable-preview") ||
vmargs.contains("--add-modules") ||
vmargs.contains("--limit-modules") ||
vmargs.contains("--add-reads") ||
vmargs.contains("--add-exports")
vmargs.contains("--add-modules") || vmargs.contains("--limit-modules") ||
vmargs.contains("--add-reads") || vmargs.contains("--add-exports") || vmargs.contains("--add-opens") ||
vmargs.contains("-ea") || vmargs.contains("-enableassertions") ||
vmargs.contains("-Xmx")
) )
) { ) {
// If --add-modules supplied, need to fork the test // If --add-modules supplied, need to fork the test
if (cp.indexOf("aspectjrt")==-1) { if (cp.indexOf("aspectjrt")==-1) {
cp.append(pathSeparator).append(TestUtil.aspectjrtPath().getPath()); cp.append(pathSeparator).append(TestUtil.aspectjrtPath().getPath());
} }
String command = LangUtil.getJavaExecutable().getAbsolutePath() + " " +vmargs+ (cp.length()==0?"":" -classpath " + cp) + " " + className ;
String command = LangUtil.getJavaExecutable().getAbsolutePath() + " " +
vmargs +
(cp.length() == 0 ? "" : " -classpath " + cp) + " " +
className + " " + String.join(" ", args);
if (Ajc.verbose) if (Ajc.verbose)
System.out.println("\nCommand: '" + command + "'\n"); System.out.println("\nCommand: '" + command + "'\n");
// Command is executed using ProcessBuilder to allow setting CWD for ajc sandbox compliance // Command is executed using ProcessBuilder to allow setting CWD for ajc sandbox compliance

Loading…
Cancel
Save