Mercurial > hg > openjdk > lambda > langtools
changeset 2259:c2d9303c3477
8016908: TEST_BUG: removing non-ascii characters causes tests to fail
Reviewed-by: jjg, vromero
author | ksrini |
---|---|
date | Wed, 26 Jun 2013 09:54:46 -0700 |
parents | aceae9ceebbe |
children | 3b2e10524627 |
files | test/tools/javac/api/6437999/T6437999.java test/tools/javac/api/6437999/Utf8.java test/tools/javac/api/T6306137.java |
diffstat | 3 files changed, 38 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/test/tools/javac/api/6437999/T6437999.java Tue Jun 25 20:08:52 2013 +0400 +++ b/test/tools/javac/api/6437999/T6437999.java Wed Jun 26 09:54:46 2013 -0700 @@ -33,11 +33,28 @@ */ import java.io.File; +import java.io.IOException; import java.nio.charset.Charset; +import java.nio.file.Files; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; import javax.tools.*; +import static java.nio.file.StandardOpenOption.*; public class T6437999 extends ToolTester { + final File testFile = new File("Utf8.java"); + T6437999() throws IOException { + createTestFile(); + } + final void createTestFile() throws IOException { + List<String> scratch = new ArrayList<>(); + scratch.add("// @author Peter von der Ah" + (char) 0xe9); + scratch.add("class Utf8{}"); + Files.write(testFile.toPath(), scratch, Charset.forName("UTF-8"), + CREATE, TRUNCATE_EXISTING); + } + static class MyDiagnosticListener implements DiagnosticListener<JavaFileObject> { boolean error = false; public void report(Diagnostic<? extends JavaFileObject> diagnostic) { @@ -55,7 +72,7 @@ dl.error = false; fm = getFileManager(tool, dl, Charset.forName("ASCII")); fm.handleOption("-source", sourceLevel.iterator()); - files = fm.getJavaFileObjects(new File(test_src, "Utf8.java")); + files = fm.getJavaFileObjects(testFile); tool.getTask(null, fm, null, null, null, files).call(); if (!dl.error) throw new AssertionError("No error in ASCII mode"); @@ -63,12 +80,12 @@ dl.error = false; fm = getFileManager(tool, dl, Charset.forName("UTF-8")); fm.handleOption("-source", sourceLevel.iterator()); - files = fm.getJavaFileObjects(new File(test_src, "Utf8.java")); + files = fm.getJavaFileObjects(testFile); task = tool.getTask(null, fm, null, null, null, files); if (dl.error) throw new AssertionError("Error in UTF-8 mode"); } - public static void main(String... args) { + public static void main(String... args) throws IOException { new T6437999().test(args); } }
--- a/test/tools/javac/api/6437999/Utf8.java Tue Jun 25 20:08:52 2013 +0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/** - * @author Peter von der Ah\u00e9 - */ -class Utf8 {}
--- a/test/tools/javac/api/T6306137.java Tue Jun 25 20:08:52 2013 +0400 +++ b/test/tools/javac/api/T6306137.java Wed Jun 26 09:54:46 2013 -0700 @@ -31,8 +31,14 @@ */ import java.io.File; +import java.io.IOException; +import java.nio.charset.Charset; +import java.nio.file.Files; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import javax.tools.*; +import static java.nio.file.StandardOpenOption.*; public class T6306137 { boolean error; @@ -40,8 +46,9 @@ final JavaCompiler compiler; Iterable<? extends JavaFileObject> files; DiagnosticListener<JavaFileObject> dl; + final File testFile = new File("Utf8.java"); - T6306137() { + T6306137() throws IOException { dl = new DiagnosticListener<JavaFileObject>() { public void report(Diagnostic<? extends JavaFileObject> message) { if (message.getKind() == Diagnostic.Kind.ERROR) @@ -56,11 +63,17 @@ }; compiler = ToolProvider.getSystemJavaCompiler(); fm = compiler.getStandardFileManager(dl, null, null); - String srcdir = System.getProperty("test.src"); files = - fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(srcdir, "T6306137.java"))); + fm.getJavaFileObjectsFromFiles(Arrays.asList(testFile)); + createTestFile(); } - + final void createTestFile() throws IOException { + List<String> scratch = new ArrayList<>(); + scratch.add("// @author Peter von der Ah" + (char)0xe9); + scratch.add("class Utf8{}"); + Files.write(testFile.toPath(), scratch, Charset.forName("UTF-8"), + CREATE, TRUNCATE_EXISTING); + } void test(String encoding, boolean good) { error = false; Iterable<String> args = Arrays.asList("-source", "6", "-encoding", encoding, "-d", "."); @@ -74,7 +87,7 @@ } } - public static void main(String[] args) { + public static void main(String[] args) throws IOException { T6306137 self = new T6306137(); self.test("utf-8", true); self.test("ascii", false);