langtools/test/tools/javac/4846262/CheckEBCDICLocaleTest.java
changeset 31002 b99fa15b3717
parent 31001 cd83acd5f6b5
child 36526 3b41f1c69604
equal deleted inserted replaced
31001:cd83acd5f6b5 31002:b99fa15b3717
    27  * @summary check that javac operates correctly in EBCDIC locale
    27  * @summary check that javac operates correctly in EBCDIC locale
    28  * @library /tools/lib
    28  * @library /tools/lib
    29  * @modules jdk.compiler/com.sun.tools.javac.api
    29  * @modules jdk.compiler/com.sun.tools.javac.api
    30  *          jdk.compiler/com.sun.tools.javac.file
    30  *          jdk.compiler/com.sun.tools.javac.file
    31  *          jdk.compiler/com.sun.tools.javac.main
    31  *          jdk.compiler/com.sun.tools.javac.main
    32  * @ignore 8081538 test CheckEBCDICLocaleTest is failing
       
    33  * @build ToolBox
    32  * @build ToolBox
    34  * @run main CheckEBCDICLocaleTest
    33  * @run main CheckEBCDICLocaleTest
    35  */
    34  */
    36 
    35 
    37 import java.io.File;
    36 import java.io.File;
       
    37 import java.io.FileOutputStream;
       
    38 import java.io.OutputStreamWriter;
    38 import java.io.PrintStream;
    39 import java.io.PrintStream;
       
    40 import java.io.PrintWriter;
    39 import java.nio.charset.Charset;
    41 import java.nio.charset.Charset;
    40 import java.nio.file.Files;
    42 import java.nio.file.Files;
    41 import java.nio.file.Path;
       
    42 import java.nio.file.Paths;
    43 import java.nio.file.Paths;
    43 import java.util.Arrays;
    44 import java.util.Arrays;
    44 import java.util.List;
    45 import java.util.List;
    45 
    46 
    46 public class CheckEBCDICLocaleTest {
    47 public class CheckEBCDICLocaleTest {
    68     public void test() throws Exception {
    69     public void test() throws Exception {
    69         ToolBox tb = new ToolBox();
    70         ToolBox tb = new ToolBox();
    70         tb.writeFile("Test.java", TestSrc);
    71         tb.writeFile("Test.java", TestSrc);
    71         tb.createDirectories("output");
    72         tb.createDirectories("output");
    72 
    73 
    73         Native2Ascii n2a = new Native2Ascii(Charset.forName("IBM1047"));
    74         Charset ebcdic = Charset.forName("IBM1047");
       
    75         Native2Ascii n2a = new Native2Ascii(ebcdic);
    74         n2a.asciiToNative(Paths.get("Test.java"), Paths.get("output", "Test.java"));
    76         n2a.asciiToNative(Paths.get("Test.java"), Paths.get("output", "Test.java"));
    75 
    77 
    76         tb.new JavacTask(ToolBox.Mode.EXEC)
    78         // Use -encoding to specify the encoding with which to read source files
    77                 .redirect(ToolBox.OutputKind.STDERR, "Test.tmp")
    79         // Use a suitable configured output stream for javac diagnostics
    78                 .options("-J-Duser.language=en",
    80         int rc;
    79                         "-J-Duser.region=US",
    81         try (PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream("Test.tmp"), ebcdic))) {
    80                         "-J-Dfile.encoding=IBM1047")
    82             String[] args = { "-encoding", ebcdic.name(), "output/Test.java" };
    81                 .files("output/Test.java")
    83             rc = com.sun.tools.javac.Main.compile(args, out);
    82                 .run(ToolBox.Expect.FAIL);
    84             if (rc != 1)
       
    85                 throw new Exception("unexpected exit from javac: " + rc);
       
    86         }
    83 
    87 
    84         n2a.nativeToAscii(Paths.get("Test.tmp"), Paths.get("Test.out"));
    88         n2a.nativeToAscii(Paths.get("Test.tmp"), Paths.get("Test.out"));
    85 
    89 
    86         List<String> expectLines = Arrays.asList(
    90         List<String> expectLines = Arrays.asList(
    87                 String.format(TestOutTemplate, File.separator).split("\n"));
    91                 String.format(TestOutTemplate, File.separator).split("\n"));