summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/test/time_controller/simulated_time_controller_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--third_party/libwebrtc/test/time_controller/simulated_time_controller_unittest.cc38
1 files changed, 20 insertions, 18 deletions
diff --git a/third_party/libwebrtc/test/time_controller/simulated_time_controller_unittest.cc b/third_party/libwebrtc/test/time_controller/simulated_time_controller_unittest.cc
index f223ffe85d..c1c0ac2c0e 100644
--- a/third_party/libwebrtc/test/time_controller/simulated_time_controller_unittest.cc
+++ b/third_party/libwebrtc/test/time_controller/simulated_time_controller_unittest.cc
@@ -13,9 +13,9 @@
#include <atomic>
#include <memory>
+#include "api/task_queue/task_queue_base.h"
#include "api/units/time_delta.h"
#include "rtc_base/event.h"
-#include "rtc_base/task_queue.h"
#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "test/gmock.h"
@@ -39,11 +39,11 @@ TEST(SimulatedTimeControllerTest, TaskIsStoppedOnStop) {
const int kShortIntervalCount = 4;
const int kMargin = 1;
GlobalSimulatedTimeController time_simulation(kStartTime);
- rtc::TaskQueue task_queue(
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> task_queue =
time_simulation.GetTaskQueueFactory()->CreateTaskQueue(
- "TestQueue", TaskQueueFactory::Priority::NORMAL));
+ "TestQueue", TaskQueueFactory::Priority::NORMAL);
std::atomic_int counter(0);
- auto handle = RepeatingTaskHandle::Start(task_queue.Get(), [&] {
+ auto handle = RepeatingTaskHandle::Start(task_queue.get(), [&] {
if (++counter >= kShortIntervalCount)
return kLongInterval;
return kShortInterval;
@@ -52,7 +52,7 @@ TEST(SimulatedTimeControllerTest, TaskIsStoppedOnStop) {
time_simulation.AdvanceTime(kShortInterval * (kShortIntervalCount + kMargin));
EXPECT_EQ(counter.load(), kShortIntervalCount);
- task_queue.PostTask(
+ task_queue->PostTask(
[handle = std::move(handle)]() mutable { handle.Stop(); });
// Sleep long enough that the task would run at least once more if not
@@ -64,13 +64,13 @@ TEST(SimulatedTimeControllerTest, TaskIsStoppedOnStop) {
TEST(SimulatedTimeControllerTest, TaskCanStopItself) {
std::atomic_int counter(0);
GlobalSimulatedTimeController time_simulation(kStartTime);
- rtc::TaskQueue task_queue(
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> task_queue =
time_simulation.GetTaskQueueFactory()->CreateTaskQueue(
- "TestQueue", TaskQueueFactory::Priority::NORMAL));
+ "TestQueue", TaskQueueFactory::Priority::NORMAL);
RepeatingTaskHandle handle;
- task_queue.PostTask([&] {
- handle = RepeatingTaskHandle::Start(task_queue.Get(), [&] {
+ task_queue->PostTask([&] {
+ handle = RepeatingTaskHandle::Start(task_queue.get(), [&] {
++counter;
handle.Stop();
return TimeDelta::Millis(2);
@@ -86,29 +86,29 @@ TEST(SimulatedTimeControllerTest, Example) {
void DoPeriodicTask() {}
TimeDelta TimeUntilNextRun() { return TimeDelta::Millis(100); }
void StartPeriodicTask(RepeatingTaskHandle* handle,
- rtc::TaskQueue* task_queue) {
- *handle = RepeatingTaskHandle::Start(task_queue->Get(), [this] {
+ TaskQueueBase* task_queue) {
+ *handle = RepeatingTaskHandle::Start(task_queue, [this] {
DoPeriodicTask();
return TimeUntilNextRun();
});
}
};
GlobalSimulatedTimeController time_simulation(kStartTime);
- rtc::TaskQueue task_queue(
+ std::unique_ptr<TaskQueueBase, TaskQueueDeleter> task_queue =
time_simulation.GetTaskQueueFactory()->CreateTaskQueue(
- "TestQueue", TaskQueueFactory::Priority::NORMAL));
+ "TestQueue", TaskQueueFactory::Priority::NORMAL);
auto object = std::make_unique<ObjectOnTaskQueue>();
// Create and start the periodic task.
RepeatingTaskHandle handle;
- object->StartPeriodicTask(&handle, &task_queue);
+ object->StartPeriodicTask(&handle, task_queue.get());
// Restart the task
- task_queue.PostTask(
+ task_queue->PostTask(
[handle = std::move(handle)]() mutable { handle.Stop(); });
- object->StartPeriodicTask(&handle, &task_queue);
- task_queue.PostTask(
+ object->StartPeriodicTask(&handle, task_queue.get());
+ task_queue->PostTask(
[handle = std::move(handle)]() mutable { handle.Stop(); });
- task_queue.PostTask([object = std::move(object)] {});
+ task_queue->PostTask([object = std::move(object)] {});
}
TEST(SimulatedTimeControllerTest, DelayTaskRunOnTime) {
@@ -159,6 +159,8 @@ TEST(SimulatedTimeControllerTest, SkipsDelayedTaskForward) {
}));
main_thread->PostDelayedTask(fun.AsStdFunction(), shorter_duration);
sim.SkipForwardBy(duration_during_which_nothing_runs);
+ // Run tasks that were pending during the skip.
+ sim.AdvanceTime(TimeDelta::Zero());
}
} // namespace webrtc