langtools/test/tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java
author vromero
Sat, 17 Dec 2016 16:57:14 -0500
changeset 42837 03ee805ba348
parent 41861 8c58faf4f03b
permissions -rw-r--r--
8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562 Reviewed-by: jjg
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     1
/*
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     2
 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     4
 *
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     7
 * published by the Free Software Foundation.
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     8
 *
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    13
 * accompanied this code).
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    14
 *
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    18
 *
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    21
 * questions.
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    22
 */
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    23
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    24
/**
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    25
 * @test
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    26
 * @bug 8132562
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    27
 * @summary javac fails with CLASSPATH with double-quotes as an environment variable
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    28
 * @library /tools/lib
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    29
 * @modules jdk.compiler/com.sun.tools.javac.api
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    30
 *          jdk.compiler/com.sun.tools.javac.main
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    31
 *          jdk.compiler/com.sun.tools.javac.util
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    32
 * @build toolbox.ToolBox toolbox.JavacTask
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    33
 * @run main ClassPathWithDoubleQuotesTest
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    34
*/
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    35
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    36
import java.io.File;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    37
import java.nio.file.Path;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    38
import java.nio.file.Paths;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    39
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    40
import com.sun.tools.javac.util.Assert;
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    41
import toolbox.TestRunner;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    42
import toolbox.JarTask;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    43
import toolbox.JavacTask;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    44
import toolbox.Task;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    45
import toolbox.ToolBox;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    46
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    47
public class ClassPathWithDoubleQuotesTest extends TestRunner {
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    48
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    49
    ToolBox tb;
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    50
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    51
    private static final String ASrc = "public class A { J j; B b;}";
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    52
    private static final String BSrc = "public class B {}";
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    53
    private static final String JarSrc = "public class J {}";
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    54
    private static final String[] jarArgs = {"cf", "test/jarOut/J.jar", "-C", "test/jarSrc", "J.java"};
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    55
    public static final String NEW_LINE = System.getProperty("line.separator");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    56
    private static final String expectedFailureOutput1 =
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    57
            "A.java:1:18: compiler.err.cant.resolve.location: kindname.class, J, , , (compiler.misc.location: kindname.class, A, null)" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    58
            "A.java:1:23: compiler.err.cant.resolve.location: kindname.class, B, , , (compiler.misc.location: kindname.class, A, null)" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    59
            "2 errors" + NEW_LINE;
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    60
    private static final String expectedFailureOutput2A =
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    61
            "- compiler.warn.invalid.path: \"test/jarOut/J.jar" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    62
            "- compiler.warn.invalid.path: test/src\"" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    63
            "A.java:1:18: compiler.err.cant.resolve.location: kindname.class, J, , , (compiler.misc.location: kindname.class, A, null)" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    64
            "A.java:1:23: compiler.err.cant.resolve.location: kindname.class, B, , , (compiler.misc.location: kindname.class, A, null)" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    65
            "2 errors" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    66
            "2 warnings" + NEW_LINE;
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    67
    private static final String expectedFailureOutput2B =
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    68
            "- compiler.warn.path.element.not.found: \"test/jarOut/J.jar" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    69
            "- compiler.warn.path.element.not.found: test/src\"" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    70
            "A.java:1:18: compiler.err.cant.resolve.location: kindname.class, J, , , (compiler.misc.location: kindname.class, A, null)" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    71
            "A.java:1:23: compiler.err.cant.resolve.location: kindname.class, B, , , (compiler.misc.location: kindname.class, A, null)" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    72
            "2 errors" + NEW_LINE +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    73
            "2 warnings" + NEW_LINE;
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    74
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    75
    public static void main(String... args) throws Exception {
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    76
        new ClassPathWithDoubleQuotesTest().runTests();
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    77
    }
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    78
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    79
    ClassPathWithDoubleQuotesTest() {
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    80
        super(System.err);
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    81
        tb = new ToolBox();
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    82
    }
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    83
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    84
    public void runTests() throws Exception {
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    85
        runTests(m -> new Object[] { Paths.get(m.getName()) });
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    86
    }
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    87
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    88
    @Test
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    89
    public void test(Path base) throws Exception {
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    90
        Path current = base.resolve(".");
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    91
        Path jarSrc = current.resolve("jarSrc");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    92
        tb.writeJavaFiles(jarSrc, JarSrc);
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    93
        Path jarOut = current.resolve("jarOut");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    94
        tb.createDirectories(jarOut);
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    95
        new JarTask(tb).run(jarArgs).writeAll();
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    96
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    97
        Path src = current.resolve("src");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
    98
        tb.writeJavaFiles(src, ASrc, BSrc);
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
    99
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   100
        /** In any system there can be three possible scenarios:
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   101
         *  1 - The system swallows the problem character (the quote in this case)
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   102
         *      and the test case compiles
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   103
         *  2 - The problem character gets into javac, but it's not bad enough to trigger
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   104
         *      InvalidPathException, but it does mean you can't find the file you're looking for
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   105
         *  3 - The problem character gets into javac and is bad enough to trigger
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   106
         *      InvalidPathException, in which case javac needs to handle the exception in a reasonable way.
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   107
         */
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   108
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   109
        // testing scenario 1
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   110
        System.err.println("invoking javac EXEC mode without double quotes in the CLASSPATH env variable");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   111
        new JavacTask(tb, Task.Mode.EXEC)
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   112
                .envVar("CLASSPATH", "test/jarOut/J.jar" + File.pathSeparator + "test/src")
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   113
                .files("test/src/A.java").run(Task.Expect.SUCCESS);
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   114
        System.err.println("successful compilation");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   115
        System.err.println();
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
   116
42837
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   117
        // testing scenario 2
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   118
        System.err.println("Simulate a system in which double quotes are preserved in the environment variable," +
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   119
                "and for which they are a legal filename character");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   120
        String log = new JavacTask(tb, Task.Mode.EXEC)
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   121
                .envVar("CLASSPATH", "Ztest/jarOut/J.jar" + File.pathSeparator + "test/srcZ")
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   122
                .options("-XDrawDiagnostics")
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   123
                .files("test/src/A.java").run(Task.Expect.FAIL)
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   124
                .writeAll()
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   125
                .getOutput(Task.OutputKind.STDERR);
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   126
        Assert.check(log.equals(expectedFailureOutput1), "unexpected output");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   127
        System.err.println("compilation is expected to fail");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   128
        System.err.println();
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   129
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   130
        // testing scenario 3
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   131
        System.err.println("invoking javac EXEC mode with double quotes in the CLASSPATH env variable");
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   132
        String log2 = new JavacTask(tb, Task.Mode.EXEC)
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   133
                    .envVar("CLASSPATH", "\"test/jarOut/J.jar" + File.pathSeparator + "test/src\"")
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   134
                    .options("-Xlint:path", "-XDrawDiagnostics")
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   135
                    .files("test/src/A.java").run(Task.Expect.FAIL)
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   136
                    .writeAll()
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   137
                    .getOutput(Task.OutputKind.STDERR);
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   138
        System.err.println();
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   139
        System.err.println("the log:" + log2);
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   140
        Assert.check(log2.equals(expectedFailureOutput2A) || log2.equals(expectedFailureOutput2B),
03ee805ba348 8169005: tools/javac/T8132562/ClassPathWithDoubleQuotesTest.java fails after fix to JDK-8132562
vromero
parents: 41861
diff changeset
   141
                "unexpected output");
41861
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
   142
    }
8c58faf4f03b 8132562: javac fails with CLASSPATH with double-quotes as an environment variable
vromero
parents:
diff changeset
   143
}