< prev index next >

test/hotspot/jtreg/compiler/valhalla/valuetypes/TestIntrinsics.java

Print this page




 104 
 105     public void test3_verifier(boolean warmup) {
 106         Asserts.assertTrue(test3(Object.class) == null, "test3_1 failed");
 107         Asserts.assertTrue(test3(MyValue1.class) == Object.class, "test3_2 failed");
 108         Asserts.assertTrue(test3(Class.class) == Object.class, "test3_3 failed");
 109     }
 110 
 111     // Verify that Class::getSuperclass checks with statically known classes are folded
 112     @Test(failOn = LOADK)
 113     public boolean test4() {
 114         boolean check1 = Object.class.getSuperclass() == null;
 115         boolean check2 = MyValue1.class.getSuperclass() == Object.class;
 116         boolean check3 = Class.class.getSuperclass() == Object.class;
 117         return check1 && check2 && check3;
 118     }
 119 
 120     public void test4_verifier(boolean warmup) {
 121         Asserts.assertTrue(test4(), "test4 failed");
 122     }
 123 
 124     // TODO re-enable once Object method support is implemented
 125 /*
 126     // Test toString() method
 127     @Test(failOn = ALLOC + STORE + LOAD)
 128     public String test5(MyValue1 v) {
 129         return v.toString();
 130     }
 131 
 132     @DontCompile
 133     public void test5_verifier(boolean warmup) {
 134         MyValue1 v = MyValue1.createDefaultInline();
 135         test5(v);
 136     }
 137 */
 138 
 139     // Test hashCode() method
 140     // @Test()
 141     // public int test6(MyValue1 v) {
 142     //     return v.hashCode();
 143     // }
 144 
 145     // @DontCompile
 146     // public void test6_verifier(boolean warmup) {
 147     //     MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
 148     //     int res = test6(v);
 149     //     Asserts.assertEQ(res, v.hashCode());
 150     // }
 151 
 152     // Test default value type array creation via reflection
 153     @Test()
 154     public void test7(Class<?> componentType, int len, long hash) {
 155         Object[] va = (Object[])Array.newInstance(componentType, len);
 156         for (int i = 0; i < len; ++i) {
 157             Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash);
 158         }
 159     }
 160 
 161     @DontCompile
 162     public void test7_verifier(boolean warmup) {
 163         int len = Math.abs(rI) % 42;
 164         long hash = MyValue1.createDefaultDontInline().hashPrimitive();
 165         test7(MyValue1.class, len, hash);
 166     }
 167 
 168     // Class.isInstance
 169     @Test()
 170     public boolean test8(Class c, MyValue1 vt) {


 245         }
 246     }
 247 
 248     // value type array creation via reflection
 249     @Test()
 250     public void test14(int len, long hash) {
 251         Object[] va = (Object[])Array.newInstance(MyValue1.class, len);
 252         for (int i = 0; i < len; ++i) {
 253             Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash);
 254         }
 255     }
 256 
 257     @DontCompile
 258     public void test14_verifier(boolean warmup) {
 259         int len = Math.abs(rI) % 42;
 260         long hash = MyValue1.createDefaultDontInline().hashPrimitive();
 261         test14(len, hash);
 262     }
 263 
 264     // Test hashCode() method
 265     // @Test()
 266     // public int test15(Object v) {
 267     //     return v.hashCode();
 268     // }
 269 
 270     // @DontCompile
 271     // public void test15_verifier(boolean warmup) {
 272     //     MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
 273     //     int res = test15(v);
 274     //     Asserts.assertEQ(res, v.hashCode());
 275     // }
 276 
 277     @Test()
 278     public int test16(Object v) {
 279         return System.identityHashCode(v);
 280     }
 281 
 282     @DontCompile
 283     public void test16_verifier(boolean warmup) {
 284         MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
 285         int res = test16(v);
 286         Asserts.assertEQ(res, System.identityHashCode((Object)v));
 287     }
 288 
 289     @Test()
 290     public int test17(Object v) {
 291         return System.identityHashCode(v);
 292     }
 293 
 294     @DontCompile
 295     public void test17_verifier(boolean warmup) {
 296         Integer v = new Integer(rI);
 297         int res = test17(v);
 298         Asserts.assertEQ(res, System.identityHashCode(v));
 299     }
 300 
 301     @Test()
 302     public int test18(Object v) {
 303         return System.identityHashCode(v);
 304     }
 305 
 306     @DontCompile
 307     public void test18_verifier(boolean warmup) {
 308         Object v = null;
 309         int res = test18(v);
 310         Asserts.assertEQ(res, System.identityHashCode(v));































 311     }
 312 }


 104 
 105     public void test3_verifier(boolean warmup) {
 106         Asserts.assertTrue(test3(Object.class) == null, "test3_1 failed");
 107         Asserts.assertTrue(test3(MyValue1.class) == Object.class, "test3_2 failed");
 108         Asserts.assertTrue(test3(Class.class) == Object.class, "test3_3 failed");
 109     }
 110 
 111     // Verify that Class::getSuperclass checks with statically known classes are folded
 112     @Test(failOn = LOADK)
 113     public boolean test4() {
 114         boolean check1 = Object.class.getSuperclass() == null;
 115         boolean check2 = MyValue1.class.getSuperclass() == Object.class;
 116         boolean check3 = Class.class.getSuperclass() == Object.class;
 117         return check1 && check2 && check3;
 118     }
 119 
 120     public void test4_verifier(boolean warmup) {
 121         Asserts.assertTrue(test4(), "test4 failed");
 122     }
 123 
 124 // Disabled until 8206274 is fixed
 125 /*
 126     // Test toString() method
 127     @Test(failOn = ALLOC + STORE + LOAD)
 128     public String test5(MyValue1 v) {
 129         return v.toString();
 130     }
 131 
 132     @DontCompile
 133     public void test5_verifier(boolean warmup) {
 134         MyValue1 v = MyValue1.createDefaultInline();
 135         test5(v);
 136     }
 137 */
 138 
 139     // Test hashCode() method
 140     @Test()
 141     public int test6(MyValue1 v) {
 142         return v.hashCode();
 143     }
 144 
 145     @DontCompile
 146     public void test6_verifier(boolean warmup) {
 147         MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
 148         int res = test6(v);
 149         Asserts.assertEQ(res, v.hashCode());
 150     }
 151 
 152     // Test default value type array creation via reflection
 153     @Test()
 154     public void test7(Class<?> componentType, int len, long hash) {
 155         Object[] va = (Object[])Array.newInstance(componentType, len);
 156         for (int i = 0; i < len; ++i) {
 157             Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash);
 158         }
 159     }
 160 
 161     @DontCompile
 162     public void test7_verifier(boolean warmup) {
 163         int len = Math.abs(rI) % 42;
 164         long hash = MyValue1.createDefaultDontInline().hashPrimitive();
 165         test7(MyValue1.class, len, hash);
 166     }
 167 
 168     // Class.isInstance
 169     @Test()
 170     public boolean test8(Class c, MyValue1 vt) {


 245         }
 246     }
 247 
 248     // value type array creation via reflection
 249     @Test()
 250     public void test14(int len, long hash) {
 251         Object[] va = (Object[])Array.newInstance(MyValue1.class, len);
 252         for (int i = 0; i < len; ++i) {
 253             Asserts.assertEQ(((MyValue1)va[i]).hashPrimitive(), hash);
 254         }
 255     }
 256 
 257     @DontCompile
 258     public void test14_verifier(boolean warmup) {
 259         int len = Math.abs(rI) % 42;
 260         long hash = MyValue1.createDefaultDontInline().hashPrimitive();
 261         test14(len, hash);
 262     }
 263 
 264     // Test hashCode() method
 265     @Test()
 266     public int test15(Object v) {
 267         return v.hashCode();
 268     }
 269 
 270     @DontCompile
 271     public void test15_verifier(boolean warmup) {
 272         MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
 273         int res = test15(v);
 274         Asserts.assertEQ(res, v.hashCode());
 275     }
 276 
 277     @Test()
 278     public int test16(Object v) {
 279         return System.identityHashCode(v);
 280     }
 281 
 282     @DontCompile
 283     public void test16_verifier(boolean warmup) {
 284         MyValue1 v = MyValue1.createWithFieldsInline(rI, rL);
 285         int res = test16(v);
 286         Asserts.assertEQ(res, System.identityHashCode((Object)v));
 287     }
 288 
 289     @Test()
 290     public int test17(Object v) {
 291         return System.identityHashCode(v);
 292     }
 293 
 294     @DontCompile
 295     public void test17_verifier(boolean warmup) {
 296         Integer v = new Integer(rI);
 297         int res = test17(v);
 298         Asserts.assertEQ(res, System.identityHashCode(v));
 299     }
 300 
 301     @Test()
 302     public int test18(Object v) {
 303         return System.identityHashCode(v);
 304     }
 305 
 306     @DontCompile
 307     public void test18_verifier(boolean warmup) {
 308         Object v = null;
 309         int res = test18(v);
 310         Asserts.assertEQ(res, System.identityHashCode(v));
 311     }
 312 
 313     // hashCode() and toString() with different value types
 314     @Test()
 315     public int test19(MyValue1 vt1, MyValue1 vt2, boolean b) {
 316         MyValue1 res = b ? vt1 : vt2;
 317         return res.hashCode();
 318     }
 319 
 320     @DontCompile
 321     public void test19_verifier(boolean warmup) {
 322         MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL);
 323         int res = test19(vt, vt, true);
 324         Asserts.assertEQ(res, vt.hashCode());
 325         res = test19(vt, vt, false);
 326         Asserts.assertEQ(res, vt.hashCode());
 327     }
 328 
 329     @Test()
 330     public String test20(MyValue1 vt1, MyValue1 vt2, boolean b) {
 331         MyValue1 res = b ? vt1 : vt2;
 332         return res.toString();
 333     }
 334 
 335     @DontCompile
 336     public void test20_verifier(boolean warmup) {
 337         MyValue1 vt = MyValue1.createWithFieldsInline(rI, rL);
 338         String res = test20(vt, vt, true);
 339         Asserts.assertEQ(res, vt.toString());
 340         res = test20(vt, vt, false);
 341         Asserts.assertEQ(res, vt.toString());
 342     }
 343 }
< prev index next >