< 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 >