< prev index next >

test/serviceability/dcmd/jvmti/LoadAgentDcmdTest.java

Print this page

        

@@ -24,26 +24,27 @@
 import java.nio.file.*;
 import java.util.jar.Attributes;
 import java.util.jar.JarEntry;
 import java.util.jar.JarOutputStream;
 import java.util.jar.Manifest;
-import jdk.test.lib.*;
+import jdk.test.lib.Platform;
+import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.dcmd.*;
 import org.testng.annotations.Test;
 
 /*
  * Test to attach JVMTI java agent.
  *
  * @test
  * @bug 8147388
- * @library /testlibrary
+ * @library /test/lib
  * @modules java.base/jdk.internal.misc
  *          java.compiler
  *          java.instrument
  *          java.management
  *          jdk.jvmstat/sun.jvmstat.monitor
- * @build ClassFileInstaller jdk.test.lib.* SimpleJvmtiAgent
+ * @build SimpleJvmtiAgent
  * @ignore 8150318
  * @run main ClassFileInstaller SimpleJvmtiAgent
  * @run testng LoadAgentDcmdTest
  */
 public class LoadAgentDcmdTest {

@@ -57,11 +58,11 @@
                       "This property is normally set by jtreg. " +
                       "When running test separately, set this property using " +
                       "'-Dtest.jdk=/path/to/jdk'.");
         }
 
-        Path libpath = Paths.get(jdkPath, Platform.jdkLibPath(), Platform.sharedObjectName("instrument"));
+        Path libpath = Paths.get(jdkPath, jdkLibPath(), sharedObjectName("instrument"));
 
         if (!libpath.toFile().exists()) {
             throw new FileNotFoundException(
                       "Could not find " + libpath.toAbsolutePath());
         }

@@ -127,10 +128,37 @@
 
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
     }
+    /**
+     * return path to library inside jdk tree
+     */
+    public static String jdkLibPath() {
+        if (Platform.isWindows()) {
+            return "bin";
+        }
+        if (Platform.isOSX()) {
+            return "lib";
+        }
+
+        return "lib/" + Platform.getOsArch();
+    }
+
+    /**
+     * Build name of shared object according to platform rules
+     */
+    public static String sharedObjectName(String name) {
+        if (Platform.isWindows()) {
+            return name + ".dll";
+        }
+        if (Platform.isOSX()) {
+            return "lib" + name + ".dylib";
+        }
+        return "lib" + name + ".so";
+    }
+}
 
     @Test
     public void jmx() throws Throwable {
         run(new JMXExecutor());
     }
< prev index next >