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")); |