| Index: cc/test/ordered_simple_task_runner_unittest.cc
|
| diff --git a/cc/test/ordered_simple_task_runner_unittest.cc b/cc/test/ordered_simple_task_runner_unittest.cc
|
| index 3fbfd3b73ccff069f1ac7b58bf259254ec6a56e6..8412c25878ffa729d6b517ee5d50e4b13a6d90f7 100644
|
| --- a/cc/test/ordered_simple_task_runner_unittest.cc
|
| +++ b/cc/test/ordered_simple_task_runner_unittest.cc
|
| @@ -5,12 +5,18 @@
|
| #include <string>
|
|
|
| #include "base/cancelable_callback.h"
|
| +#include "base/format_macros.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "base/test/test_pending_task.h"
|
| #include "cc/test/ordered_simple_task_runner.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| +#define RUN_AND_CHECK_RESULT(expected_result) \
|
| + task_runner_->RunPendingTasks(); \
|
| + EXPECT_EQ(expected_result, executed_tasks_); \
|
| + executed_tasks_ = "";
|
| +
|
| namespace cc {
|
|
|
| class OrderedSimpleTaskRunnerTest : public testing::Test {
|
| @@ -21,6 +27,9 @@ class OrderedSimpleTaskRunnerTest : public testing::Test {
|
| virtual ~OrderedSimpleTaskRunnerTest() {}
|
|
|
| protected:
|
| + std::string executed_tasks_;
|
| + scoped_refptr<OrderedSimpleTaskRunner> task_runner_;
|
| +
|
| void CreateAndPostTask(int task_num, base::TimeDelta delay) {
|
| base::Closure test_task = base::Bind(&OrderedSimpleTaskRunnerTest::Task,
|
| base::Unretained(this),
|
| @@ -28,19 +37,15 @@ class OrderedSimpleTaskRunnerTest : public testing::Test {
|
| task_runner_->PostDelayedTask(FROM_HERE, test_task, delay);
|
| }
|
|
|
| - void RunAndCheckResult(const std::string expected_result) {
|
| - task_runner_->RunPendingTasks();
|
| - EXPECT_EQ(expected_result, executed_tasks_);
|
| - }
|
| -
|
| private:
|
| - std::string executed_tasks_;
|
| - scoped_refptr<OrderedSimpleTaskRunner> task_runner_;
|
| -
|
| void Task(int task_num) {
|
| if (!executed_tasks_.empty())
|
| executed_tasks_ += " ";
|
| - executed_tasks_ += base::StringPrintf("%d", task_num);
|
| + executed_tasks_ +=
|
| + base::StringPrintf("%d(%" PRId64 "ms)",
|
| + task_num,
|
| + task_runner_->Now().ToInternalValue() /
|
| + base::Time::kMicrosecondsPerMillisecond);
|
| }
|
|
|
| DISALLOW_COPY_AND_ASSIGN(OrderedSimpleTaskRunnerTest);
|
| @@ -51,16 +56,33 @@ TEST_F(OrderedSimpleTaskRunnerTest, BasicOrderingTest) {
|
| CreateAndPostTask(2, base::TimeDelta());
|
| CreateAndPostTask(3, base::TimeDelta());
|
|
|
| - RunAndCheckResult("1 2 3");
|
| + RUN_AND_CHECK_RESULT("1(0ms) 2(0ms) 3(0ms)");
|
| + RUN_AND_CHECK_RESULT("");
|
| +}
|
| +
|
| +TEST_F(OrderedSimpleTaskRunnerTest, OrderingTestWithDelayedTasksAutoNow) {
|
| + task_runner_->SetAdvanceNow(true);
|
| + CreateAndPostTask(1, base::TimeDelta());
|
| + CreateAndPostTask(2, base::TimeDelta::FromMilliseconds(15));
|
| + CreateAndPostTask(3, base::TimeDelta());
|
| + CreateAndPostTask(4, base::TimeDelta::FromMilliseconds(8));
|
| +
|
| + RUN_AND_CHECK_RESULT("1(0ms) 3(0ms) 4(8ms) 2(15ms)");
|
| + RUN_AND_CHECK_RESULT("");
|
| }
|
|
|
| -TEST_F(OrderedSimpleTaskRunnerTest, OrderingTestWithDelayedTasks) {
|
| +TEST_F(OrderedSimpleTaskRunnerTest, OrderingTestWithDelayedTasksManualNow) {
|
| + task_runner_->SetAdvanceNow(false);
|
| CreateAndPostTask(1, base::TimeDelta());
|
| CreateAndPostTask(2, base::TimeDelta::FromMilliseconds(15));
|
| CreateAndPostTask(3, base::TimeDelta());
|
| CreateAndPostTask(4, base::TimeDelta::FromMilliseconds(8));
|
|
|
| - RunAndCheckResult("1 3 4 2");
|
| + RUN_AND_CHECK_RESULT("1(0ms) 3(0ms)");
|
| + RUN_AND_CHECK_RESULT("");
|
| + task_runner_->SetNow(base::TimeTicks::FromInternalValue(25000));
|
| + RUN_AND_CHECK_RESULT("4(25ms) 2(25ms)");
|
| + RUN_AND_CHECK_RESULT("");
|
| }
|
|
|
| } // namespace cc
|
|
|