1 /* |
1 /* |
2 * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
26 * @bug 6198196 6278523 |
26 * @bug 6198196 6278523 |
27 * @summary package-info.java: Weird compiler error |
27 * @summary package-info.java: Weird compiler error |
28 * @author Peter von der Ah\u00e9 |
28 * @author Peter von der Ah\u00e9 |
29 */ |
29 */ |
30 |
30 |
|
31 import java.io.IOException; |
31 import java.util.Arrays; |
32 import java.util.Arrays; |
32 import javax.tools.*; |
33 import javax.tools.*; |
33 |
34 |
34 public class T6198196 { |
35 public class T6198196 { |
35 static String pkginf = "package-info"; |
36 static String pkginf = "package-info"; |
40 if (result != fo.isNameCompatible(filename, JavaFileObject.Kind.SOURCE)) |
41 if (result != fo.isNameCompatible(filename, JavaFileObject.Kind.SOURCE)) |
41 throw new AssertionError("endsWith(" + pathname + ", " |
42 throw new AssertionError("endsWith(" + pathname + ", " |
42 + filename + ") != " + result); |
43 + filename + ") != " + result); |
43 System.out.format("OK: endsWith(%s, %s) = %s%n", pathname, filename, result); |
44 System.out.format("OK: endsWith(%s, %s) = %s%n", pathname, filename, result); |
44 } |
45 } |
45 public static void main(String[] args) { |
46 public static void main(String[] args) throws IOException { |
46 fm = ToolProvider.getSystemJavaCompiler().getStandardFileManager(null, null, null); |
47 fm = ToolProvider.getSystemJavaCompiler().getStandardFileManager(null, null, null); |
47 boolean windows = System.getProperty("os.name").startsWith("Windows"); |
48 try { |
48 test("/x/y/z/package-info.java", pkginf, true); |
49 boolean windows = System.getProperty("os.name").startsWith("Windows"); |
49 if (windows) { |
50 test("/x/y/z/package-info.java", pkginf, true); |
50 test("\\x\\y\\z\\package-info.java", pkginf, true); |
51 if (windows) { |
51 test("..\\x\\y\\z\\package-info.java", pkginf, true); |
52 test("\\x\\y\\z\\package-info.java", pkginf, true); |
52 } else { |
53 test("..\\x\\y\\z\\package-info.java", pkginf, true); |
53 test("\\x\\y\\z\\package-info.java", pkginf, false); |
54 } else { |
54 test("..\\x\\y\\z\\package-info.java", pkginf, false); |
55 test("\\x\\y\\z\\package-info.java", pkginf, false); |
|
56 test("..\\x\\y\\z\\package-info.java", pkginf, false); |
|
57 } |
|
58 test("Package-info.java", pkginf, false); |
|
59 test("../x/y/z/package-info.java", pkginf, true); |
|
60 test("/x/y/z/package-info.java", pkginf, true); |
|
61 test("x/y/z/package-info.java", pkginf, true); |
|
62 test("package-info.java", pkginf, true); |
|
63 } finally { |
|
64 fm.close(); |
55 } |
65 } |
56 test("Package-info.java", pkginf, false); |
|
57 test("../x/y/z/package-info.java", pkginf, true); |
|
58 test("/x/y/z/package-info.java", pkginf, true); |
|
59 test("x/y/z/package-info.java", pkginf, true); |
|
60 test("package-info.java", pkginf, true); |
|
61 } |
66 } |
62 } |
67 } |