< prev index next >

test/java/lang/invoke/VarHandles/VarHandleTestByteArrayAsLong.java

Print this page




  76     public void testIsAccessModeSupported(VarHandleSource vhs) {
  77         VarHandle vh = vhs.s;
  78 
  79         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET));
  80         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET));
  81 
  82         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_VOLATILE));
  83         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET_VOLATILE));
  84         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_ACQUIRE));
  85         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET_RELEASE));
  86         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_OPAQUE));
  87         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET_OPAQUE));
  88 
  89         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_SET));
  90         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_VOLATILE));
  91         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_ACQUIRE));
  92         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_RELEASE));
  93         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
  94         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
  95         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
  96         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));
  97         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
  98 
  99         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
 100         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.ADD_AND_GET));
 101     }
 102 
 103     @Test(dataProvider = "typesProvider")
 104     public void testTypes(VarHandle vh, List<java.lang.Class<?>> pts) {
 105         assertEquals(vh.varType(), long.class);
 106 
 107         assertEquals(vh.coordinateTypes(), pts);
 108 
 109         testTypes(vh);
 110     }
 111 
 112 
 113     @DataProvider
 114     public Object[][] accessTestCaseProvider() throws Exception {
 115         List<AccessTestCase<?>> cases = new ArrayList<>();
 116 


 675                     assertEquals(r, VALUE_2, "failing compareAndExchangeAcquire long");
 676                     long x = (long) vh.get(array, i);
 677                     assertEquals(x, VALUE_2, "failing compareAndExchangeAcquire long value");
 678                 }
 679 
 680                 {
 681                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_1);
 682                     assertEquals(r, VALUE_2, "success compareAndExchangeRelease long");
 683                     long x = (long) vh.get(array, i);
 684                     assertEquals(x, VALUE_1, "success compareAndExchangeRelease long value");
 685                 }
 686 
 687                 {
 688                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_3);
 689                     assertEquals(r, VALUE_1, "failing compareAndExchangeRelease long");
 690                     long x = (long) vh.get(array, i);
 691                     assertEquals(x, VALUE_1, "failing compareAndExchangeRelease long value");
 692                 }
 693 
 694                 {
 695                     boolean r = vh.weakCompareAndSet(array, i, VALUE_1, VALUE_2);
 696                     assertEquals(r, true, "weakCompareAndSet long");



 697                     long x = (long) vh.get(array, i);
 698                     assertEquals(x, VALUE_2, "weakCompareAndSet long value");
 699                 }
 700 
 701                 {
 702                     boolean r = vh.weakCompareAndSetAcquire(array, i, VALUE_2, VALUE_1);
 703                     assertEquals(r, true, "weakCompareAndSetAcquire long");



 704                     long x = (long) vh.get(array, i);
 705                     assertEquals(x, VALUE_1, "weakCompareAndSetAcquire long");
 706                 }
 707 
 708                 {
 709                     boolean r = vh.weakCompareAndSetRelease(array, i, VALUE_1, VALUE_2);
 710                     assertEquals(r, true, "weakCompareAndSetRelease long");



 711                     long x = (long) vh.get(array, i);
 712                     assertEquals(x, VALUE_2, "weakCompareAndSetRelease long");
 713                 }
 714 
 715                 // Compare set and get
 716                 {
 717                     long o = (long) vh.getAndSet(array, i, VALUE_1);
 718                     assertEquals(o, VALUE_2, "getAndSet long");
 719                     long x = (long) vh.get(array, i);
 720                     assertEquals(x, VALUE_1, "getAndSet long value");
 721                 }
 722 
 723                 vh.set(array, i, VALUE_1);
 724 
 725                 // get and add, add and get
 726                 {
 727                     long o = (long) vh.getAndAdd(array, i, VALUE_3);
 728                     assertEquals(o, VALUE_1, "getAndAdd long");
 729                     long c = (long) vh.addAndGet(array, i, VALUE_3);
 730                     assertEquals(c, VALUE_1 + VALUE_3 + VALUE_3, "getAndAdd long value");


 817                     assertEquals(r, VALUE_2, "failing compareAndExchangeAcquire long");
 818                     long x = (long) vh.get(array, i);
 819                     assertEquals(x, VALUE_2, "failing compareAndExchangeAcquire long value");
 820                 }
 821 
 822                 {
 823                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_1);
 824                     assertEquals(r, VALUE_2, "success compareAndExchangeRelease long");
 825                     long x = (long) vh.get(array, i);
 826                     assertEquals(x, VALUE_1, "success compareAndExchangeRelease long value");
 827                 }
 828 
 829                 {
 830                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_3);
 831                     assertEquals(r, VALUE_1, "failing compareAndExchangeRelease long");
 832                     long x = (long) vh.get(array, i);
 833                     assertEquals(x, VALUE_1, "failing compareAndExchangeRelease long value");
 834                 }
 835 
 836                 {
 837                     boolean r = vh.weakCompareAndSet(array, i, VALUE_1, VALUE_2);
 838                     assertEquals(r, true, "weakCompareAndSet long");



 839                     long x = (long) vh.get(array, i);
 840                     assertEquals(x, VALUE_2, "weakCompareAndSet long value");
 841                 }
 842 
 843                 {
 844                     boolean r = vh.weakCompareAndSetAcquire(array, i, VALUE_2, VALUE_1);
 845                     assertEquals(r, true, "weakCompareAndSetAcquire long");



 846                     long x = (long) vh.get(array, i);
 847                     assertEquals(x, VALUE_1, "weakCompareAndSetAcquire long");
 848                 }
 849 
 850                 {
 851                     boolean r = vh.weakCompareAndSetRelease(array, i, VALUE_1, VALUE_2);
 852                     assertEquals(r, true, "weakCompareAndSetRelease long");



 853                     long x = (long) vh.get(array, i);
 854                     assertEquals(x, VALUE_2, "weakCompareAndSetRelease long");
 855                 }
 856 
 857                 // Compare set and get
 858                 {
 859                     long o = (long) vh.getAndSet(array, i, VALUE_1);
 860                     assertEquals(o, VALUE_2, "getAndSet long");
 861                     long x = (long) vh.get(array, i);
 862                     assertEquals(x, VALUE_1, "getAndSet long value");
 863                 }
 864 
 865                 vh.set(array, i, VALUE_1);
 866 
 867                 // get and add, add and get
 868                 {
 869                     long o = (long) vh.getAndAdd(array, i, VALUE_3);
 870                     assertEquals(o, VALUE_1, "getAndAdd long");
 871                     long c = (long) vh.addAndGet(array, i, VALUE_3);
 872                     assertEquals(c, VALUE_1 + VALUE_3 + VALUE_3, "getAndAdd long value");




  76     public void testIsAccessModeSupported(VarHandleSource vhs) {
  77         VarHandle vh = vhs.s;
  78 
  79         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET));
  80         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET));
  81 
  82         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_VOLATILE));
  83         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET_VOLATILE));
  84         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_ACQUIRE));
  85         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET_RELEASE));
  86         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_OPAQUE));
  87         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.SET_OPAQUE));
  88 
  89         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_SET));
  90         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_VOLATILE));
  91         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_ACQUIRE));
  92         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.COMPARE_AND_EXCHANGE_RELEASE));
  93         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET));
  94         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_ACQUIRE));
  95         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.WEAK_COMPARE_AND_SET_RELEASE));

  96         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_SET));
  97 
  98         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.GET_AND_ADD));
  99         assertTrue(vh.isAccessModeSupported(VarHandle.AccessMode.ADD_AND_GET));
 100     }
 101 
 102     @Test(dataProvider = "typesProvider")
 103     public void testTypes(VarHandle vh, List<java.lang.Class<?>> pts) {
 104         assertEquals(vh.varType(), long.class);
 105 
 106         assertEquals(vh.coordinateTypes(), pts);
 107 
 108         testTypes(vh);
 109     }
 110 
 111 
 112     @DataProvider
 113     public Object[][] accessTestCaseProvider() throws Exception {
 114         List<AccessTestCase<?>> cases = new ArrayList<>();
 115 


 674                     assertEquals(r, VALUE_2, "failing compareAndExchangeAcquire long");
 675                     long x = (long) vh.get(array, i);
 676                     assertEquals(x, VALUE_2, "failing compareAndExchangeAcquire long value");
 677                 }
 678 
 679                 {
 680                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_1);
 681                     assertEquals(r, VALUE_2, "success compareAndExchangeRelease long");
 682                     long x = (long) vh.get(array, i);
 683                     assertEquals(x, VALUE_1, "success compareAndExchangeRelease long value");
 684                 }
 685 
 686                 {
 687                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_3);
 688                     assertEquals(r, VALUE_1, "failing compareAndExchangeRelease long");
 689                     long x = (long) vh.get(array, i);
 690                     assertEquals(x, VALUE_1, "failing compareAndExchangeRelease long value");
 691                 }
 692 
 693                 {
 694                     boolean success = false;
 695                     for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
 696                         success = vh.weakCompareAndSet(array, i, VALUE_1, VALUE_2);
 697                     }
 698                     assertEquals(success, true, "weakCompareAndSet long");
 699                     long x = (long) vh.get(array, i);
 700                     assertEquals(x, VALUE_2, "weakCompareAndSet long value");
 701                 }
 702 
 703                 {
 704                     boolean success = false;
 705                     for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
 706                         success = vh.weakCompareAndSetAcquire(array, i, VALUE_2, VALUE_1);
 707                     }
 708                     assertEquals(success, true, "weakCompareAndSetAcquire long");
 709                     long x = (long) vh.get(array, i);
 710                     assertEquals(x, VALUE_1, "weakCompareAndSetAcquire long");
 711                 }
 712 
 713                 {
 714                     boolean success = false;
 715                     for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
 716                         success = vh.weakCompareAndSetRelease(array, i, VALUE_1, VALUE_2);
 717                     }
 718                     assertEquals(success, true, "weakCompareAndSetRelease long");
 719                     long x = (long) vh.get(array, i);
 720                     assertEquals(x, VALUE_2, "weakCompareAndSetRelease long");
 721                 }
 722 
 723                 // Compare set and get
 724                 {
 725                     long o = (long) vh.getAndSet(array, i, VALUE_1);
 726                     assertEquals(o, VALUE_2, "getAndSet long");
 727                     long x = (long) vh.get(array, i);
 728                     assertEquals(x, VALUE_1, "getAndSet long value");
 729                 }
 730 
 731                 vh.set(array, i, VALUE_1);
 732 
 733                 // get and add, add and get
 734                 {
 735                     long o = (long) vh.getAndAdd(array, i, VALUE_3);
 736                     assertEquals(o, VALUE_1, "getAndAdd long");
 737                     long c = (long) vh.addAndGet(array, i, VALUE_3);
 738                     assertEquals(c, VALUE_1 + VALUE_3 + VALUE_3, "getAndAdd long value");


 825                     assertEquals(r, VALUE_2, "failing compareAndExchangeAcquire long");
 826                     long x = (long) vh.get(array, i);
 827                     assertEquals(x, VALUE_2, "failing compareAndExchangeAcquire long value");
 828                 }
 829 
 830                 {
 831                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_1);
 832                     assertEquals(r, VALUE_2, "success compareAndExchangeRelease long");
 833                     long x = (long) vh.get(array, i);
 834                     assertEquals(x, VALUE_1, "success compareAndExchangeRelease long value");
 835                 }
 836 
 837                 {
 838                     long r = (long) vh.compareAndExchangeRelease(array, i, VALUE_2, VALUE_3);
 839                     assertEquals(r, VALUE_1, "failing compareAndExchangeRelease long");
 840                     long x = (long) vh.get(array, i);
 841                     assertEquals(x, VALUE_1, "failing compareAndExchangeRelease long value");
 842                 }
 843 
 844                 {
 845                     boolean success = false;
 846                     for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
 847                         success = vh.weakCompareAndSet(array, i, VALUE_1, VALUE_2);
 848                     }
 849                     assertEquals(success, true, "weakCompareAndSet long");
 850                     long x = (long) vh.get(array, i);
 851                     assertEquals(x, VALUE_2, "weakCompareAndSet long value");
 852                 }
 853 
 854                 {
 855                     boolean success = false;
 856                     for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
 857                         success = vh.weakCompareAndSetAcquire(array, i, VALUE_2, VALUE_1);
 858                     }
 859                     assertEquals(success, true, "weakCompareAndSetAcquire long");
 860                     long x = (long) vh.get(array, i);
 861                     assertEquals(x, VALUE_1, "weakCompareAndSetAcquire long");
 862                 }
 863 
 864                 {
 865                     boolean success = false;
 866                     for (int c = 0; c < WEAK_ATTEMPTS && !success; c++) {
 867                         success = vh.weakCompareAndSetRelease(array, i, VALUE_1, VALUE_2);
 868                     }
 869                     assertEquals(success, true, "weakCompareAndSetRelease long");
 870                     long x = (long) vh.get(array, i);
 871                     assertEquals(x, VALUE_2, "weakCompareAndSetRelease long");
 872                 }
 873 
 874                 // Compare set and get
 875                 {
 876                     long o = (long) vh.getAndSet(array, i, VALUE_1);
 877                     assertEquals(o, VALUE_2, "getAndSet long");
 878                     long x = (long) vh.get(array, i);
 879                     assertEquals(x, VALUE_1, "getAndSet long value");
 880                 }
 881 
 882                 vh.set(array, i, VALUE_1);
 883 
 884                 // get and add, add and get
 885                 {
 886                     long o = (long) vh.getAndAdd(array, i, VALUE_3);
 887                     assertEquals(o, VALUE_1, "getAndAdd long");
 888                     long c = (long) vh.addAndGet(array, i, VALUE_3);
 889                     assertEquals(c, VALUE_1 + VALUE_3 + VALUE_3, "getAndAdd long value");


< prev index next >