< prev index next >

test/tools/jlink/plugins/SystemModuleDescriptors/SystemModulesTest.java

Print this page

        

*** 23,32 **** --- 23,34 ---- import java.lang.module.ModuleDescriptor; import java.lang.module.ModuleDescriptor.*; import java.lang.module.ModuleFinder; import java.lang.module.ModuleReference; + import java.io.IOException; + import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import java.util.Map;
*** 38,48 **** --- 40,54 ---- import static org.testng.Assert.*; /** * @test * @bug 8142968 8173381 + * @library /lib/testlibrary * @modules java.base/jdk.internal.misc + * @modules java.base/jdk.internal.module + * @modules java.base/jdk.internal.org.objectweb.asm + * @build ModuleTargetHelper * @run testng SystemModulesTest * @summary Verify the properties of ModuleDescriptor created * by SystemModules */
*** 60,82 **** Path jimage = Paths.get(System.getProperty("java.home"), "lib", "modules"); if (Files.notExists(jimage)) return; ModuleFinder.ofSystem().findAll().stream() - .map(ModuleReference::descriptor) .forEach(this::checkAttributes); } // JMOD files are created with osName and osArch that may be different // than os.name and os.arch system property private boolean checkOSName(String name) { if (name.equals(OS_NAME)) return true; ! if (OS_NAME.equals("Mac OS X")) { ! return name.equals("Darwin"); ! } else if (OS_NAME.startsWith("Windows")) { return name.startsWith("Windows"); } else { System.err.println("ERROR: " + name + " but expected: " + OS_NAME); return false; } --- 66,85 ---- Path jimage = Paths.get(System.getProperty("java.home"), "lib", "modules"); if (Files.notExists(jimage)) return; ModuleFinder.ofSystem().findAll().stream() .forEach(this::checkAttributes); } // JMOD files are created with osName and osArch that may be different // than os.name and os.arch system property private boolean checkOSName(String name) { if (name.equals(OS_NAME)) return true; ! if (OS_NAME.startsWith("Windows")) { return name.startsWith("Windows"); } else { System.err.println("ERROR: " + name + " but expected: " + OS_NAME); return false; }
*** 87,118 **** return true; switch (OS_ARCH) { case "i386": case "x86": ! return name.equals("i586"); default: System.err.println("ERROR: " + name + " but expected: " + OS_ARCH); return false; } } ! private void checkAttributes(ModuleDescriptor md) { ! System.out.format("%s %s %s %s%n", md.name(), ! md.osName(), md.osArch(), md.osVersion()); ! ! if (md.name().equals("java.base")) { ! assertTrue(checkOSName(md.osName().get())); ! assertTrue(checkOSArch(md.osArch().get())); ! assertTrue(md.osVersion().isPresent()); } else { ! // target platform attribute is dropped by jlink plugin ! assertFalse(md.osName().isPresent()); ! assertFalse(md.osArch().isPresent()); ! assertFalse(md.osVersion().isPresent()); ! assertTrue(md.packages().size() > 0 ! || EMPTY_MODULES.contains(md.name()), md.name()); } } /** * Verify ModuleDescriptor contains unmodifiable sets --- 90,121 ---- return true; switch (OS_ARCH) { case "i386": case "x86": ! return name.equals("x86"); ! case "amd64": ! return name.equals("x86_64"); default: System.err.println("ERROR: " + name + " but expected: " + OS_ARCH); return false; } } ! private void checkAttributes(ModuleReference modRef) { ! try { ! if (modRef.descriptor().name().equals("java.base")) { ! ModuleTargetHelper.ModuleTarget mt = ModuleTargetHelper.read(modRef); ! assertTrue(checkOSName(mt.osName())); ! assertTrue(checkOSArch(mt.osArch())); } else { ! // target platform attribute is dropped by jlink plugin for other modules ! ModuleTargetHelper.ModuleTarget mt = ModuleTargetHelper.read(modRef); ! assertTrue(mt == null || (mt.osName() == null && mt.osArch() == null)); ! } ! } catch (IOException exp) { ! throw new UncheckedIOException(exp); } } /** * Verify ModuleDescriptor contains unmodifiable sets
< prev index next >