59 createJar(testJar, new File("Foo"), tsrc.toString()); |
59 createJar(testJar, new File("Foo"), tsrc.toString()); |
60 |
60 |
61 env.put(JLDEBUG_KEY, "true"); |
61 env.put(JLDEBUG_KEY, "true"); |
62 } |
62 } |
63 |
63 |
64 private File createArgFile(String fname, List<String> lines) throws IOException { |
64 private File createArgFile(String fname, List<String> lines, boolean endWithNewline) throws IOException { |
65 File argFile = new File(fname); |
65 File argFile = new File(fname); |
66 argFile.delete(); |
66 argFile.delete(); |
67 createAFile(argFile, lines); |
67 createAFile(argFile, lines, endWithNewline); |
68 return argFile; |
68 return argFile; |
|
69 } |
|
70 |
|
71 private File createArgFile(String fname, List<String> lines) throws IOException { |
|
72 return createArgFile(fname, lines, true); |
69 } |
73 } |
70 |
74 |
71 private void verifyOptions(List<String> args, TestResult tr) { |
75 private void verifyOptions(List<String> args, TestResult tr) { |
72 if (args.isEmpty()) { |
76 if (args.isEmpty()) { |
73 return; |
77 return; |
264 cpOpt.delete(); |
268 cpOpt.delete(); |
265 jarArg.delete(); |
269 jarArg.delete(); |
266 userArgs.delete(); |
270 userArgs.delete(); |
267 } |
271 } |
268 |
272 |
|
273 @Test |
|
274 public void userApplicationWithoutEmptyLastLine() throws IOException { |
|
275 File cpOpt = createArgFile("cpOpt", Arrays.asList("-classpath ."), false); |
|
276 File vmArgs = createArgFile("vmArgs", Arrays.asList("-Xint"), false); |
|
277 |
|
278 TestResult tr = doExec(env, javaCmd, "-cp", "test.jar", "@cpOpt", "Foo", "-test"); |
|
279 verifyOptions(Arrays.asList("-cp", "test.jar", "-classpath", ".", "Foo", "-test"), tr); |
|
280 verifyUserArgs(Arrays.asList("-test"), tr, 6); |
|
281 |
|
282 tr = doExec(env, javaCmd, "-cp", "test.jar", "@vmArgs", "Foo", "-test"); |
|
283 verifyOptions(Arrays.asList("-cp", "test.jar", "-Xint", "Foo", "-test"), tr); |
|
284 verifyUserArgs(Arrays.asList("-test"), tr, 5); |
|
285 |
|
286 cpOpt.delete(); |
|
287 vmArgs.delete(); |
|
288 } |
|
289 |
269 // test with missing file |
290 // test with missing file |
270 @Test |
291 @Test |
271 public void missingFileNegativeTest() throws IOException { |
292 public void missingFileNegativeTest() throws IOException { |
272 TestResult tr = doExec(javaCmd, "@" + "missing.cmd"); |
293 TestResult tr = doExec(javaCmd, "@" + "missing.cmd"); |
273 tr.checkNegative(); |
294 tr.checkNegative(); |