23
24 import java.nio.file.Path;
25 import java.util.Arrays;
26 import java.util.ArrayList;
27 import java.util.List;
28 import java.util.Locale;
29 import java.util.stream.Collectors;
30
31 import jdk.tools.jlink.plugin.Plugin;
32 import jdk.tools.jlink.plugin.PluginException;
33 import jdk.tools.jlink.internal.PluginRepository;
34 import jdk.tools.jlink.internal.TaskHelper;
35 import jdk.tools.jlink.internal.plugins.PluginsResourceBundle;
36 import tests.Helper;
37 import tests.JImageGenerator;
38 import tests.JImageValidator;
39 import tests.Result;
40
41 /*
42 * @test
43 * @bug 8152143 8152704 8155649 8165804 8185841 8176841 8190918 8179071
44 * @summary IncludeLocalesPlugin tests
45 * @author Naoto Sato
46 * @requires (vm.compMode != "Xcomp" & os.maxMemory >= 2g)
47 * @library ../../lib
48 * @modules java.base/jdk.internal.jimage
49 * jdk.jdeps/com.sun.tools.classfile
50 * jdk.jlink/jdk.tools.jlink.internal
51 * jdk.jlink/jdk.tools.jlink.internal.plugins
52 * jdk.jlink/jdk.tools.jlink.plugin
53 * jdk.jlink/jdk.tools.jmod
54 * jdk.jlink/jdk.tools.jimage
55 * jdk.compiler
56 * @build tests.*
57 * @build tools.jlink.plugins.GetAvailableLocales
58 * @run main/othervm -Xmx1g IncludeLocalesPluginTest
59 */
60 public class IncludeLocalesPluginTest {
61
62 private final static String moduleName = "IncludeLocalesTest";
63 private static Helper helper;
140 "/jdk.localedata/sun/text/resources/ext/thai_dict",
141 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
142 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
143 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
144 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
145 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
146 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class"),
147 List.of(
148 "(root)", "en", "en_US", "en_US_POSIX", "en_001", "en_150", "en_AG", "en_AI",
149 "en_AT", "en_AU", "en_BB", "en_BE", "en_BM", "en_BS", "en_BW", "en_BZ",
150 "en_CA", "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_DE",
151 "en_DG", "en_DK", "en_DM", "en_ER", "en_FI", "en_FJ", "en_FK", "en_FM",
152 "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GY", "en_HK",
153 "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_JE", "en_JM", "en_KE",
154 "en_KI", "en_KN", "en_KY", "en_LC", "en_LR", "en_LS", "en_MG", "en_MO",
155 "en_MS", "en_MT", "en_MU", "en_MW", "en_MY", "en_NA", "en_NF", "en_NG",
156 "en_NL", "en_NR", "en_NU", "en_NZ", "en_PG", "en_PH", "en_PK", "en_PN",
157 "en_PW", "en_RW", "en_SB", "en_SC", "en_SD", "en_SE", "en_SG", "en_SH",
158 "en_SI", "en_SL", "en_SS", "en_SX", "en_SZ", "en_TC", "en_TK", "en_TO",
159 "en_TT", "en_TV", "en_TZ", "en_UG", "en_VC", "en_VG", "en_VU", "en_WS",
160 "en_ZA", "en_ZM", "en_ZW", "es", "es_419", "es_AR", "es_BO", "es_BR",
161 "es_CL", "es_CO", "es_CR", "es_CU", "es_DO", "es_EC", "es_GT", "es_HN",
162 "es_MX", "es_NI", "es_PA", "es_PE", "es_PR", "es_PY", "es_SV", "es_US",
163 "es_UY", "es_VE"),
164 "",
165 },
166
167 // All English and Japanese locales
168 {
169 "--include-locales=en,ja",
170 "jdk.localedata",
171 List.of(
172 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
173 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
174 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
175 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class"),
176 List.of(
177 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
178 "/jdk.localedata/sun/text/resources/ext/thai_dict",
179 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
180 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
237 "/jdk.localedata/sun/text/resources/ext/FormatData_en_IN.class",
238 "/jdk.localedata/sun/text/resources/ext/FormatData_hi_IN.class",
239 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
240 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_IN.class"),
241 List.of(
242 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
243 "/jdk.localedata/sun/text/resources/ext/thai_dict",
244 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
245 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
246 "/jdk.localedata/sun/text/resources/ext/BreakIteratorResources_th.class",
247 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
248 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
249 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
250 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
251 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_as_IN.class",
252 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
253 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class",
254 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
255 List.of(
256 "(root)", "as_IN", "as", "bn_IN", "bn", "bo_IN", "bo", "brx_IN", "brx",
257 "en", "en_001", "en_IN", "en_US", "en_US_POSIX", "gu_IN", "gu", "hi_IN",
258 "hi", "kn_IN", "kn", "kok_IN", "kok", "ks_IN", "ks", "ml_IN", "ml",
259 "mr_IN", "mr", "ne_IN", "ne", "or_IN", "or", "pa", "pa_IN_#Guru",
260 "pa__#Guru", "ta_IN", "ta", "te_IN", "te", "ur_IN", "ur"),
261 "",
262 },
263
264 // Thai
265 {
266 "--include-locales=th",
267 "jdk.localedata",
268 List.of(
269 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
270 "/jdk.localedata/sun/text/resources/ext/thai_dict",
271 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
272 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
273 "/jdk.localedata/sun/text/resources/ext/BreakIteratorResources_th.class",
274 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class"),
275 List.of(
276 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
277 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
278 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
279 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
|
23
24 import java.nio.file.Path;
25 import java.util.Arrays;
26 import java.util.ArrayList;
27 import java.util.List;
28 import java.util.Locale;
29 import java.util.stream.Collectors;
30
31 import jdk.tools.jlink.plugin.Plugin;
32 import jdk.tools.jlink.plugin.PluginException;
33 import jdk.tools.jlink.internal.PluginRepository;
34 import jdk.tools.jlink.internal.TaskHelper;
35 import jdk.tools.jlink.internal.plugins.PluginsResourceBundle;
36 import tests.Helper;
37 import tests.JImageGenerator;
38 import tests.JImageValidator;
39 import tests.Result;
40
41 /*
42 * @test
43 * @bug 8152143 8152704 8155649 8165804 8185841 8176841 8190918
44 * 8179071 8202537
45 * @summary IncludeLocalesPlugin tests
46 * @author Naoto Sato
47 * @requires (vm.compMode != "Xcomp" & os.maxMemory >= 2g)
48 * @library ../../lib
49 * @modules java.base/jdk.internal.jimage
50 * jdk.jdeps/com.sun.tools.classfile
51 * jdk.jlink/jdk.tools.jlink.internal
52 * jdk.jlink/jdk.tools.jlink.internal.plugins
53 * jdk.jlink/jdk.tools.jlink.plugin
54 * jdk.jlink/jdk.tools.jmod
55 * jdk.jlink/jdk.tools.jimage
56 * jdk.compiler
57 * @build tests.*
58 * @build tools.jlink.plugins.GetAvailableLocales
59 * @run main/othervm -Xmx1g IncludeLocalesPluginTest
60 */
61 public class IncludeLocalesPluginTest {
62
63 private final static String moduleName = "IncludeLocalesTest";
64 private static Helper helper;
141 "/jdk.localedata/sun/text/resources/ext/thai_dict",
142 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
143 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
144 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
145 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
146 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
147 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class"),
148 List.of(
149 "(root)", "en", "en_US", "en_US_POSIX", "en_001", "en_150", "en_AG", "en_AI",
150 "en_AT", "en_AU", "en_BB", "en_BE", "en_BM", "en_BS", "en_BW", "en_BZ",
151 "en_CA", "en_CC", "en_CH", "en_CK", "en_CM", "en_CX", "en_CY", "en_DE",
152 "en_DG", "en_DK", "en_DM", "en_ER", "en_FI", "en_FJ", "en_FK", "en_FM",
153 "en_GB", "en_GD", "en_GG", "en_GH", "en_GI", "en_GM", "en_GY", "en_HK",
154 "en_IE", "en_IL", "en_IM", "en_IN", "en_IO", "en_JE", "en_JM", "en_KE",
155 "en_KI", "en_KN", "en_KY", "en_LC", "en_LR", "en_LS", "en_MG", "en_MO",
156 "en_MS", "en_MT", "en_MU", "en_MW", "en_MY", "en_NA", "en_NF", "en_NG",
157 "en_NL", "en_NR", "en_NU", "en_NZ", "en_PG", "en_PH", "en_PK", "en_PN",
158 "en_PW", "en_RW", "en_SB", "en_SC", "en_SD", "en_SE", "en_SG", "en_SH",
159 "en_SI", "en_SL", "en_SS", "en_SX", "en_SZ", "en_TC", "en_TK", "en_TO",
160 "en_TT", "en_TV", "en_TZ", "en_UG", "en_VC", "en_VG", "en_VU", "en_WS",
161 "en_ZA", "en_ZM", "en_ZW", "es", "es_419", "es_AR", "es_BO", "es_BR", "es_BZ",
162 "es_CL", "es_CO", "es_CR", "es_CU", "es_DO", "es_EC", "es_GT", "es_HN",
163 "es_MX", "es_NI", "es_PA", "es_PE", "es_PR", "es_PY", "es_SV", "es_US",
164 "es_UY", "es_VE"),
165 "",
166 },
167
168 // All English and Japanese locales
169 {
170 "--include-locales=en,ja",
171 "jdk.localedata",
172 List.of(
173 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
174 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
175 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
176 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class"),
177 List.of(
178 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
179 "/jdk.localedata/sun/text/resources/ext/thai_dict",
180 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
181 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
238 "/jdk.localedata/sun/text/resources/ext/FormatData_en_IN.class",
239 "/jdk.localedata/sun/text/resources/ext/FormatData_hi_IN.class",
240 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
241 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_IN.class"),
242 List.of(
243 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
244 "/jdk.localedata/sun/text/resources/ext/thai_dict",
245 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
246 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
247 "/jdk.localedata/sun/text/resources/ext/BreakIteratorResources_th.class",
248 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
249 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
250 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
251 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
252 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_as_IN.class",
253 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
254 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class",
255 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
256 List.of(
257 "(root)", "as_IN", "as", "bn_IN", "bn", "bo_IN", "bo", "brx_IN", "brx",
258 "ccp", "ccp_IN","en", "en_001", "en_IN", "en_US", "en_US_POSIX", "gu_IN",
259 "gu", "hi_IN", "hi", "kn_IN", "kn", "kok_IN", "kok", "ks_IN", "ks", "ml_IN",
260 "ml", "mr_IN", "mr", "ne_IN", "ne", "or_IN", "or", "pa", "pa_IN_#Guru",
261 "pa__#Guru", "ta_IN", "ta", "te_IN", "te", "ur_IN", "ur"),
262 "",
263 },
264
265 // Thai
266 {
267 "--include-locales=th",
268 "jdk.localedata",
269 List.of(
270 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
271 "/jdk.localedata/sun/text/resources/ext/thai_dict",
272 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
273 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
274 "/jdk.localedata/sun/text/resources/ext/BreakIteratorResources_th.class",
275 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class"),
276 List.of(
277 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
278 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
279 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
280 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
|