test/hotspot/gtest/metaspace/test_is_metaspace_obj.cpp
branchstuefe-new-metaspace-branch
changeset 59272 54750b448264
parent 58063 bdf136b8ae0e
equal deleted inserted replaced
59271:1558266946de 59272:54750b448264
    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