test/jdk/tools/launcher/ArgsFileTest.java
changeset 59020 aebd72de84b0
parent 47216 71c04702a3d5
equal deleted inserted replaced
59017:51196a273f8c 59020:aebd72de84b0
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /**
    24 /**
    25  * @test
    25  * @test
    26  * @bug 8027634
    26  * @bug 8027634 8231863
    27  * @summary Argument parsing from file
    27  * @summary Argument parsing from file
    28  * @modules jdk.compiler
    28  * @modules jdk.compiler
    29  *          jdk.zipfs
    29  *          jdk.zipfs
    30  * @build TestHelper
    30  * @build TestHelper
    31  * @run main ArgsFileTest
    31  * @run main ArgsFileTest
    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();