equal
deleted
inserted
replaced
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 |