< prev index next >

test/compiler/unsafe/UnsafeGetConstantField.java

Print this page
rev 10490 : 8152483: Fix a couple of tests that are being incorrectly run on C1 after jigsaw M3
Reviewed-by: tbd


  41  *                         -XX:+UseUnalignedAccesses
  42  *                         compiler.unsafe.UnsafeGetConstantField
  43  *
  44  * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions
  45  *                         -Xbatch -XX:-TieredCompilation
  46  *                         -XX:+FoldStableValues
  47  *                         -XX:CompileCommand=dontinline,UnsafeGetConstantField.checkGetAddress()
  48  *                         -XX:CompileCommand=dontinline,*.test*
  49  *                         -XX:-UseUnalignedAccesses
  50  *                         compiler.unsafe.UnsafeGetConstantField
  51  */
  52 package compiler.unsafe;
  53 
  54 import jdk.internal.org.objectweb.asm.ClassWriter;
  55 import jdk.internal.org.objectweb.asm.FieldVisitor;
  56 import jdk.internal.org.objectweb.asm.MethodVisitor;
  57 import jdk.internal.org.objectweb.asm.Opcodes;
  58 import jdk.internal.org.objectweb.asm.Type;
  59 import jdk.internal.vm.annotation.Stable;
  60 import jdk.test.lib.Asserts;

  61 import jdk.internal.misc.Unsafe;
  62 
  63 import java.io.IOException;
  64 import java.lang.reflect.Field;
  65 import java.nio.file.Files;
  66 import java.nio.file.Path;
  67 import java.nio.file.Paths;
  68 
  69 import static jdk.internal.org.objectweb.asm.Opcodes.*;
  70 
  71 public class UnsafeGetConstantField {
  72     static final Class<?> THIS_CLASS = UnsafeGetConstantField.class;
  73     static final Unsafe U = Unsafe.getUnsafe();
  74 
  75     public static void main(String[] args) {

  76         testUnsafeGetAddress();
  77         testUnsafeGetField();
  78         testUnsafeGetFieldUnaligned();

  79         System.out.println("TEST PASSED");
  80     }
  81 
  82     static final long nativeAddr = U.allocateMemory(16);
  83     static void testUnsafeGetAddress() {
  84         long cookie = 0x12345678L;
  85         U.putAddress(nativeAddr, cookie);
  86         for (int i = 0; i < 20_000; i++) {
  87             Asserts.assertEquals(checkGetAddress(), cookie);
  88         }
  89     }
  90 
  91     static long checkGetAddress() {
  92         return U.getAddress(nativeAddr);
  93     }
  94 
  95     static void testUnsafeGetField() {
  96         int[] testedFlags = new int[] { 0, ACC_STATIC, ACC_FINAL, (ACC_STATIC | ACC_FINAL) };
  97         boolean[] boolValues = new boolean[] { false, true };
  98         String[] modes = new String[] { "", "Volatile" };




  41  *                         -XX:+UseUnalignedAccesses
  42  *                         compiler.unsafe.UnsafeGetConstantField
  43  *
  44  * @run main/bootclasspath -XX:+UnlockDiagnosticVMOptions
  45  *                         -Xbatch -XX:-TieredCompilation
  46  *                         -XX:+FoldStableValues
  47  *                         -XX:CompileCommand=dontinline,UnsafeGetConstantField.checkGetAddress()
  48  *                         -XX:CompileCommand=dontinline,*.test*
  49  *                         -XX:-UseUnalignedAccesses
  50  *                         compiler.unsafe.UnsafeGetConstantField
  51  */
  52 package compiler.unsafe;
  53 
  54 import jdk.internal.org.objectweb.asm.ClassWriter;
  55 import jdk.internal.org.objectweb.asm.FieldVisitor;
  56 import jdk.internal.org.objectweb.asm.MethodVisitor;
  57 import jdk.internal.org.objectweb.asm.Opcodes;
  58 import jdk.internal.org.objectweb.asm.Type;
  59 import jdk.internal.vm.annotation.Stable;
  60 import jdk.test.lib.Asserts;
  61 import jdk.test.lib.Platform;
  62 import jdk.internal.misc.Unsafe;
  63 
  64 import java.io.IOException;
  65 import java.lang.reflect.Field;
  66 import java.nio.file.Files;
  67 import java.nio.file.Path;
  68 import java.nio.file.Paths;
  69 
  70 import static jdk.internal.org.objectweb.asm.Opcodes.*;
  71 
  72 public class UnsafeGetConstantField {
  73     static final Class<?> THIS_CLASS = UnsafeGetConstantField.class;
  74     static final Unsafe U = Unsafe.getUnsafe();
  75 
  76     public static void main(String[] args) {
  77         if (Platform.isServer()) {
  78             testUnsafeGetAddress();
  79             testUnsafeGetField();
  80             testUnsafeGetFieldUnaligned();
  81         }
  82         System.out.println("TEST PASSED");
  83     }
  84 
  85     static final long nativeAddr = U.allocateMemory(16);
  86     static void testUnsafeGetAddress() {
  87         long cookie = 0x12345678L;
  88         U.putAddress(nativeAddr, cookie);
  89         for (int i = 0; i < 20_000; i++) {
  90             Asserts.assertEquals(checkGetAddress(), cookie);
  91         }
  92     }
  93 
  94     static long checkGetAddress() {
  95         return U.getAddress(nativeAddr);
  96     }
  97 
  98     static void testUnsafeGetField() {
  99         int[] testedFlags = new int[] { 0, ACC_STATIC, ACC_FINAL, (ACC_STATIC | ACC_FINAL) };
 100         boolean[] boolValues = new boolean[] { false, true };
 101         String[] modes = new String[] { "", "Volatile" };


< prev index next >