< prev index next >

test/native/GTestWrapper.java

Print this page
rev 11190 : 8156681: Add jtreg wrapper for hotspot gtest tests
Reviewed-by: jwilhelm
rev 11191 : [mq]: 8156681-2

*** 22,32 **** * */ /* @test * @summary a jtreg wrapper for gtest tests ! * @library /testlibrary * @modules java.base/jdk.internal.misc * @run main/native GTestWrapper */ import java.util.Arrays; --- 22,32 ---- * */ /* @test * @summary a jtreg wrapper for gtest tests ! * @library /test/lib/share/classes * @modules java.base/jdk.internal.misc * @run main/native GTestWrapper */ import java.util.Arrays;
*** 36,85 **** import java.nio.file.Paths; import java.nio.file.Path; import jdk.test.lib.Platform; - import jdk.test.lib.ProcessTools; - import jdk.test.lib.OutputAnalyzer; import jdk.test.lib.Utils; public class GTestWrapper { public static void main(String[] args) throws Throwable { // nativePath points either to <test_image>/hotspot/jtreg/native or to <test_image>/hotspot/gtest Path nativePath = Paths.get(System.getProperty("test.nativepath")); // let's assume it's <test_image>/hotspot/gtest ! Path path = getJVMVariantSubDir(nativePath); if (!path.toFile().exists()) { // maybe it is <test_image>/hotspot/jtreg/native ! path = getJVMVariantSubDir(nativePath.getParent() .getParent() ! .resolve("gtest")); } if (!path.toFile().exists()) { throw new Error("TESTBUG: the library has not been found in " + nativePath); } path = path.resolve("gtestLauncher" + (Platform.isWindows() ? ".exe" : "")); ! List<String> cmds = Stream.concat( ! Stream.of( ! path.toString(), ! "-jdk", ! System.getProperty("test.jdk")), ! Arrays.stream(Utils.getTestJavaOpts()) ! .filter(s -> s.startsWith("-X") || s.startsWith("-D"))) ! .collect(Collectors.toList()); ! ProcessBuilder builder = new ProcessBuilder(cmds); ! OutputAnalyzer oa = ProcessTools.executeProcess(builder); ! oa.shouldHaveExitValue(0); } ! private static Path getJVMVariantSubDir(Path root) { if (Platform.isServer()) { ! return root.resolve("server"); } else if (Platform.isClient()) { ! return root.resolve("client"); } else if (Platform.isMinimal()) { ! return root.resolve("minimal"); } else { throw new Error("TESTBUG: unsuppported vm variant"); } } } --- 36,85 ---- import java.nio.file.Paths; import java.nio.file.Path; import jdk.test.lib.Platform; import jdk.test.lib.Utils; + import jdk.test.lib.process.ProcessTools; + import jdk.test.lib.process.OutputAnalyzer; public class GTestWrapper { public static void main(String[] args) throws Throwable { + // gtestLauncher is located in <test_image>/hotspot/gtest/<vm_variant>/ // nativePath points either to <test_image>/hotspot/jtreg/native or to <test_image>/hotspot/gtest Path nativePath = Paths.get(System.getProperty("test.nativepath")); + String jvmVariantDir = getJVMVariantSubDir(); // let's assume it's <test_image>/hotspot/gtest ! Path path = nativePath.resolve(jvmVariantDir); if (!path.toFile().exists()) { // maybe it is <test_image>/hotspot/jtreg/native ! path = nativePath.getParent() .getParent() ! .resolve("gtest") ! .resolve(jvmVariantDir); } if (!path.toFile().exists()) { throw new Error("TESTBUG: the library has not been found in " + nativePath); } path = path.resolve("gtestLauncher" + (Platform.isWindows() ? ".exe" : "")); ! Stream<String> launcherArgs = Stream.of(path.toString(), "-jdk", ! System.getProperty("test.jdk")); ! // JVM accepts only -X and -D flags ! Stream<String> vmFLags = Arrays.stream(Utils.getTestJavaOpts()) ! .filter(s -> s.startsWith("-X") || s.startsWith("-D")); ! String[] cmds = Stream.concat(launcherArgs, vmFLags) ! .toArray(String[]::new); ! ProcessTools.executeCommand(cmds).shouldHaveExitValue(0); } ! private static String getJVMVariantSubDir() { if (Platform.isServer()) { ! return "server"; } else if (Platform.isClient()) { ! return "client"; } else if (Platform.isMinimal()) { ! return "minimal"; } else { throw new Error("TESTBUG: unsuppported vm variant"); } } }
< prev index next >