// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_TASK_SEQUENCE_MANAGER_TEST_MOCK_TIME_MESSAGE_PUMP_H_ #define BASE_TASK_SEQUENCE_MANAGER_TEST_MOCK_TIME_MESSAGE_PUMP_H_ #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/message_loop/message_pump.h" #include "base/synchronization/waitable_event.h" #include "base/time/time.h" namespace base { class SimpleTestTickClock; namespace sequence_manager { // MessagePump implementation that uses a SimpleTestTickClock to keep track of // time and will advance it as needed to keep running tasks. // // This pump will actually check fail if it ever has to go to sleep as this // would indicate that the unit test might block indefinitely. // TODO(carlscab): In the future we could consider sleeping if there is no // outstanding |delayed_work_time_|, because we could be woken up by concurrent // ScheduleWork() calls. class MockTimeMessagePump : public MessagePump { … }; } // namespace sequence_manager } // namespace base #endif // BASE_TASK_SEQUENCE_MANAGER_TEST_MOCK_TIME_MESSAGE_PUMP_H_