Chromium Code Reviews| Index: test/cctest/test-heap.cc |
| diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc |
| index a37da264d498e1ef438e36f1c98ce36da109cb2a..e4ae264ed2d8ce913121d969112c4cc069e00f87 100644 |
| --- a/test/cctest/test-heap.cc |
| +++ b/test/cctest/test-heap.cc |
| @@ -1784,6 +1784,39 @@ TEST(TestSizeOfObjects) { |
| } |
|
Hannes Payer (out of office)
2015/05/26 09:22:29
It would be nice to have test for all the aligned
|
| +TEST(TestAlignmentCalculations) { |
| + // Maximum fill amounts should be consistent. |
| + int maximum_double_misalignment = kDoubleSize - kPointerSize; |
| + int max_word_fill = Heap::GetMaximumFillToAlign(kWordAligned); |
| + CHECK_EQ(0, max_word_fill); |
| + int max_double_fill = Heap::GetMaximumFillToAlign(kDoubleAligned); |
| + CHECK_EQ(maximum_double_misalignment, max_double_fill); |
| + int max_double_unaligned_fill = Heap::GetMaximumFillToAlign(kDoubleUnaligned); |
| + CHECK_EQ(maximum_double_misalignment, max_double_unaligned_fill); |
| + |
| + Address base = reinterpret_cast<Address>(NULL); |
| + int fill = 0; |
| + |
| + // Word alignment never requires fill. |
| + fill = Heap::GetFillToAlign(base, kWordAligned); |
| + CHECK_EQ(0, fill); |
| + fill = Heap::GetFillToAlign(base + kPointerSize, kWordAligned); |
| + CHECK_EQ(0, fill); |
| + |
| + // No fill is required when address is double aligned. |
| + fill = Heap::GetFillToAlign(base, kDoubleAligned); |
| + CHECK_EQ(0, fill); |
| + // Fill is required if address is not double aligned. |
| + fill = Heap::GetFillToAlign(base + kPointerSize, kDoubleAligned); |
| + CHECK_EQ(maximum_double_misalignment, fill); |
| + // kDoubleUnaligned has the opposite fill amounts. |
| + fill = Heap::GetFillToAlign(base, kDoubleUnaligned); |
| + CHECK_EQ(maximum_double_misalignment, fill); |
| + fill = Heap::GetFillToAlign(base + kPointerSize, kDoubleUnaligned); |
| + CHECK_EQ(0, fill); |
| +} |
| + |
| + |
| TEST(TestSizeOfObjectsVsHeapIteratorPrecision) { |
| CcTest::InitializeVM(); |
| HeapIterator iterator(CcTest::heap()); |