hotspot/test/compiler/stable/TestStableLong.java
changeset 36604 e9c073b0c19e
parent 35099 982950884444
child 36616 5172e3dd60f2
equal deleted inserted replaced
36603:0bc3ad031d60 36604:e9c073b0c19e
    86 
    86 
    87 import java.lang.reflect.InvocationTargetException;
    87 import java.lang.reflect.InvocationTargetException;
    88 
    88 
    89 public class TestStableLong {
    89 public class TestStableLong {
    90     static final boolean isStableEnabled    = StableConfiguration.isStableEnabled;
    90     static final boolean isStableEnabled    = StableConfiguration.isStableEnabled;
    91     static final boolean isServerWithStable = StableConfiguration.isServerWithStable;
       
    92 
    91 
    93     public static void main(String[] args) throws Exception {
    92     public static void main(String[] args) throws Exception {
    94         run(DefaultValue.class);
    93         run(DefaultValue.class);
    95         run(LongStable.class);
    94         run(LongStable.class);
    96         run(DefaultStaticValue.class);
    95         run(DefaultStaticValue.class);
   207         public static void test() throws Exception {
   206         public static void test() throws Exception {
   208             {
   207             {
   209                 c.v = new long[1]; c.v[0] = 1; long val1 = get();
   208                 c.v = new long[1]; c.v[0] = 1; long val1 = get();
   210                                    c.v[0] = 2; long val2 = get();
   209                                    c.v[0] = 2; long val2 = get();
   211                 assertEquals(val1, 1);
   210                 assertEquals(val1, 1);
   212                 assertEquals(val2, (isServerWithStable ? 1 : 2));
   211                 assertEquals(val2, (isStableEnabled ? 1 : 2));
   213 
   212 
   214                 c.v = new long[1]; c.v[0] = 3; long val3 = get();
   213                 c.v = new long[1]; c.v[0] = 3; long val3 = get();
   215                 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   214                 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   216                                                     : 3));
   215                                                     : 3));
   217             }
   216             }
   218 
   217 
   219             {
   218             {
   220                 c.v = new long[20]; c.v[10] = 1; long val1 = get1();
   219                 c.v = new long[20]; c.v[10] = 1; long val1 = get1();
   221                                     c.v[10] = 2; long val2 = get1();
   220                                     c.v[10] = 2; long val2 = get1();
   222                 assertEquals(val1, 1);
   221                 assertEquals(val1, 1);
   223                 assertEquals(val2, (isServerWithStable ? 1 : 2));
   222                 assertEquals(val2, (isStableEnabled ? 1 : 2));
   224 
   223 
   225                 c.v = new long[20]; c.v[10] = 3; long val3 = get1();
   224                 c.v = new long[20]; c.v[10] = 3; long val3 = get1();
   226                 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   225                 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   227                                                     : 3));
   226                                                     : 3));
   228             }
   227             }
   229 
   228 
   230             {
   229             {
   231                 c.v = new long[1]; long[] val1 = get2();
   230                 c.v = new long[1]; long[] val1 = get2();
   247         public static void test() throws Exception {
   246         public static void test() throws Exception {
   248             {
   247             {
   249                 c.v = new long[1][1]; c.v[0][0] = 1; long val1 = get();
   248                 c.v = new long[1][1]; c.v[0][0] = 1; long val1 = get();
   250                                       c.v[0][0] = 2; long val2 = get();
   249                                       c.v[0][0] = 2; long val2 = get();
   251                 assertEquals(val1, 1);
   250                 assertEquals(val1, 1);
   252                 assertEquals(val2, (isServerWithStable ? 1 : 2));
   251                 assertEquals(val2, (isStableEnabled ? 1 : 2));
   253 
   252 
   254                 c.v = new long[1][1]; c.v[0][0] = 3; long val3 = get();
   253                 c.v = new long[1][1]; c.v[0][0] = 3; long val3 = get();
   255                 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   254                 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   256                                                     : 3));
   255                                                     : 3));
   257 
   256 
   258                 c.v[0] = new long[1]; c.v[0][0] = 4; long val4 = get();
   257                 c.v[0] = new long[1]; c.v[0][0] = 4; long val4 = get();
   259                 assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   258                 assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   260                                                     : 4));
   259                                                     : 4));
   261             }
   260             }
   262 
   261 
   263             {
   262             {
   264                 c.v = new long[1][1]; long[] val1 = get1();
   263                 c.v = new long[1][1]; long[] val1 = get1();
   265                 c.v[0] = new long[1]; long[] val2 = get1();
   264                 c.v[0] = new long[1]; long[] val2 = get1();
   266                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   265                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   267             }
   266             }
   268 
   267 
   269             {
   268             {
   270                 c.v = new long[1][1]; long[][] val1 = get2();
   269                 c.v = new long[1][1]; long[][] val1 = get2();
   271                 c.v = new long[1][1]; long[][] val2 = get2();
   270                 c.v = new long[1][1]; long[][] val2 = get2();
   287         public static void test() throws Exception {
   286         public static void test() throws Exception {
   288             {
   287             {
   289                 c.v = new long[1][1][1]; c.v[0][0][0] = 1; long val1 = get();
   288                 c.v = new long[1][1][1]; c.v[0][0][0] = 1; long val1 = get();
   290                                          c.v[0][0][0] = 2; long val2 = get();
   289                                          c.v[0][0][0] = 2; long val2 = get();
   291                 assertEquals(val1, 1);
   290                 assertEquals(val1, 1);
   292                 assertEquals(val2, (isServerWithStable ? 1 : 2));
   291                 assertEquals(val2, (isStableEnabled ? 1 : 2));
   293 
   292 
   294                 c.v = new long[1][1][1]; c.v[0][0][0] = 3; long val3 = get();
   293                 c.v = new long[1][1][1]; c.v[0][0][0] = 3; long val3 = get();
   295                 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   294                 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   296                                                     : 3));
   295                                                     : 3));
   297 
   296 
   298                 c.v[0] = new long[1][1]; c.v[0][0][0] = 4; long val4 = get();
   297                 c.v[0] = new long[1][1]; c.v[0][0][0] = 4; long val4 = get();
   299                 assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   298                 assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   300                                                     : 4));
   299                                                     : 4));
   301 
   300 
   302                 c.v[0][0] = new long[1]; c.v[0][0][0] = 5; long val5 = get();
   301                 c.v[0][0] = new long[1]; c.v[0][0][0] = 5; long val5 = get();
   303                 assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   302                 assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   304                                                     : 5));
   303                                                     : 5));
   305             }
   304             }
   306 
   305 
   307             {
   306             {
   308                 c.v = new long[1][1][1]; long[] val1 = get1();
   307                 c.v = new long[1][1][1]; long[] val1 = get1();
   309                 c.v[0][0] = new long[1]; long[] val2 = get1();
   308                 c.v[0][0] = new long[1]; long[] val2 = get1();
   310                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   309                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   311             }
   310             }
   312 
   311 
   313             {
   312             {
   314                 c.v = new long[1][1][1]; long[][] val1 = get2();
   313                 c.v = new long[1][1][1]; long[][] val1 = get2();
   315                 c.v[0] = new long[1][1]; long[][] val2 = get2();
   314                 c.v[0] = new long[1][1]; long[][] val2 = get2();
   316                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   315                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   317             }
   316             }
   318 
   317 
   319             {
   318             {
   320                 c.v = new long[1][1][1]; long[][][] val1 = get3();
   319                 c.v = new long[1][1][1]; long[][][] val1 = get3();
   321                 c.v = new long[1][1][1]; long[][][] val2 = get3();
   320                 c.v = new long[1][1][1]; long[][][] val2 = get3();
   338         public static void test() throws Exception {
   337         public static void test() throws Exception {
   339             {
   338             {
   340                 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 1; long val1 = get();
   339                 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 1; long val1 = get();
   341                                             c.v[0][0][0][0] = 2; long val2 = get();
   340                                             c.v[0][0][0][0] = 2; long val2 = get();
   342                 assertEquals(val1, 1);
   341                 assertEquals(val1, 1);
   343                 assertEquals(val2, (isServerWithStable ? 1 : 2));
   342                 assertEquals(val2, (isStableEnabled ? 1 : 2));
   344 
   343 
   345                 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 3; long val3 = get();
   344                 c.v = new long[1][1][1][1]; c.v[0][0][0][0] = 3; long val3 = get();
   346                 assertEquals(val3, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   345                 assertEquals(val3, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   347                                                     : 3));
   346                                                     : 3));
   348 
   347 
   349                 c.v[0] = new long[1][1][1]; c.v[0][0][0][0] = 4; long val4 = get();
   348                 c.v[0] = new long[1][1][1]; c.v[0][0][0][0] = 4; long val4 = get();
   350                 assertEquals(val4, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   349                 assertEquals(val4, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   351                                                     : 4));
   350                                                     : 4));
   352 
   351 
   353                 c.v[0][0] = new long[1][1]; c.v[0][0][0][0] = 5; long val5 = get();
   352                 c.v[0][0] = new long[1][1]; c.v[0][0][0][0] = 5; long val5 = get();
   354                 assertEquals(val5, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   353                 assertEquals(val5, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   355                                                     : 5));
   354                                                     : 5));
   356 
   355 
   357                 c.v[0][0][0] = new long[1]; c.v[0][0][0][0] = 6; long val6 = get();
   356                 c.v[0][0][0] = new long[1]; c.v[0][0][0][0] = 6; long val6 = get();
   358                 assertEquals(val6, (isStableEnabled ? (isServerWithStable ? 1 : 2)
   357                 assertEquals(val6, (isStableEnabled ? (isStableEnabled ? 1 : 2)
   359                                                     : 6));
   358                                                     : 6));
   360             }
   359             }
   361 
   360 
   362             {
   361             {
   363                 c.v = new long[1][1][1][1]; long[] val1 = get1();
   362                 c.v = new long[1][1][1][1]; long[] val1 = get1();
   364                 c.v[0][0][0] = new long[1]; long[] val2 = get1();
   363                 c.v[0][0][0] = new long[1]; long[] val2 = get1();
   365                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   364                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   366             }
   365             }
   367 
   366 
   368             {
   367             {
   369                 c.v = new long[1][1][1][1]; long[][] val1 = get2();
   368                 c.v = new long[1][1][1][1]; long[][] val1 = get2();
   370                 c.v[0][0] = new long[1][1]; long[][] val2 = get2();
   369                 c.v[0][0] = new long[1][1]; long[][] val2 = get2();
   371                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   370                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   372             }
   371             }
   373 
   372 
   374             {
   373             {
   375                 c.v = new long[1][1][1][1]; long[][][] val1 = get3();
   374                 c.v = new long[1][1][1][1]; long[][][] val1 = get3();
   376                 c.v[0] = new long[1][1][1]; long[][][] val2 = get3();
   375                 c.v[0] = new long[1][1][1]; long[][][] val2 = get3();
   377                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   376                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   378             }
   377             }
   379 
   378 
   380             {
   379             {
   381                 c.v = new long[1][1][1][1]; long[][][][] val1 = get4();
   380                 c.v = new long[1][1][1][1]; long[][][][] val1 = get4();
   382                 c.v = new long[1][1][1][1]; long[][][][] val2 = get4();
   381                 c.v = new long[1][1][1][1]; long[][][][] val2 = get4();
   432 
   431 
   433             {
   432             {
   434                 c.v = new long[1][1]; c.v[0] = new long[0]; long[] val1 = get1();
   433                 c.v = new long[1][1]; c.v[0] = new long[0]; long[] val1 = get1();
   435                                      c.v[0] = new long[0]; long[] val2 = get1();
   434                                      c.v[0] = new long[0]; long[] val2 = get1();
   436 
   435 
   437                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   436                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   438             }
   437             }
   439 
   438 
   440             {
   439             {
   441                 c.v = new long[0][0]; Object[] val1 = get2();
   440                 c.v = new long[0][0]; Object[] val1 = get2();
   442                 c.v = new long[0][0]; Object[] val2 = get2();
   441                 c.v = new long[0][0]; Object[] val2 = get2();
   468 
   467 
   469             {
   468             {
   470                 c.v = new long[1][1][1]; c.v[0][0] = new long[0]; long[] val1 = get1();
   469                 c.v = new long[1][1][1]; c.v[0][0] = new long[0]; long[] val1 = get1();
   471                                          c.v[0][0] = new long[0]; long[] val2 = get1();
   470                                          c.v[0][0] = new long[0]; long[] val2 = get1();
   472 
   471 
   473                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   472                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   474             }
   473             }
   475 
   474 
   476             {
   475             {
   477                 c.v = new long[1][1][1]; c.v[0] = new long[0][0]; long[][] val1 = get2();
   476                 c.v = new long[1][1][1]; c.v[0] = new long[0][0]; long[][] val1 = get2();
   478                                          c.v[0] = new long[0][0]; long[][] val2 = get2();
   477                                          c.v[0] = new long[0][0]; long[][] val2 = get2();
   479 
   478 
   480                 assertTrue((isServerWithStable ? (val1 == val2) : (val1 != val2)));
   479                 assertTrue((isStableEnabled ? (val1 == val2) : (val1 != val2)));
   481             }
   480             }
   482 
   481 
   483             {
   482             {
   484                 c.v = new long[0][0][0]; Object[][] val1 = get3();
   483                 c.v = new long[0][0][0]; Object[][] val1 = get3();
   485                 c.v = new long[0][0][0]; Object[][] val2 = get3();
   484                 c.v = new long[0][0][0]; Object[][] val2 = get3();
   610                 c.v = new A[] { elem, elem }; c.v[0].left = c.v[0].right = c.v;
   609                 c.v = new A[] { elem, elem }; c.v[0].left = c.v[0].right = c.v;
   611                                elem.a = 1; long val1 = get(); long val2 = get1();
   610                                elem.a = 1; long val1 = get(); long val2 = get1();
   612                                elem.a = 2; long val3 = get(); long val4 = get1();
   611                                elem.a = 2; long val3 = get(); long val4 = get1();
   613 
   612 
   614                 assertEquals(val1, 1);
   613                 assertEquals(val1, 1);
   615                 assertEquals(val3, (isServerWithStable ? 1 : 2));
   614                 assertEquals(val3, (isStableEnabled ? 1 : 2));
   616 
   615 
   617                 assertEquals(val2, 1);
   616                 assertEquals(val2, 1);
   618                 assertEquals(val4, 2);
   617                 assertEquals(val4, 2);
   619             }
   618             }
   620         }
   619         }