< prev index next >

test/native/memory/test_metachunk.cpp

Print this page




  47   Metachunk* metachunk = ::new (memory) Metachunk(size / BytesPerWord, NULL);
  48 
  49   EXPECT_EQ((MetaWord*) metachunk, metachunk->bottom());
  50   EXPECT_EQ((uintptr_t*) metachunk + metachunk->size(), metachunk->end());
  51 
  52   // Check sizes
  53   EXPECT_EQ(metachunk->size(), metachunk->word_size());
  54   EXPECT_EQ(pointer_delta(metachunk->end(), metachunk->bottom(),
  55                 sizeof (MetaWord*)),
  56             metachunk->word_size());
  57 
  58   // Check usage
  59   EXPECT_EQ(metachunk->used_word_size(), metachunk->overhead());
  60   EXPECT_EQ(metachunk->word_size() - metachunk->used_word_size(),
  61             metachunk->free_word_size());
  62   EXPECT_EQ(MetachunkTest::top(metachunk), MetachunkTest::initial_top(metachunk));
  63   EXPECT_TRUE(metachunk->is_empty());
  64 
  65   // Allocate
  66   size_t alloc_size = 64; // Words
  67   EXPECT_TRUE(is_size_aligned(alloc_size, Metachunk::object_alignment()));
  68 
  69   MetaWord* mem = metachunk->allocate(alloc_size);
  70 
  71   // Check post alloc
  72   EXPECT_EQ(MetachunkTest::initial_top(metachunk), mem);
  73   EXPECT_EQ(MetachunkTest::top(metachunk), mem + alloc_size);
  74   EXPECT_EQ(metachunk->overhead() + alloc_size, metachunk->used_word_size());
  75   EXPECT_EQ(metachunk->word_size() - metachunk->used_word_size(),
  76             metachunk->free_word_size());
  77   EXPECT_FALSE(metachunk->is_empty());
  78 
  79   // Clear chunk
  80   metachunk->reset_empty();
  81 
  82   // Check post clear
  83   EXPECT_EQ(metachunk->used_word_size(), metachunk->overhead());
  84   EXPECT_EQ(metachunk->word_size() - metachunk->used_word_size(),
  85             metachunk->free_word_size());
  86   EXPECT_EQ(MetachunkTest::top(metachunk), MetachunkTest::initial_top(metachunk));
  87   EXPECT_TRUE(metachunk->is_empty());


  47   Metachunk* metachunk = ::new (memory) Metachunk(size / BytesPerWord, NULL);
  48 
  49   EXPECT_EQ((MetaWord*) metachunk, metachunk->bottom());
  50   EXPECT_EQ((uintptr_t*) metachunk + metachunk->size(), metachunk->end());
  51 
  52   // Check sizes
  53   EXPECT_EQ(metachunk->size(), metachunk->word_size());
  54   EXPECT_EQ(pointer_delta(metachunk->end(), metachunk->bottom(),
  55                 sizeof (MetaWord*)),
  56             metachunk->word_size());
  57 
  58   // Check usage
  59   EXPECT_EQ(metachunk->used_word_size(), metachunk->overhead());
  60   EXPECT_EQ(metachunk->word_size() - metachunk->used_word_size(),
  61             metachunk->free_word_size());
  62   EXPECT_EQ(MetachunkTest::top(metachunk), MetachunkTest::initial_top(metachunk));
  63   EXPECT_TRUE(metachunk->is_empty());
  64 
  65   // Allocate
  66   size_t alloc_size = 64; // Words
  67   EXPECT_TRUE(is_aligned(alloc_size, Metachunk::object_alignment()));
  68 
  69   MetaWord* mem = metachunk->allocate(alloc_size);
  70 
  71   // Check post alloc
  72   EXPECT_EQ(MetachunkTest::initial_top(metachunk), mem);
  73   EXPECT_EQ(MetachunkTest::top(metachunk), mem + alloc_size);
  74   EXPECT_EQ(metachunk->overhead() + alloc_size, metachunk->used_word_size());
  75   EXPECT_EQ(metachunk->word_size() - metachunk->used_word_size(),
  76             metachunk->free_word_size());
  77   EXPECT_FALSE(metachunk->is_empty());
  78 
  79   // Clear chunk
  80   metachunk->reset_empty();
  81 
  82   // Check post clear
  83   EXPECT_EQ(metachunk->used_word_size(), metachunk->overhead());
  84   EXPECT_EQ(metachunk->word_size() - metachunk->used_word_size(),
  85             metachunk->free_word_size());
  86   EXPECT_EQ(MetachunkTest::top(metachunk), MetachunkTest::initial_top(metachunk));
  87   EXPECT_TRUE(metachunk->is_empty());
< prev index next >