13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /* @test
25 * @summary a jtreg wrapper for gtest tests
26 * @library /test/lib
27 * @modules java.base/jdk.internal.misc
28 * @run main/native GTestWrapper
29 */
30
31 import java.util.Arrays;
32 import java.util.List;
33 import java.util.stream.Stream;
34 import java.util.stream.Collectors;
35
36 import java.nio.file.Paths;
37 import java.nio.file.Path;
38
39 import jdk.test.lib.Platform;
40 import jdk.test.lib.Utils;
41 import jdk.test.lib.process.ProcessTools;
42 import jdk.test.lib.process.OutputAnalyzer;
43
44 public class GTestWrapper {
45 public static void main(String[] args) throws Throwable {
46 // gtestLauncher is located in <test_image>/hotspot/gtest/<vm_variant>/
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 String jvmVariantDir = getJVMVariantSubDir();
50 // let's assume it's <test_image>/hotspot/gtest
51 Path path = nativePath.resolve(jvmVariantDir);
52 if (!path.toFile().exists()) {
53 // maybe it is <test_image>/hotspot/jtreg/native
54 path = nativePath.getParent()
55 .getParent()
56 .resolve("gtest")
57 .resolve(jvmVariantDir);
58 }
59 if (!path.toFile().exists()) {
60 throw new Error("TESTBUG: the library has not been found in " + nativePath);
61 }
62 path = path.resolve("gtestLauncher" + (Platform.isWindows() ? ".exe" : ""));
63 ProcessTools.executeCommand(new String[] {
64 path.toString(),
65 "-jdk",
66 System.getProperty("test.jdk")
67 }).shouldHaveExitValue(0);
68 }
69
70 private static String getJVMVariantSubDir() {
71 if (Platform.isServer()) {
72 return "server";
73 } else if (Platform.isClient()) {
74 return "client";
75 } else if (Platform.isMinimal()) {
76 return "minimal";
77 } else {
78 throw new Error("TESTBUG: unsuppported vm variant");
79 }
80 }
81 }
|
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /* @test
25 * @summary a jtreg wrapper for gtest tests
26 * @library /test/lib
27 * @modules java.base/jdk.internal.misc
28 * @run main/native GTestWrapper
29 */
30
31 import java.util.Arrays;
32 import java.util.List;
33 import java.util.Map;
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.Utils;
42 import jdk.test.lib.process.ProcessTools;
43 import jdk.test.lib.process.OutputAnalyzer;
44
45 public class GTestWrapper {
46 public static void main(String[] args) throws Throwable {
47 // gtestLauncher is located in <test_image>/hotspot/gtest/<vm_variant>/
48 // nativePath points either to <test_image>/hotspot/jtreg/native or to <test_image>/hotspot/gtest
49 Path nativePath = Paths.get(System.getProperty("test.nativepath"));
50 String jvmVariantDir = getJVMVariantSubDir();
51 // let's assume it's <test_image>/hotspot/gtest
52 Path path = nativePath.resolve(jvmVariantDir);
53 if (!path.toFile().exists()) {
54 // maybe it is <test_image>/hotspot/jtreg/native
55 path = nativePath.getParent()
56 .getParent()
57 .resolve("gtest")
58 .resolve(jvmVariantDir);
59 }
60 if (!path.toFile().exists()) {
61 throw new Error("TESTBUG: the library has not been found in " + nativePath);
62 }
63
64 Path execPath = path.resolve("gtestLauncher" + (Platform.isWindows() ? ".exe" : ""));
65 ProcessBuilder pb = new ProcessBuilder();
66 Map<String, String> env = pb.environment();
67
68 String ldLibraryPath = System.getenv("LD_LIBRARY_PATH");
69 if (ldLibraryPath != null) {
70 env.put("LD_LIBRARY_PATH", path + ":" + ldLibraryPath);
71 }
72
73 String libPath = System.getenv("LIBPATH");
74 if (libPath != null) {
75 env.put("LIBPATH", path + ":" + libPath);
76 }
77
78 pb.command(new String[] {
79 execPath.toString(),
80 "-jdk",
81 System.getProperty("test.jdk")
82 });
83 ProcessTools.executeCommand( pb ).shouldHaveExitValue(0);
84 }
85
86 private static String getJVMVariantSubDir() {
87 if (Platform.isServer()) {
88 return "server";
89 } else if (Platform.isClient()) {
90 return "client";
91 } else if (Platform.isMinimal()) {
92 return "minimal";
93 } else {
94 throw new Error("TESTBUG: unsuppported vm variant");
95 }
96 }
97 }
|