Index: components/memory_pressure/filtered_memory_pressure_calculator_unittest.cc |
diff --git a/components/memory_pressure/filtered_memory_pressure_calculator_unittest.cc b/components/memory_pressure/filtered_memory_pressure_calculator_unittest.cc |
index 81b772376e7de6d4531485a60619b51ae25fb440..cb49c27054bf2ada530531eef4e7cf9a77d5a52b 100644 |
--- a/components/memory_pressure/filtered_memory_pressure_calculator_unittest.cc |
+++ b/components/memory_pressure/filtered_memory_pressure_calculator_unittest.cc |
@@ -15,282 +15,267 @@ namespace memory_pressure { |
class FilteredMemoryPressureCalculatorTest : public testing::Test { |
public: |
FilteredMemoryPressureCalculatorTest() |
- : calculator_(nullptr), tick_clock_(nullptr) {} |
- |
- void SetUp() override { |
- // Ownership of the calculator and tick clock are both passed to the filter. |
- calculator_ = new TestMemoryPressureCalculator(); |
- tick_clock_ = new base::SimpleTestTickClock(); |
- filter_.reset(new FilteredMemoryPressureCalculator( |
- scoped_ptr<MemoryPressureCalculator>(calculator_))); |
- filter_->set_tick_clock(scoped_ptr<base::TickClock>(tick_clock_)); |
- } |
- |
- void TearDown() override { |
- calculator_ = nullptr; |
- tick_clock_ = nullptr; |
- filter_.reset(); |
- } |
+ : filter_(&calculator_, &tick_clock_) {} |
// Advances the tick clock by the given number of milliseconds. |
void Tick(int ms) { |
- tick_clock_->Advance(base::TimeDelta::FromMilliseconds(ms)); |
+ tick_clock_.Advance(base::TimeDelta::FromMilliseconds(ms)); |
} |
- // Delegates that are inject into the filter under test. |
- TestMemoryPressureCalculator* calculator_; |
- base::SimpleTestTickClock* tick_clock_; |
+ // Delegates that are injected into the object under test. |
+ TestMemoryPressureCalculator calculator_; |
+ base::SimpleTestTickClock tick_clock_; |
// The object under test. |
- scoped_ptr<FilteredMemoryPressureCalculator> filter_; |
+ FilteredMemoryPressureCalculator filter_; |
private: |
DISALLOW_COPY_AND_ASSIGN(FilteredMemoryPressureCalculatorTest); |
}; |
TEST_F(FilteredMemoryPressureCalculatorTest, FirstCallInvokesCalculator) { |
- calculator_->SetCritical(); |
+ calculator_.SetCritical(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
TEST_F(FilteredMemoryPressureCalculatorTest, CalculatorNotAlwaysInvoked) { |
- calculator_->SetModerate(); |
+ calculator_.SetModerate(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// Change the pressure reported by the caculator, but don't expect the filter |
// to report the critical value until a minimum sampling period has passed. |
// The level has to be increasing so that hysteresis doesn't come into play. |
- calculator_->SetCritical(); |
+ calculator_.SetCritical(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs / 2); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// A sufficient time has passed so now it should report the new level. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(2, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(2, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
TEST_F(FilteredMemoryPressureCalculatorTest, CooldownCriticalToModerate) { |
- calculator_->SetCritical(); |
+ calculator_.SetCritical(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// Initiate a cooldown period by jumping sufficiently far ahead for another |
// sample. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetModerate(); |
+ calculator_.SetModerate(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(2, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
- EXPECT_EQ(tick_clock_->NowTicks(), filter_->cooldown_start_time()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(2, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
+ EXPECT_EQ(tick_clock_.NowTicks(), filter_.cooldown_start_time()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step another sample interval and it should still not have changed. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(3, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(3, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step the cooldown period and it should change state. |
Tick(FilteredMemoryPressureCalculator::kCriticalPressureCooldownPeriodMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(4, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(4, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
TEST_F(FilteredMemoryPressureCalculatorTest, |
CooldownCriticalToModerateViaNone) { |
- calculator_->SetCritical(); |
+ calculator_.SetCritical(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// Initiate a cooldown period by jumping sufficiently far ahead for another |
// sample. First go directly to no memory pressure before passing back through |
// moderate. The final result should be a moderate memory pressure. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetNone(); |
+ calculator_.SetNone(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(2, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
- EXPECT_EQ(tick_clock_->NowTicks(), filter_->cooldown_start_time()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(2, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
+ EXPECT_EQ(tick_clock_.NowTicks(), filter_.cooldown_start_time()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step another sample interval and it should still not have changed. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetModerate(); |
+ calculator_.SetModerate(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(3, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(3, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step the cooldown period and it should change state. |
Tick(FilteredMemoryPressureCalculator::kCriticalPressureCooldownPeriodMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(4, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(4, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
TEST_F(FilteredMemoryPressureCalculatorTest, CooldownCriticalToNone) { |
- calculator_->SetCritical(); |
+ calculator_.SetCritical(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// Initiate a cooldown period by jumping sufficiently far ahead for another |
// sample. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetNone(); |
+ calculator_.SetNone(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(2, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
- EXPECT_EQ(tick_clock_->NowTicks(), filter_->cooldown_start_time()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(2, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
+ EXPECT_EQ(tick_clock_.NowTicks(), filter_.cooldown_start_time()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step another sample interval and it should still not have changed. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(3, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(3, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step the cooldown period and it should change state. |
Tick(FilteredMemoryPressureCalculator::kCriticalPressureCooldownPeriodMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(4, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(4, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
TEST_F(FilteredMemoryPressureCalculatorTest, CooldownModerateToNone) { |
- calculator_->SetModerate(); |
+ calculator_.SetModerate(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// Initiate a cooldown period by jumping sufficiently far ahead for another |
// sample. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetNone(); |
+ calculator_.SetNone(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(2, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
- EXPECT_EQ(tick_clock_->NowTicks(), filter_->cooldown_start_time()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(2, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
+ EXPECT_EQ(tick_clock_.NowTicks(), filter_.cooldown_start_time()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step another sample interval and it should still not have changed. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(3, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(3, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step the cooldown period and it should change state. |
Tick(FilteredMemoryPressureCalculator::kModeratePressureCooldownPeriodMs); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(4, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(4, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
TEST_F(FilteredMemoryPressureCalculatorTest, InterruptedCooldownModerate) { |
- calculator_->SetModerate(); |
+ calculator_.SetModerate(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// Initiate a cooldown period by jumping sufficiently far ahead for another |
// sample. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetNone(); |
+ calculator_.SetNone(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(2, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
- EXPECT_EQ(tick_clock_->NowTicks(), filter_->cooldown_start_time()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(2, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
+ EXPECT_EQ(tick_clock_.NowTicks(), filter_.cooldown_start_time()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step another sample interval and it should still not have changed. Since |
// the pressure level has increased back to moderate it should also end the |
// cooldown period. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetModerate(); |
+ calculator_.SetModerate(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(3, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(3, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
TEST_F(FilteredMemoryPressureCalculatorTest, InterruptedCooldownCritical) { |
- calculator_->SetModerate(); |
+ calculator_.SetModerate(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(1, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(1, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
// Initiate a cooldown period by jumping sufficiently far ahead for another |
// sample. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetNone(); |
+ calculator_.SetNone(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(2, calculator_->calls()); |
- EXPECT_TRUE(filter_->cooldown_in_progress()); |
- EXPECT_EQ(tick_clock_->NowTicks(), filter_->cooldown_start_time()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(2, calculator_.calls()); |
+ EXPECT_TRUE(filter_.cooldown_in_progress()); |
+ EXPECT_EQ(tick_clock_.NowTicks(), filter_.cooldown_start_time()); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE, |
- filter_->cooldown_high_tide()); |
+ filter_.cooldown_high_tide()); |
// Step another sample interval and it should still not have changed. Since |
// the pressure level has increased to critical it ends the cooldown period |
// and immediately reports the critical memory pressure. |
Tick(FilteredMemoryPressureCalculator::kMinimumTimeBetweenSamplesMs); |
- calculator_->SetCritical(); |
+ calculator_.SetCritical(); |
EXPECT_EQ(MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL, |
- filter_->CalculateCurrentPressureLevel()); |
- EXPECT_EQ(3, calculator_->calls()); |
- EXPECT_FALSE(filter_->cooldown_in_progress()); |
+ filter_.CalculateCurrentPressureLevel()); |
+ EXPECT_EQ(3, calculator_.calls()); |
+ EXPECT_FALSE(filter_.cooldown_in_progress()); |
} |
#endif // defined(MEMORY_PRESSURE_IS_POLLING) |