Fri, 24 Apr 2020 03:58:51 +0100
Merge
1 /*
2 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
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
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
24 /*
25 * @test
26 * @bug 6400207
27 * @summary JSR 199: JavaFileManager.list and unset location
28 * @author Peter von der Ah\u00e9
29 */
31 import java.util.*;
32 import javax.tools.*;
33 import static javax.tools.StandardLocation.*;
34 import static javax.tools.JavaFileObject.Kind.*;
36 public class T6400207 {
37 static void testList(JavaFileManager fm,
38 JavaFileManager.Location location,
39 String packageName,
40 Set<JavaFileObject.Kind> kinds) throws Exception {
41 boolean expectNpe =
42 location == null ||
43 packageName == null ||
44 kinds == null;
45 try {
46 fm.list(location, packageName, kinds, false);
47 if (expectNpe) {
48 String message = "NullPointerException not thrown";
49 if (location == null)
50 throw new AssertionError(message + " (location is null)");
51 if (packageName == null)
52 throw new AssertionError(message + " (packageName is null)");
53 if (kinds == null)
54 throw new AssertionError(message + " (kinds is null)");
55 throw new AssertionError(message);
56 }
57 } catch (NullPointerException e) {
58 if (!expectNpe)
59 throw e;
60 }
61 }
63 public static void main(String... args) throws Exception {
64 JavaFileManager fm =
65 ToolProvider.getSystemJavaCompiler().getStandardFileManager(null, null, null);
66 JavaFileManager.Location bogusLocation = locationFor("bogus");
67 JavaFileManager.Location knownLocation = CLASS_PATH;
68 String packageName = "java.lang";
69 Set<JavaFileObject.Kind> kinds = EnumSet.of(CLASS);
71 for (StandardLocation location : StandardLocation.values()) {
72 if (location != locationFor(location.getName()))
73 throw new AssertionError(location + " != locationFor(" +
74 location.getName() + ")");
75 }
77 testList(fm, null, null, null);
78 testList(fm, bogusLocation, packageName, kinds);
79 testList(fm, knownLocation, packageName, kinds);
80 testList(fm, null, packageName, kinds);
81 testList(fm, knownLocation, null, kinds);
82 testList(fm, knownLocation, packageName, null);
83 testList(fm, bogusLocation, null, kinds);
84 testList(fm, bogusLocation, packageName, null);
86 System.err.println("Test PASSED.");
87 }
88 }