1 /*
2 * Copyright (c) 2016, 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 */
42 /**
43 * @test
44 * @bug 8142968 8173381
45 * @library /lib/testlibrary
46 * @modules java.base/jdk.internal.misc
47 * @modules java.base/jdk.internal.module
48 * @modules java.base/jdk.internal.org.objectweb.asm
49 * @build ModuleTargetHelper
50 * @run testng SystemModulesTest
51 * @summary Verify the properties of ModuleDescriptor created
52 * by SystemModules
53 */
54
55 public class SystemModulesTest {
56 private static final JavaLangModuleAccess JLMA =
57 SharedSecrets.getJavaLangModuleAccess();
58 private static final String OS_NAME = System.getProperty("os.name");
59 private static final String OS_ARCH = System.getProperty("os.arch");
60 // system modules containing no package
61 private static final Set<String> EMPTY_MODULES =
62 Set.of("java.se", "java.se.ee", "jdk.jdwp.agent", "jdk.pack");
63
64 @Test
65 public void testSystemModules() {
66 Path jimage = Paths.get(System.getProperty("java.home"), "lib", "modules");
67 if (Files.notExists(jimage))
68 return;
69
70 ModuleFinder.ofSystem().findAll().stream()
71 .forEach(this::checkAttributes);
72 }
73
74 // JMOD files are created with OS name and arch matching the bundle name
75 private boolean checkOSName(String name) {
76 if (OS_NAME.startsWith("Windows")) {
77 return name.equals("windows");
78 }
79
80 switch (OS_NAME) {
81 case "Linux":
82 return name.equals("linux");
|
1 /*
2 * Copyright (c) 2016, 2018, 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 */
42 /**
43 * @test
44 * @bug 8142968 8173381
45 * @library /lib/testlibrary
46 * @modules java.base/jdk.internal.misc
47 * @modules java.base/jdk.internal.module
48 * @modules java.base/jdk.internal.org.objectweb.asm
49 * @build ModuleTargetHelper
50 * @run testng SystemModulesTest
51 * @summary Verify the properties of ModuleDescriptor created
52 * by SystemModules
53 */
54
55 public class SystemModulesTest {
56 private static final JavaLangModuleAccess JLMA =
57 SharedSecrets.getJavaLangModuleAccess();
58 private static final String OS_NAME = System.getProperty("os.name");
59 private static final String OS_ARCH = System.getProperty("os.arch");
60 // system modules containing no package
61 private static final Set<String> EMPTY_MODULES =
62 Set.of("java.se", "jdk.jdwp.agent", "jdk.pack");
63
64 @Test
65 public void testSystemModules() {
66 Path jimage = Paths.get(System.getProperty("java.home"), "lib", "modules");
67 if (Files.notExists(jimage))
68 return;
69
70 ModuleFinder.ofSystem().findAll().stream()
71 .forEach(this::checkAttributes);
72 }
73
74 // JMOD files are created with OS name and arch matching the bundle name
75 private boolean checkOSName(String name) {
76 if (OS_NAME.startsWith("Windows")) {
77 return name.equals("windows");
78 }
79
80 switch (OS_NAME) {
81 case "Linux":
82 return name.equals("linux");
|