jdk/test/java/lang/invoke/VarHandles/VarHandleTestMethodHandleAccessString.java
changeset 37719 add11bc0e6e2
parent 37343 35a2231828a7
child 38328 40435a469d25
child 38358 cb99c6d2af1b
equal deleted inserted replaced
37718:79b158dae903 37719:add11bc0e6e2
   226             assertEquals(r, true, "weakCompareAndSetRelease String");
   226             assertEquals(r, true, "weakCompareAndSetRelease String");
   227             String x = (String) hs.get(TestAccessMode.GET).invokeExact(recv);
   227             String x = (String) hs.get(TestAccessMode.GET).invokeExact(recv);
   228             assertEquals(x, "bar", "weakCompareAndSetRelease String");
   228             assertEquals(x, "bar", "weakCompareAndSetRelease String");
   229         }
   229         }
   230 
   230 
       
   231         {
       
   232             boolean r = (boolean) hs.get(TestAccessMode.WEAK_COMPARE_AND_SET_VOLATILE).invokeExact(recv, "bar", "foo");
       
   233             assertEquals(r, true, "weakCompareAndSetVolatile String");
       
   234             String x = (String) hs.get(TestAccessMode.GET).invokeExact(recv);
       
   235             assertEquals(x, "foo", "weakCompareAndSetVolatile String value");
       
   236         }
       
   237 
   231         // Compare set and get
   238         // Compare set and get
   232         {
   239         {
   233             String o = (String) hs.get(TestAccessMode.GET_AND_SET).invokeExact(recv, "foo");
   240             String o = (String) hs.get(TestAccessMode.GET_AND_SET).invokeExact(recv, "bar");
   234             assertEquals(o, "bar", "getAndSet String");
   241             assertEquals(o, "foo", "getAndSet String");
   235             String x = (String) hs.get(TestAccessMode.GET).invokeExact(recv);
   242             String x = (String) hs.get(TestAccessMode.GET).invokeExact(recv);
   236             assertEquals(x, "foo", "getAndSet String value");
   243             assertEquals(x, "bar", "getAndSet String value");
   237         }
   244         }
   238 
   245 
   239     }
   246     }
   240 
   247 
   241     static void testInstanceFieldUnsupported(VarHandleTestMethodHandleAccessString recv, Handles hs) throws Throwable {
   248     static void testInstanceFieldUnsupported(VarHandleTestMethodHandleAccessString recv, Handles hs) throws Throwable {
   350             String x = (String) hs.get(TestAccessMode.GET).invokeExact();
   357             String x = (String) hs.get(TestAccessMode.GET).invokeExact();
   351             assertEquals(x, "foo", "weakCompareAndSetAcquire String");
   358             assertEquals(x, "foo", "weakCompareAndSetAcquire String");
   352         }
   359         }
   353 
   360 
   354         {
   361         {
   355             boolean r = (boolean) hs.get(TestAccessMode.WEAK_COMPARE_AND_SET_RELEASE).invokeExact( "foo", "bar");
   362             boolean r = (boolean) hs.get(TestAccessMode.WEAK_COMPARE_AND_SET_RELEASE).invokeExact("foo", "bar");
   356             assertEquals(r, true, "weakCompareAndSetRelease String");
   363             assertEquals(r, true, "weakCompareAndSetRelease String");
   357             String x = (String) hs.get(TestAccessMode.GET).invokeExact();
   364             String x = (String) hs.get(TestAccessMode.GET).invokeExact();
   358             assertEquals(x, "bar", "weakCompareAndSetRelease String");
   365             assertEquals(x, "bar", "weakCompareAndSetRelease String");
   359         }
   366         }
   360 
   367 
       
   368         {
       
   369             boolean r = (boolean) hs.get(TestAccessMode.WEAK_COMPARE_AND_SET_VOLATILE).invokeExact("bar", "foo");
       
   370             assertEquals(r, true, "weakCompareAndSetVolatile String");
       
   371             String x = (String) hs.get(TestAccessMode.GET).invokeExact();
       
   372             assertEquals(x, "foo", "weakCompareAndSetVolatile String value");
       
   373         }
       
   374 
   361         // Compare set and get
   375         // Compare set and get
   362         {
   376         {
   363             String o = (String) hs.get(TestAccessMode.GET_AND_SET).invokeExact( "foo");
   377             String o = (String) hs.get(TestAccessMode.GET_AND_SET).invokeExact("bar");
   364             assertEquals(o, "bar", "getAndSet String");
   378             assertEquals(o, "foo", "getAndSet String");
   365             String x = (String) hs.get(TestAccessMode.GET).invokeExact();
   379             String x = (String) hs.get(TestAccessMode.GET).invokeExact();
   366             assertEquals(x, "foo", "getAndSet String value");
   380             assertEquals(x, "bar", "getAndSet String value");
   367         }
   381         }
   368 
   382 
   369     }
   383     }
   370 
   384 
   371     static void testStaticFieldUnsupported(Handles hs) throws Throwable {
   385     static void testStaticFieldUnsupported(Handles hs) throws Throwable {
   489                 assertEquals(r, true, "weakCompareAndSetRelease String");
   503                 assertEquals(r, true, "weakCompareAndSetRelease String");
   490                 String x = (String) hs.get(TestAccessMode.GET).invokeExact(array, i);
   504                 String x = (String) hs.get(TestAccessMode.GET).invokeExact(array, i);
   491                 assertEquals(x, "bar", "weakCompareAndSetRelease String");
   505                 assertEquals(x, "bar", "weakCompareAndSetRelease String");
   492             }
   506             }
   493 
   507 
       
   508             {
       
   509                 boolean r = (boolean) hs.get(TestAccessMode.WEAK_COMPARE_AND_SET_VOLATILE).invokeExact(array, i, "bar", "foo");
       
   510                 assertEquals(r, true, "weakCompareAndSetVolatile String");
       
   511                 String x = (String) hs.get(TestAccessMode.GET).invokeExact(array, i);
       
   512                 assertEquals(x, "foo", "weakCompareAndSetVolatile String value");
       
   513             }
       
   514 
   494             // Compare set and get
   515             // Compare set and get
   495             {
   516             {
   496                 String o = (String) hs.get(TestAccessMode.GET_AND_SET).invokeExact(array, i, "foo");
   517                 String o = (String) hs.get(TestAccessMode.GET_AND_SET).invokeExact(array, i, "bar");
   497                 assertEquals(o, "bar", "getAndSet String");
   518                 assertEquals(o, "foo", "getAndSet String");
   498                 String x = (String) hs.get(TestAccessMode.GET).invokeExact(array, i);
   519                 String x = (String) hs.get(TestAccessMode.GET).invokeExact(array, i);
   499                 assertEquals(x, "foo", "getAndSet String value");
   520                 assertEquals(x, "bar", "getAndSet String value");
   500             }
   521             }
   501 
   522 
   502         }
   523         }
   503     }
   524     }
   504 
   525