27 * @library /testlibrary
28 * @modules java.base/jdk.internal.misc
29 * @run main/native GTestWrapper
30 */
31
32 import java.util.Arrays;
33 import java.util.List;
34 import java.util.stream.Stream;
35 import java.util.stream.Collectors;
36
37 import java.nio.file.Paths;
38 import java.nio.file.Path;
39
40 import jdk.test.lib.Platform;
41 import jdk.test.lib.ProcessTools;
42 import jdk.test.lib.OutputAnalyzer;
43 import jdk.test.lib.Utils;
44
45 public class GTestWrapper {
46 public static void main(String[] args) throws Throwable {
47 String nativePath = System.getProperty("test.nativepath");
48 Path gtestLauncher = Paths.get(nativePath, "hotspot", "gtest");
49 if (Platform.isServer()) {
50 gtestLauncher = gtestLauncher.resolve("server");
51 } else if (Platform.isClient()) {
52 gtestLauncher = gtestLauncher.resolve("client");
53 } else if (Platform.isMinimal()) {
54 gtestLauncher = gtestLauncher.resolve("minimal");
55 }
56 gtestLauncher = gtestLauncher.resolve(
57 "gtestLauncher" + (Platform.isWindows() ? ".exe" : ""));
58 List<String> cmds = Stream.concat(
59 Stream.of(
60 gtestLauncher.toString(),
61 "-jdk",
62 System.getProperty("test.jdk")),
63 Arrays.stream(Utils.getTestJavaOpts()))
64 .collect(Collectors.toList());
65 ProcessBuilder builder = new ProcessBuilder(cmds);
66 builder.inheritIO();
67
68 OutputAnalyzer oa = ProcessTools.executeProcess(builder);
69 oa.shouldHaveExitValue(0);
70 }
71 }
|
27 * @library /testlibrary
28 * @modules java.base/jdk.internal.misc
29 * @run main/native GTestWrapper
30 */
31
32 import java.util.Arrays;
33 import java.util.List;
34 import java.util.stream.Stream;
35 import java.util.stream.Collectors;
36
37 import java.nio.file.Paths;
38 import java.nio.file.Path;
39
40 import jdk.test.lib.Platform;
41 import jdk.test.lib.ProcessTools;
42 import jdk.test.lib.OutputAnalyzer;
43 import jdk.test.lib.Utils;
44
45 public class GTestWrapper {
46 public static void main(String[] args) throws Throwable {
47 // nativePath points either to <test_image>/hotspot/jtreg/native or to <test_image>/hotspot/gtest
48 Path nativePath = Paths.get(System.getProperty("test.nativepath"));
49 // let's assume it's <test_image>/hotspot/gtest
50 Path path = getJVMVariantSubDir(nativePath);
51 if (!path.toFile().exists()) {
52 // maybe it is <test_image>/hotspot/jtreg/native
53 path = getJVMVariantSubDir(nativePath.getParent()
54 .getParent()
55 .resolve("gtest"));
56 }
57 if (!path.toFile().exists()) {
58 throw new Error("TESTBUG: the library has not been found in " + nativePath);
59 }
60 path = path.resolve("gtestLauncher" + (Platform.isWindows() ? ".exe" : ""));
61 List<String> cmds = Stream.concat(
62 Stream.of(
63 path.toString(),
64 "-jdk",
65 System.getProperty("test.jdk")),
66 Arrays.stream(Utils.getTestJavaOpts())
67 .filter(s -> s.startsWith("-X") || s.startsWith("-D")))
68 .collect(Collectors.toList());
69 ProcessBuilder builder = new ProcessBuilder(cmds);
70 OutputAnalyzer oa = ProcessTools.executeProcess(builder);
71 oa.shouldHaveExitValue(0);
72 }
73
74 private static Path getJVMVariantSubDir(Path root) {
75 if (Platform.isServer()) {
76 return root.resolve("server");
77 } else if (Platform.isClient()) {
78 return root.resolve("client");
79 } else if (Platform.isMinimal()) {
80 return root.resolve("minimal");
81 } else {
82 throw new Error("TESTBUG: unsuppported vm variant");
83 }
84 }
85 }
|