< prev index next >

test/hotspot/gtest/oops/test_arrayOop.cpp

Print this page

 65 TEST_VM(arrayOopDesc, long) {
 66   ASSERT_PRED1(check_max_length_overflow, T_LONG);
 67 }
 68 
 69 TEST_VM(arrayOopDesc, object) {
 70   ASSERT_PRED1(check_max_length_overflow, T_OBJECT);
 71 }
 72 
 73 TEST_VM(arrayOopDesc, array) {
 74   ASSERT_PRED1(check_max_length_overflow, T_ARRAY);
 75 }
 76 
 77 TEST_VM(arrayOopDesc, narrowOop) {
 78   ASSERT_PRED1(check_max_length_overflow, T_NARROWOOP);
 79 }
 80 // T_VOID and T_ADDRESS are not supported by max_array_length()
 81 
 82 TEST_VM(arrayOopDesc, base_offset) {
 83 #ifdef _LP64
 84   if (UseCompactObjectHeaders) {
 85     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BOOLEAN), 12);
 86     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BYTE),    12);
 87     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_SHORT),   12);
 88     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_CHAR),    12);
 89     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_INT),     12);
 90     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_FLOAT),   12);
 91     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_LONG),    16);
 92     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_DOUBLE),  16);
 93     if (UseCompressedOops) {
 94       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_OBJECT), 12);
 95       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_ARRAY),  12);
 96     } else {
 97       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_OBJECT), 16);
 98       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_ARRAY),  16);
 99     }
100   } else if (UseCompressedClassPointers) {
101     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BOOLEAN), 16);
102     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BYTE),    16);
103     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_SHORT),   16);
104     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_CHAR),    16);
105     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_INT),     16);
106     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_FLOAT),   16);
107     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_LONG),    16);
108     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_DOUBLE),  16);
109     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_OBJECT),  16);
110     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_ARRAY),   16);
111   } else {
112     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BOOLEAN), 20);
113     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BYTE),    20);
114     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_SHORT),   20);
115     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_CHAR),    20);
116     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_INT),     20);
117     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_FLOAT),   20);
118     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_LONG),    24);

 65 TEST_VM(arrayOopDesc, long) {
 66   ASSERT_PRED1(check_max_length_overflow, T_LONG);
 67 }
 68 
 69 TEST_VM(arrayOopDesc, object) {
 70   ASSERT_PRED1(check_max_length_overflow, T_OBJECT);
 71 }
 72 
 73 TEST_VM(arrayOopDesc, array) {
 74   ASSERT_PRED1(check_max_length_overflow, T_ARRAY);
 75 }
 76 
 77 TEST_VM(arrayOopDesc, narrowOop) {
 78   ASSERT_PRED1(check_max_length_overflow, T_NARROWOOP);
 79 }
 80 // T_VOID and T_ADDRESS are not supported by max_array_length()
 81 
 82 TEST_VM(arrayOopDesc, base_offset) {
 83 #ifdef _LP64
 84   if (UseCompactObjectHeaders) {
 85     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BOOLEAN), 8);
 86     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BYTE),    8);
 87     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_SHORT),   8);
 88     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_CHAR),    8);
 89     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_INT),     8);
 90     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_FLOAT),   8);
 91     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_LONG),    8);
 92     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_DOUBLE),  8);
 93     if (UseCompressedOops) {
 94       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_OBJECT), 8);
 95       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_ARRAY),  8);
 96     } else {
 97       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_OBJECT), 8);
 98       EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_ARRAY),  8);
 99     }
100   } else if (UseCompressedClassPointers) {
101     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BOOLEAN), 16);
102     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BYTE),    16);
103     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_SHORT),   16);
104     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_CHAR),    16);
105     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_INT),     16);
106     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_FLOAT),   16);
107     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_LONG),    16);
108     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_DOUBLE),  16);
109     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_OBJECT),  16);
110     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_ARRAY),   16);
111   } else {
112     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BOOLEAN), 20);
113     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_BYTE),    20);
114     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_SHORT),   20);
115     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_CHAR),    20);
116     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_INT),     20);
117     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_FLOAT),   20);
118     EXPECT_EQ(arrayOopDesc::base_offset_in_bytes(T_LONG),    24);
< prev index next >