test/hotspot/gtest/memory/test_metachunk.cpp
changeset 49365 825f006619e5
parent 47216 71c04702a3d5
child 50193 49c3e91c424f
equal deleted inserted replaced
49347:edb65305d3ac 49365:825f006619e5
    39   }
    39   }
    40 
    40 
    41 };
    41 };
    42 
    42 
    43 TEST(Metachunk, basic) {
    43 TEST(Metachunk, basic) {
    44   size_t size = 2 * 1024 * 1024;
    44   const ChunkIndex chunk_type = MediumIndex;
    45   void* memory = malloc(size);
    45   const bool is_class = false;
       
    46   const size_t word_size = get_size_for_nonhumongous_chunktype(chunk_type, is_class);
       
    47   // Allocate the chunk with correct alignment.
       
    48   void* memory = malloc(word_size * BytesPerWord * 2);
    46   ASSERT_TRUE(NULL != memory) << "Failed to malloc 2MB";
    49   ASSERT_TRUE(NULL != memory) << "Failed to malloc 2MB";
    47 
    50 
    48   Metachunk* metachunk = ::new (memory) Metachunk(size / BytesPerWord, NULL);
    51   void* p_placement = align_up(memory, word_size * BytesPerWord);
       
    52 
       
    53   Metachunk* metachunk = ::new (p_placement) Metachunk(chunk_type, is_class, word_size, NULL);
    49 
    54 
    50   EXPECT_EQ((MetaWord*) metachunk, metachunk->bottom());
    55   EXPECT_EQ((MetaWord*) metachunk, metachunk->bottom());
    51   EXPECT_EQ((uintptr_t*) metachunk + metachunk->size(), metachunk->end());
    56   EXPECT_EQ((uintptr_t*) metachunk + metachunk->size(), metachunk->end());
    52 
    57 
    53   // Check sizes
    58   // Check sizes