1 // Copyright 2021 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/power_monitor/timer_sampling_event_source.h" 6 7 #include "base/test/bind.h" 8 #include "base/test/task_environment.h" 9 #include "testing/gtest/include/gtest/gtest.h" 10 11 namespace base { 12 TEST(TimerSamplingEventSourceTest,Basic)13TEST(TimerSamplingEventSourceTest, Basic) { 14 constexpr TimeDelta kDelay = Seconds(1); 15 int num_callbacks = 0; 16 test::SingleThreadTaskEnvironment task_environment( 17 test::TaskEnvironment::TimeSource::MOCK_TIME); 18 19 TimerSamplingEventSource source(kDelay); 20 EXPECT_TRUE(source.Start(BindLambdaForTesting([&]() { ++num_callbacks; }))); 21 EXPECT_EQ(0, num_callbacks); 22 task_environment.FastForwardBy(kDelay / 2); 23 EXPECT_EQ(0, num_callbacks); 24 task_environment.FastForwardBy(kDelay / 2); 25 EXPECT_EQ(1, num_callbacks); 26 task_environment.FastForwardBy(kDelay * 10); 27 EXPECT_EQ(11, num_callbacks); 28 } 29 30 } // namespace base 31