diff --git a/test/jdk/tools/jlink/basic/BasicTest.java b/test/jdk/tools/jlink/basic/BasicTest.java --- a/test/jdk/tools/jlink/basic/BasicTest.java +++ b/test/jdk/tools/jlink/basic/BasicTest.java @@ -120,13 +120,16 @@ String cmd = image.resolve("bin").resolve(scriptName).toString(); OutputAnalyzer analyzer; if (System.getProperty("os.name").startsWith("Windows")) { - analyzer = ProcessTools.executeProcess("sh.exe", cmd, "12", "8", "7"); + analyzer = ProcessTools.executeProcess("sh.exe", cmd, "12", "8", "7", "--", "foo bar"); } else { - analyzer = ProcessTools.executeProcess(cmd, "12", "8", "7"); + analyzer = ProcessTools.executeProcess(cmd, "12", "8", "7", "--", "foo bar"); } + System.out.println(analyzer.getOutput()); if (analyzer.getExitValue() != 27) { throw new AssertionError("Image invocation failed: expected 27, rc=" + analyzer.getExitValue()); } + // last argument contains space and should be properly quoted. + analyzer.stdoutShouldContain("Num args: 5"); } private void execute(Path image, String scriptName) throws Throwable { diff --git a/test/jdk/tools/jlink/basic/src/test/jdk/test/Adder.java b/test/jdk/tools/jlink/basic/src/test/jdk/test/Adder.java --- a/test/jdk/tools/jlink/basic/src/test/jdk/test/Adder.java +++ b/test/jdk/tools/jlink/basic/src/test/jdk/test/Adder.java @@ -23,12 +23,18 @@ package jdk.test; +import java.util.Arrays; + public class Adder { public static void main(String[] args) { System.out.println(Adder.class + " ..."); + System.out.println("Num args: " + args.length); + System.out.println("args list: " + Arrays.asList(args)); int sum = 0; for (String arg: args) { - System.out.println(arg); + if ("--".equals(arg)) { + break; + } sum += Integer.parseInt(arg); } System.exit(sum); // checked by the test