< prev index next >

test/jdk/java/foreign/stackwalk/TestStackWalk.java

Print this page
@@ -23,10 +23,11 @@
  
  /*
   * @test id=default_gc
   * @requires ((os.arch == "amd64" | os.arch == "x86_64") & sun.arch.data.model == "64") | os.arch == "aarch64"
   * @library /test/lib
+  * @library ../
   * @build sun.hotspot.WhiteBox
   * @run driver jdk.test.lib.helpers.ClassFileInstaller sun.hotspot.WhiteBox
   *
   * @run main/othervm
   *   -Xbootclasspath/a:.

@@ -50,10 +51,11 @@
  /*
   * @test id=zgc
   * @requires (((os.arch == "amd64" | os.arch == "x86_64") & sun.arch.data.model == "64") | os.arch == "aarch64")
   * @requires vm.gc.Z
   * @library /test/lib
+  * @library ../
   * @build sun.hotspot.WhiteBox
   * @run driver jdk.test.lib.helpers.ClassFileInstaller sun.hotspot.WhiteBox
   *
   * @run main/othervm
   *   -Xbootclasspath/a:.

@@ -78,10 +80,11 @@
  /*
   * @test id=shenandoah
   * @requires (((os.arch == "amd64" | os.arch == "x86_64") & sun.arch.data.model == "64") | os.arch == "aarch64")
   * @requires vm.gc.Shenandoah
   * @library /test/lib
+  * @library ../
   * @build sun.hotspot.WhiteBox
   * @run driver jdk.test.lib.helpers.ClassFileInstaller sun.hotspot.WhiteBox
   *
   * @run main/othervm
   *   -Xbootclasspath/a:.

@@ -104,10 +107,11 @@
   *   TestStackWalk
   */
  
  import jdk.incubator.foreign.CLinker;
  import jdk.incubator.foreign.FunctionDescriptor;
+ import jdk.incubator.foreign.NativeSymbol;
  import jdk.incubator.foreign.SymbolLookup;
  import jdk.incubator.foreign.MemoryAddress;
  
  import java.lang.invoke.MethodHandle;
  import java.lang.invoke.MethodType;

@@ -115,27 +119,25 @@
  
  import jdk.incubator.foreign.ResourceScope;
  import sun.hotspot.WhiteBox;
  
  import static java.lang.invoke.MethodHandles.lookup;
- import static jdk.incubator.foreign.CLinker.C_POINTER;
  
- public class TestStackWalk {
+ public class TestStackWalk extends NativeTestHelper {
      static final WhiteBox WB = WhiteBox.getWhiteBox();
  
-     static final CLinker linker = CLinker.getInstance();
+     static final CLinker linker = CLinker.systemCLinker();
  
      static final MethodHandle MH_foo;
      static final MethodHandle MH_m;
  
      static {
          try {
              System.loadLibrary("StackWalk");
              SymbolLookup lookup = SymbolLookup.loaderLookup();
              MH_foo = linker.downcallHandle(
                      lookup.lookup("foo").get(),
-                     MethodType.methodType(void.class, MemoryAddress.class),
                      FunctionDescriptor.ofVoid(C_POINTER));
              MH_m = lookup().findStatic(TestStackWalk.class, "m", MethodType.methodType(void.class));
          } catch (ReflectiveOperationException e) {
              throw new RuntimeException(e);
          }

@@ -143,11 +145,11 @@
  
      static boolean armed;
  
      public static void main(String[] args) throws Throwable {
          try (ResourceScope scope = ResourceScope.newConfinedScope()) {
-             MemoryAddress stub = linker.upcallStub(MH_m, FunctionDescriptor.ofVoid(), scope);
+             NativeSymbol stub = linker.upcallStub(MH_m, FunctionDescriptor.ofVoid(), scope);
              MemoryAddress stubAddress = stub.address();
              armed = false;
              for (int i = 0; i < 20_000; i++) {
                  payload(stubAddress); // warmup
              }

@@ -156,11 +158,11 @@
              payload(stubAddress); // test
          }
      }
  
      static void payload(MemoryAddress cb) throws Throwable {
-         MH_foo.invokeExact(cb);
+         MH_foo.invoke(cb);
          Reference.reachabilityFence(cb); // keep oop alive across call
      }
  
      static void m() {
          if (armed) {
< prev index next >