jdk/test/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsChar.java
changeset 37668 34a002e5168a
parent 37343 35a2231828a7
child 37719 add11bc0e6e2
child 38357 f18eb84a3b96
equal deleted inserted replaced
37667:6d042f115c35 37668:34a002e5168a
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /*
    24 /*
    25  * @test
    25  * @test
       
    26  * @bug 8154556
    26  * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsChar
    27  * @run testng/othervm -Diters=20000 -XX:TieredStopAtLevel=1 VarHandleTestByteArrayAsChar
    27  * @run testng/othervm -Diters=20000                         VarHandleTestByteArrayAsChar
    28  * @run testng/othervm -Diters=20000                         VarHandleTestByteArrayAsChar
    28  * @run testng/othervm -Diters=20000 -XX:-TieredCompilation  VarHandleTestByteArrayAsChar
    29  * @run testng/othervm -Diters=20000 -XX:-TieredCompilation  VarHandleTestByteArrayAsChar
    29  */
    30  */
    30 
    31 
    55     @Override
    56     @Override
    56     public void setupVarHandleSources() {
    57     public void setupVarHandleSources() {
    57         // Combinations of VarHandle byte[] or ByteBuffer
    58         // Combinations of VarHandle byte[] or ByteBuffer
    58         vhss = new ArrayList<>();
    59         vhss = new ArrayList<>();
    59         for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
    60         for (MemoryMode endianess : Arrays.asList(MemoryMode.BIG_ENDIAN, MemoryMode.LITTLE_ENDIAN)) {
       
    61 
       
    62             ByteOrder bo = endianess == MemoryMode.BIG_ENDIAN
       
    63                     ? ByteOrder.BIG_ENDIAN : ByteOrder.LITTLE_ENDIAN;
    60             VarHandleSource aeh = new VarHandleSource(
    64             VarHandleSource aeh = new VarHandleSource(
    61                     MethodHandles.byteArrayViewVarHandle(char[].class,
    65                     MethodHandles.byteArrayViewVarHandle(char[].class, bo),
    62                                                          endianess == MemoryMode.BIG_ENDIAN),
       
    63                     endianess, MemoryMode.READ_WRITE);
    66                     endianess, MemoryMode.READ_WRITE);
    64             vhss.add(aeh);
    67             vhss.add(aeh);
    65 
    68 
    66             VarHandleSource bbh = new VarHandleSource(
    69             VarHandleSource bbh = new VarHandleSource(
    67                     MethodHandles.byteBufferViewVarHandle(char[].class,
    70                     MethodHandles.byteBufferViewVarHandle(char[].class, bo),
    68                                                           endianess == MemoryMode.BIG_ENDIAN),
       
    69                     endianess, MemoryMode.READ_WRITE);
    71                     endianess, MemoryMode.READ_WRITE);
    70             vhss.add(bbh);
    72             vhss.add(bbh);
    71         }
    73         }
    72     }
    74     }
    73 
    75 
    90         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_VOLATILE));
    92         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_VOLATILE));
    91         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_ACQUIRE));
    93         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_ACQUIRE));
    92         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_RELEASE));
    94         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_RELEASE));
    93         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
    95         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
    94         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
    96         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
    95         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
       
    96         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
    97         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
    97         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
    98         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
    98 
    99 
    99         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
   100         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
   100         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.ADD_AND_GET));
   101         assertFalse(vh.isAccessModeSupported(VarHandle.AccessMode.ADD_AND_GET));