comparison test/runtime/XCheckJniJsig/XCheckJSig.java @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents a9683a647c9f
children
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
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);