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
44 * @summary IncludeLocalesPlugin tests
45 * @author Naoto Sato
46 * @library ../../lib
47 * @modules java.base/jdk.internal.jimage
48 * jdk.jdeps/com.sun.tools.classfile
49 * jdk.jlink/jdk.tools.jlink.internal
50 * jdk.jlink/jdk.tools.jlink.internal.plugins
51 * jdk.jlink/jdk.tools.jmod
52 * jdk.jlink/jdk.tools.jimage
53 * jdk.compiler
54 * @build tests.*
55 * @build tools.jlink.plugins.GetAvailableLocales
56 * @run main/othervm -Xmx1g IncludeLocalesPluginTest
57 */
58 public class IncludeLocalesPluginTest {
59
60 private final static String moduleName = "IncludeLocalesTest";
61 private static Helper helper;
62 private final static int INCLUDE_LOCALES_OPTION = 0;
63 private final static int ADDMODS_OPTION = 1;
219 "",
220 },
221
222 // All locales in India
223 {
224 "--include-locales=*-IN",
225 "jdk.localedata",
226 List.of(
227 "/jdk.localedata/sun/text/resources/ext/FormatData_en_IN.class",
228 "/jdk.localedata/sun/text/resources/ext/FormatData_hi_IN.class",
229 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_as_IN.class",
230 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
231 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_IN.class",
232 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_kok_IN.class",
233 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_pa_Guru_IN.class"),
234 List.of(
235 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
236 "/jdk.localedata/sun/text/resources/ext/thai_dict",
237 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
238 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
239 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
240 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
241 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
242 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
243 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
244 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class",
245 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
246 List.of(
247 "(root)", "as_IN", "as", "bn_IN", "bn", "bo_IN", "bo", "brx_IN", "brx",
248 "en", "en_001", "en_IN", "en_US", "en_US_POSIX", "gu_IN", "gu", "hi_IN",
249 "hi", "kn_IN", "kn", "kok_IN", "kok", "ks_IN", "ks", "ml_IN", "ml",
250 "mr_IN", "mr", "ne_IN", "ne", "or_IN", "or", "pa_IN", "pa", "pa_IN_#Guru",
251 "pa__#Guru", "ta_IN", "ta", "te_IN", "te", "ur_IN", "ur"),
252 "",
253 },
254
255 // Thai
256 {
257 "--include-locales=th",
258 "jdk.localedata",
259 List.of(
260 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
261 "/jdk.localedata/sun/text/resources/ext/thai_dict",
262 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
263 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
264 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class"),
265 List.of(
266 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
267 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
268 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
269 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
270 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
271 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
272 List.of(
273 "(root)", "en", "en_US", "en_US_POSIX", "th", "th_TH",
274 "th_TH_TH_#u-nu-thai"),
275 "",
276 },
277
278 // Hong Kong
279 {
280 "--include-locales=zh-HK",
281 "jdk.localedata",
282 List.of(
283 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.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
44 * @summary IncludeLocalesPlugin tests
45 * @author Naoto Sato
46 * @library ../../lib
47 * @modules java.base/jdk.internal.jimage
48 * jdk.jdeps/com.sun.tools.classfile
49 * jdk.jlink/jdk.tools.jlink.internal
50 * jdk.jlink/jdk.tools.jlink.internal.plugins
51 * jdk.jlink/jdk.tools.jmod
52 * jdk.jlink/jdk.tools.jimage
53 * jdk.compiler
54 * @build tests.*
55 * @build tools.jlink.plugins.GetAvailableLocales
56 * @run main/othervm -Xmx1g IncludeLocalesPluginTest
57 */
58 public class IncludeLocalesPluginTest {
59
60 private final static String moduleName = "IncludeLocalesTest";
61 private static Helper helper;
62 private final static int INCLUDE_LOCALES_OPTION = 0;
63 private final static int ADDMODS_OPTION = 1;
219 "",
220 },
221
222 // All locales in India
223 {
224 "--include-locales=*-IN",
225 "jdk.localedata",
226 List.of(
227 "/jdk.localedata/sun/text/resources/ext/FormatData_en_IN.class",
228 "/jdk.localedata/sun/text/resources/ext/FormatData_hi_IN.class",
229 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_as_IN.class",
230 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
231 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_IN.class",
232 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_kok_IN.class",
233 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_pa_Guru_IN.class"),
234 List.of(
235 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
236 "/jdk.localedata/sun/text/resources/ext/thai_dict",
237 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
238 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
239 "/jdk.localedata/sun/text/resources/ext/BreakIteratorResources_th.class",
240 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
241 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
242 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
243 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
244 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
245 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class",
246 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
247 List.of(
248 "(root)", "as_IN", "as", "bn_IN", "bn", "bo_IN", "bo", "brx_IN", "brx",
249 "en", "en_001", "en_IN", "en_US", "en_US_POSIX", "gu_IN", "gu", "hi_IN",
250 "hi", "kn_IN", "kn", "kok_IN", "kok", "ks_IN", "ks", "ml_IN", "ml",
251 "mr_IN", "mr", "ne_IN", "ne", "or_IN", "or", "pa_IN", "pa", "pa_IN_#Guru",
252 "pa__#Guru", "ta_IN", "ta", "te_IN", "te", "ur_IN", "ur"),
253 "",
254 },
255
256 // Thai
257 {
258 "--include-locales=th",
259 "jdk.localedata",
260 List.of(
261 "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
262 "/jdk.localedata/sun/text/resources/ext/thai_dict",
263 "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
264 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
265 "/jdk.localedata/sun/text/resources/ext/BreakIteratorResources_th.class",
266 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class"),
267 List.of(
268 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
269 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
270 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
271 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
272 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
273 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
274 List.of(
275 "(root)", "en", "en_US", "en_US_POSIX", "th", "th_TH",
276 "th_TH_TH_#u-nu-thai"),
277 "",
278 },
279
280 // Hong Kong
281 {
282 "--include-locales=zh-HK",
283 "jdk.localedata",
284 List.of(
285 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
|