8304834: Fix wrapper insertion in TestScaffold.parseArgs(String args[])
Reviewed-by: cjplummer, dholmes
This commit is contained in:
parent
19380d74e4
commit
bc15163386
test/jdk
@ -30,17 +30,12 @@ com/sun/jdi/EATests.java#id0 8264699 generic-
|
||||
com/sun/jdi/DeferredStepTest.java 8285422 generic-all
|
||||
com/sun/jdi/EarlyReturnTest.java 8285422 generic-all
|
||||
com/sun/jdi/ExceptionEvents.java 8285422 generic-all
|
||||
com/sun/jdi/FetchLocals.java 8285422 generic-all
|
||||
com/sun/jdi/Frames2Test.java 8285422 generic-all
|
||||
com/sun/jdi/GetSetLocalTest.java 8285422 generic-all
|
||||
com/sun/jdi/JdbMethodExitTest.java 8285422 generic-all
|
||||
com/sun/jdi/JdbStepTest.java 8285422 generic-all
|
||||
com/sun/jdi/JdbStopThreadTest.java 8285422 generic-all
|
||||
com/sun/jdi/JdbStopThreadidTest.java 8285422 generic-all
|
||||
com/sun/jdi/LaunchCommandLine.java 8285422 generic-all
|
||||
com/sun/jdi/MethodEntryExitEvents.java 8285422 generic-all
|
||||
com/sun/jdi/MultiBreakpointsTest.java 8285422 generic-all
|
||||
com/sun/jdi/NativeInstanceFilter.java 8285422 generic-all
|
||||
com/sun/jdi/PopAndStepTest.java 8285422 generic-all
|
||||
com/sun/jdi/PopAsynchronousTest.java 8285422 generic-all
|
||||
com/sun/jdi/PopSynchronousTest.java 8285422 generic-all
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -230,7 +230,7 @@ public class MultiBreakpointsTest extends TestScaffold {
|
||||
nhits = Integer.parseInt(countStr);
|
||||
}
|
||||
|
||||
args = new String[] { "-J-Dnthreads=" + nthreads, "-J-Dnhits=" + nhits} ;
|
||||
args = new String[] { "-Dnthreads=" + nthreads, "-Dnhits=" + nhits} ;
|
||||
new MultiBreakpointsTest(args).startTests();
|
||||
}
|
||||
|
||||
|
@ -461,44 +461,64 @@ abstract public class TestScaffold extends TargetAdapter {
|
||||
testFailed = true;
|
||||
}
|
||||
|
||||
final List<String> doubleWordArgs = List.of("-cp", "-classpath", "--add-opens", "--class-path",
|
||||
"--upgrade-module-path", "--add-modules", "-d", "--add-exports", "--patch-module", "--module-path");
|
||||
|
||||
private ArgInfo parseArgs(String args[]) {
|
||||
ArgInfo argInfo = new ArgInfo();
|
||||
String mainWrapper = System.getProperty("main.wrapper");
|
||||
if ("Virtual".equals(mainWrapper)) {
|
||||
argInfo.targetAppCommandLine = TestScaffold.class.getName() + " " + mainWrapper + " ";
|
||||
} else if ("true".equals(System.getProperty("test.enable.preview"))) {
|
||||
// the test specified @enablePreview.
|
||||
argInfo.targetVMArgs += "--enable-preview ";
|
||||
}
|
||||
|
||||
// Parse arguments, like java/j* tools command-line arguments.
|
||||
// The first argument not-starting with '-' is treated as a classname.
|
||||
// The other arguments are split to targetVMArgs targetAppCommandLine correspondingly.
|
||||
// The example of args for line '@run driver Frames2Test -Xss4M' is '-Xss4M' 'Frames2Targ'.
|
||||
// The result without any wrapper enabled:
|
||||
// argInfo.targetAppCommandLine : Frames2Targ
|
||||
// argInfo.targetVMArgs : -Xss4M
|
||||
// The result with wrapper enabled:
|
||||
// argInfo.targetAppCommandLine : TestScaffold Virtual Frames2Targ
|
||||
// argInfo.targetVMArgs : -Xss4M
|
||||
boolean classNameParsed = false;
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
if (args[i].equals("-connect")) {
|
||||
String arg = args[i].trim();
|
||||
if (classNameParsed) {
|
||||
// once classname is read, treat any other arguments as app arguments
|
||||
argInfo.targetAppCommandLine += (arg + ' ');
|
||||
continue;
|
||||
}
|
||||
if (arg.equals("-connect")) {
|
||||
i++;
|
||||
argInfo.connectorSpec = args[i];
|
||||
} else if (args[i].equals("-trace")) {
|
||||
} else if (arg.equals("-trace")) {
|
||||
i++;
|
||||
argInfo.traceFlags = Integer.decode(args[i]).intValue();
|
||||
} else if (args[i].equals("-redefstart")) {
|
||||
} else if (arg.equals("-redefstart")) {
|
||||
redefineAtStart = true;
|
||||
} else if (args[i].equals("-redefevent")) {
|
||||
} else if (arg.equals("-redefevent")) {
|
||||
redefineAtEvents = true;
|
||||
} else if (args[i].equals("-redefasync")) {
|
||||
} else if (arg.equals("-redefasync")) {
|
||||
redefineAsynchronously = true;
|
||||
} else if (args[i].startsWith("-J")) {
|
||||
argInfo.targetVMArgs += (args[i].substring(2) + ' ');
|
||||
|
||||
/*
|
||||
* classpath can span two arguments so we need to handle
|
||||
* it specially.
|
||||
*/
|
||||
if (args[i].equals("-J-classpath")) {
|
||||
} else if (arg.startsWith("-J")) {
|
||||
throw new RuntimeException("-J-option format is not supported. Incorrect arg: " + arg);
|
||||
} else if (arg.startsWith("-")) {
|
||||
argInfo.targetVMArgs += (arg + ' ');
|
||||
if (doubleWordArgs.contains(arg)) {
|
||||
i++;
|
||||
argInfo.targetVMArgs += (args[i] + ' ');
|
||||
}
|
||||
} else {
|
||||
argInfo.targetAppCommandLine += (args[i] + ' ');
|
||||
classNameParsed = true;
|
||||
argInfo.targetAppCommandLine += (arg + ' ');
|
||||
}
|
||||
}
|
||||
|
||||
// Need to change args to run wrapper using command like 'TestScaffold Virtual <app-name>'
|
||||
String mainWrapper = System.getProperty("main.wrapper");
|
||||
if (mainWrapper != null && !argInfo.targetAppCommandLine.isEmpty()) {
|
||||
argInfo.targetAppCommandLine = TestScaffold.class.getName() + ' '
|
||||
+ mainWrapper + ' ' + argInfo.targetAppCommandLine;
|
||||
} else if ("true".equals(System.getProperty("test.enable.preview"))) {
|
||||
// the test specified @enablePreview.
|
||||
argInfo.targetVMArgs += "--enable-preview ";
|
||||
}
|
||||
return argInfo;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user