1 /* |
1 /* |
2 * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2009, 2011 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. |
57 // cover all sources of file objects within JavacFileManager's support classes |
57 // cover all sources of file objects within JavacFileManager's support classes |
58 |
58 |
59 test(createFileManager(), createDir("dir", entries), "p", entries); |
59 test(createFileManager(), createDir("dir", entries), "p", entries); |
60 test(createFileManager(), createDir("a b/dir", entries), "p", entries); |
60 test(createFileManager(), createDir("a b/dir", entries), "p", entries); |
61 |
61 |
62 for (boolean useJavaUtilZip: new boolean[] { false, true }) { |
62 for (boolean useOptimizedZip: new boolean[] { false, true }) { |
63 test(createFileManager(useJavaUtilZip), createJar("jar", entries), "p", entries); |
63 test(createFileManager(useOptimizedZip), createJar("jar", entries), "p", entries); |
64 test(createFileManager(useJavaUtilZip), createJar("jar jar", entries), "p", entries); |
64 test(createFileManager(useOptimizedZip), createJar("jar jar", entries), "p", entries); |
65 |
65 |
66 for (boolean useSymbolFile: new boolean[] { false, true }) { |
66 for (boolean useSymbolFile: new boolean[] { false, true }) { |
67 test(createFileManager(useJavaUtilZip, useSymbolFile), rt_jar, "java.lang.ref", null); |
67 test(createFileManager(useOptimizedZip, useSymbolFile), rt_jar, "java.lang.ref", null); |
68 } |
68 } |
69 } |
69 } |
70 |
70 |
71 if (errors > 0) |
71 if (errors > 0) |
72 throw new Exception(errors + " errors found"); |
72 throw new Exception(errors + " errors found"); |
143 |
143 |
144 JavacFileManager createFileManager() { |
144 JavacFileManager createFileManager() { |
145 return createFileManager(false, false); |
145 return createFileManager(false, false); |
146 } |
146 } |
147 |
147 |
148 JavacFileManager createFileManager(boolean useJavaUtilZip) { |
148 JavacFileManager createFileManager(boolean useOptimizedZip) { |
149 return createFileManager(useJavaUtilZip, false); |
149 return createFileManager(useOptimizedZip, false); |
150 } |
150 } |
151 |
151 |
152 JavacFileManager createFileManager(boolean useJavaUtilZip, boolean useSymbolFile) { |
152 JavacFileManager createFileManager(boolean useOptimizedZip, boolean useSymbolFile) { |
153 // javac should really not be using system properties like this |
153 Context c = new Context(); |
154 // -- it should really be using (hidden) options -- but until then |
154 Options options = Options.instance(c); |
155 // take care to leave system properties as we find them, so as not |
155 |
156 // to adversely affect other tests that might follow. |
156 if (useOptimizedZip) { |
157 String prev = System.getProperty("useJavaUtilZip"); |
157 options.put("useOptimizedZip", "true"); |
158 boolean resetProperties = false; |
158 } |
159 try { |
159 |
160 if (useJavaUtilZip) { |
|
161 System.setProperty("useJavaUtilZip", "true"); |
|
162 resetProperties = true; |
|
163 } else if (System.getProperty("useJavaUtilZip") != null) { |
|
164 System.getProperties().remove("useJavaUtilZip"); |
|
165 resetProperties = true; |
|
166 } |
|
167 |
|
168 Context c = new Context(); |
|
169 if (!useSymbolFile) { |
160 if (!useSymbolFile) { |
170 Options options = Options.instance(c); |
|
171 options.put("ignore.symbol.file", "true"); |
161 options.put("ignore.symbol.file", "true"); |
172 } |
162 } |
173 |
|
174 return new JavacFileManager(c, false, null); |
163 return new JavacFileManager(c, false, null); |
175 } finally { |
|
176 if (resetProperties) { |
|
177 if (prev == null) { |
|
178 System.getProperties().remove("useJavaUtilZip"); |
|
179 } else { |
|
180 System.setProperty("useJavaUtilZip", prev); |
|
181 } |
|
182 } |
|
183 } |
|
184 } |
164 } |
185 |
165 |
186 File createDir(String name, String... entries) throws Exception { |
166 File createDir(String name, String... entries) throws Exception { |
187 File dir = new File(name); |
167 File dir = new File(name); |
188 if (!dir.mkdirs()) |
168 if (!dir.mkdirs()) |