equal
deleted
inserted
replaced
48 ~MetaspaceIsMetaspaceObjTest() { |
48 ~MetaspaceIsMetaspaceObjTest() { |
49 delete _ms; |
49 delete _ms; |
50 delete _lock; |
50 delete _lock; |
51 } |
51 } |
52 |
52 |
53 void do_test(MetadataType mdType) { |
53 void do_test(Metaspace::MetadataType mdType) { |
54 _lock = new Mutex(Monitor::native, "gtest-IsMetaspaceObjTest-lock", false, Monitor::_safepoint_check_never); |
54 _lock = new Mutex(Monitor::native, "gtest-IsMetaspaceObjTest-lock", false, Monitor::_safepoint_check_never); |
55 { |
55 { |
56 MutexLocker ml(_lock, Mutex::_no_safepoint_check_flag); |
56 MutexLocker ml(_lock, Mutex::_no_safepoint_check_flag); |
57 _ms = new ClassLoaderMetaspace(_lock, StandardMetaspaceType); |
57 _ms = new ClassLoaderMetaspace(_lock, StandardMetaspaceType); |
58 } |
58 } |
66 const MetaspaceObj* p_misaligned = (MetaspaceObj*)((address)p) + 1; |
66 const MetaspaceObj* p_misaligned = (MetaspaceObj*)((address)p) + 1; |
67 ASSERT_FALSE(MetaspaceObj::is_valid(p_misaligned)); |
67 ASSERT_FALSE(MetaspaceObj::is_valid(p_misaligned)); |
68 |
68 |
69 // Test VirtualSpaceList::contains |
69 // Test VirtualSpaceList::contains |
70 const VirtualSpaceList* const vslist = |
70 const VirtualSpaceList* const vslist = |
71 (mdType == ClassType && Metaspace::using_class_space()) ? |
71 (mdType == Metaspace::ClassType && Metaspace::using_class_space()) ? |
72 VirtualSpaceList::vslist_class() : VirtualSpaceList::vslist_nonclass(); |
72 VirtualSpaceList::vslist_class() : VirtualSpaceList::vslist_nonclass(); |
73 |
73 |
74 ASSERT_TRUE(vslist->contains((MetaWord*)p)); |
74 ASSERT_TRUE(vslist->contains((MetaWord*)p)); |
75 |
75 |
76 // A misaligned pointer shall still be recognized by list::contains |
76 // A misaligned pointer shall still be recognized by list::contains |
102 |
102 |
103 }; |
103 }; |
104 |
104 |
105 TEST_VM(metaspace, is_metaspace_obj_non_class) { |
105 TEST_VM(metaspace, is_metaspace_obj_non_class) { |
106 MetaspaceIsMetaspaceObjTest test; |
106 MetaspaceIsMetaspaceObjTest test; |
107 test.do_test(NonClassType); |
107 test.do_test(Metaspace::NonClassType); |
108 } |
108 } |
109 |
109 |
110 TEST_VM(metaspace, is_metaspace_obj_class) { |
110 TEST_VM(metaspace, is_metaspace_obj_class) { |
111 MetaspaceIsMetaspaceObjTest test; |
111 MetaspaceIsMetaspaceObjTest test; |
112 test.do_test(ClassType); |
112 test.do_test(Metaspace::ClassType); |
113 } |
113 } |
114 |
114 |