< prev index next >

test/jdk/tools/jimage/JImageExtractTest.java

Print this page

        

*** 29,52 **** --- 29,85 ---- * @build jdk.test.lib.Asserts * @run main/othervm/timeout=300 JImageExtractTest */ 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.nio.file.attribute.*; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; + import java.util.spi.ToolProvider; import static jdk.test.lib.Asserts.assertEquals; import static jdk.test.lib.Asserts.assertTrue; public class JImageExtractTest extends JImageCliTest { + private static final ToolProvider JLINK_TOOL = ToolProvider.findFirst("jlink") + .orElseThrow(() -> + new RuntimeException("jlink tool not found") + ); + + + private String smallBootImagePath; + + public JImageExtractTest() { + try { + Path tmp = Files.createTempDirectory(Paths.get("."), getClass().getName()); + tmp = tmp.toAbsolutePath(); + tmp.toFile().deleteOnExit(); + Path smalljre = tmp.resolve("smalljdk"); + if (JLINK_TOOL.run(System.out, System.err, + "--add-modules", "java.base", + "--add-modules", "jdk.zipfs", + "--output", smalljre.toString()) != 0) { + throw new RuntimeException("failed to create small boot image"); + } + this.smallBootImagePath = smalljre.resolve("lib").resolve("modules").toString(); + } catch (IOException ioExp) { + throw new UncheckedIOException(ioExp); + } + } + + @Override + public String getImagePath() { + return smallBootImagePath; + } + public void testExtract() throws IOException { Set<Path> notJImageModules = Files.walk(Paths.get("."),1).collect(Collectors.toSet()); jimage("extract", getImagePath()) .assertSuccess() .resultChecker(r -> {
< prev index next >