< prev index next >
test/hotspot/gtest/memory/test_chunkManager.cpp
Print this page
rev 50068 : [mq]: metaspace-split
*** 20,40 ****
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
#include "precompiled.hpp"
// The test function is only available in debug builds
#ifdef ASSERT
#include "unittest.hpp"
! void ChunkManager_test_list_index();
TEST(ChunkManager, list_index) {
! // The ChunkManager is only available in metaspace.cpp,
! // so the test code is located in that file.
! ChunkManager_test_list_index();
}
#endif // ASSERT
--- 20,69 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
#include "precompiled.hpp"
+ #include "memory/metaspace/chunkManager.hpp"
+ #include "memory/metaspace/metaspaceCommon.hpp"
// The test function is only available in debug builds
#ifdef ASSERT
#include "unittest.hpp"
! using namespace metaspace::internals;
TEST(ChunkManager, list_index) {
!
! // Test previous bug where a query for a humongous class metachunk,
! // incorrectly matched the non-class medium metachunk size.
! {
! ChunkManager manager(true);
!
! ASSERT_TRUE(MediumChunk > ClassMediumChunk) << "Precondition for test";
!
! ChunkIndex index = manager.list_index(MediumChunk);
!
! ASSERT_TRUE(index == HumongousIndex) <<
! "Requested size is larger than ClassMediumChunk,"
! " so should return HumongousIndex. Got index: " << index;
! }
!
! // Check the specified sizes as well.
! {
! ChunkManager manager(true);
! ASSERT_TRUE(manager.list_index(ClassSpecializedChunk) == SpecializedIndex);
! ASSERT_TRUE(manager.list_index(ClassSmallChunk) == SmallIndex);
! ASSERT_TRUE(manager.list_index(ClassMediumChunk) == MediumIndex);
! ASSERT_TRUE(manager.list_index(ClassMediumChunk + ClassSpecializedChunk) == HumongousIndex);
! }
! {
! ChunkManager manager(false);
! ASSERT_TRUE(manager.list_index(SpecializedChunk) == SpecializedIndex);
! ASSERT_TRUE(manager.list_index(SmallChunk) == SmallIndex);
! ASSERT_TRUE(manager.list_index(MediumChunk) == MediumIndex);
! ASSERT_TRUE(manager.list_index(MediumChunk + SpecializedChunk) == HumongousIndex);
! }
}
#endif // ASSERT
< prev index next >