Mercurial > hg > truffle
comparison test/runtime/XCheckJniJsig/XCheckJSig.java @ 15280:417e2ae45b89
Merge
author | Michael Van De Vanter <michael.van.de.vanter@oracle.com> |
---|---|
date | Tue, 22 Apr 2014 18:22:40 -0700 |
parents | 4ca6dc0799b6 |
children |
comparison
equal
deleted
inserted
replaced
15279:0c6d8a08e31b | 15280:417e2ae45b89 |
---|---|
20 * or visit www.oracle.com if you need additional information or have any | 20 * or visit www.oracle.com if you need additional information or have any |
21 * questions. | 21 * questions. |
22 */ | 22 */ |
23 | 23 |
24 /* | 24 /* |
25 * @ignore 8023735 | |
25 * @test | 26 * @test |
26 * @bug 7051189 8023393 | 27 * @bug 7051189 8023393 |
27 * @summary Need to suppress info message if -Xcheck:jni is used with libjsig.so | 28 * @summary Need to suppress info message if -Xcheck:jni is used with libjsig.so |
28 * @library /testlibrary | 29 * @library /testlibrary |
29 * @run main XCheckJSig | 30 * @run main XCheckJSig |
30 */ | 31 */ |
31 | 32 |
32 import java.io.File; | 33 import java.util.*; |
33 import java.util.Map; | |
34 import com.oracle.java.testlibrary.*; | 34 import com.oracle.java.testlibrary.*; |
35 | 35 |
36 public class XCheckJSig { | 36 public class XCheckJSig { |
37 public static void main(String args[]) throws Throwable { | 37 public static void main(String args[]) throws Throwable { |
38 | 38 |
45 String jdk_path = System.getProperty("test.jdk"); | 45 String jdk_path = System.getProperty("test.jdk"); |
46 String os_arch = Platform.getOsArch(); | 46 String os_arch = Platform.getOsArch(); |
47 String libjsig; | 47 String libjsig; |
48 String env_var; | 48 String env_var; |
49 if (Platform.isOSX()) { | 49 if (Platform.isOSX()) { |
50 libjsig = jdk_path + "/jre/lib/server/libjsig.dylib"; | |
50 env_var = "DYLD_INSERT_LIBRARIES"; | 51 env_var = "DYLD_INSERT_LIBRARIES"; |
51 libjsig = jdk_path + "/jre/lib/libjsig.dylib"; // jdk location | |
52 if (!(new File(libjsig).exists())) { | |
53 libjsig = jdk_path + "/lib/libjsig.dylib"; // jre location | |
54 } | |
55 } else { | 52 } else { |
53 libjsig = jdk_path + "/jre/lib/" + os_arch + "/libjsig.so"; | |
56 env_var = "LD_PRELOAD"; | 54 env_var = "LD_PRELOAD"; |
57 libjsig = jdk_path + "/jre/lib/" + os_arch + "/libjsig.so"; // jdk location | 55 } |
58 if (!(new File(libjsig).exists())) { | 56 String java_program; |
59 libjsig = jdk_path + "/lib/" + os_arch + "/libjsig.so"; // jre location | 57 if (Platform.isSolaris()) { |
60 } | 58 // On Solaris, need to call the 64-bit Java directly in order for |
59 // LD_PRELOAD to work because libjsig.so is 64-bit. | |
60 java_program = jdk_path + "/jre/bin/" + os_arch + "/java"; | |
61 } else { | |
62 java_program = JDKToolFinder.getJDKTool("java"); | |
61 } | 63 } |
62 // If this test fails, these might be useful to know. | 64 // If this test fails, these might be useful to know. |
63 System.out.println("libjsig: " + libjsig); | 65 System.out.println("libjsig: " + libjsig); |
64 System.out.println("osArch: " + os_arch); | 66 System.out.println("osArch: " + os_arch); |
67 System.out.println("java_program: " + java_program); | |
65 | 68 |
66 // Make sure the libjsig file exists. | 69 ProcessBuilder pb = new ProcessBuilder(java_program, "-Xcheck:jni", "-version"); |
67 if (!(new File(libjsig).exists())) { | |
68 System.out.println("File " + libjsig + " not found, skipping"); | |
69 return; | |
70 } | |
71 | |
72 ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-Xcheck:jni", "-version"); | |
73 Map<String, String> env = pb.environment(); | 70 Map<String, String> env = pb.environment(); |
74 env.put(env_var, libjsig); | 71 env.put(env_var, libjsig); |
75 OutputAnalyzer output = new OutputAnalyzer(pb.start()); | 72 OutputAnalyzer output = new OutputAnalyzer(pb.start()); |
76 output.shouldNotContain("libjsig is activated"); | 73 output.shouldNotContain("libjsig is activated"); |
77 output.shouldHaveExitValue(0); | 74 output.shouldHaveExitValue(0); |
78 | 75 |
79 pb = ProcessTools.createJavaProcessBuilder("-Xcheck:jni", "-verbose:jni", "-version"); | 76 pb = new ProcessBuilder(java_program, "-Xcheck:jni", "-verbose:jni", "-version"); |
80 env = pb.environment(); | 77 env = pb.environment(); |
81 env.put(env_var, libjsig); | 78 env.put(env_var, libjsig); |
82 output = new OutputAnalyzer(pb.start()); | 79 output = new OutputAnalyzer(pb.start()); |
83 output.shouldContain("libjsig is activated"); | 80 output.shouldContain("libjsig is activated"); |
84 output.shouldHaveExitValue(0); | 81 output.shouldHaveExitValue(0); |