| Index: third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc b/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc
|
| index 0c146546351646bf8b70fcf512c3ace02184efc5..dc50950bdb37f0948cca5aad0dee731fd4632784 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/child/webthread_impl_for_worker_scheduler_unittest.cc
|
| @@ -22,17 +22,8 @@ namespace blink {
|
| namespace scheduler {
|
| namespace {
|
|
|
| -class NopTask : public blink::WebTaskRunner::Task {
|
| +class MockTask {
|
| public:
|
| - ~NopTask() override {}
|
| -
|
| - void run() override {}
|
| -};
|
| -
|
| -class MockTask : public blink::WebTaskRunner::Task {
|
| - public:
|
| - ~MockTask() override {}
|
| -
|
| MOCK_METHOD0(run, void());
|
| };
|
|
|
| @@ -57,17 +48,9 @@ class TestObserver : public blink::WebThread::TaskObserver {
|
| std::string* calls_; // NOT OWNED
|
| };
|
|
|
| -class TestTask : public blink::WebTaskRunner::Task {
|
| - public:
|
| - explicit TestTask(std::string* calls) : calls_(calls) {}
|
| -
|
| - ~TestTask() override {}
|
| -
|
| - void run() override { calls_->append(" run"); }
|
| -
|
| - private:
|
| - std::string* calls_; // NOT OWNED
|
| -};
|
| +void runTestTask(std::string* calls) {
|
| + calls->append(" run");
|
| +}
|
|
|
| void addTaskObserver(WebThreadImplForWorkerScheduler* thread,
|
| TestObserver* observer) {
|
| @@ -123,33 +106,35 @@ class WebThreadImplForWorkerSchedulerTest : public testing::Test {
|
| };
|
|
|
| TEST_F(WebThreadImplForWorkerSchedulerTest, TestDefaultTask) {
|
| - std::unique_ptr<MockTask> task(new MockTask());
|
| + MockTask task;
|
| base::WaitableEvent completion(
|
| base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| base::WaitableEvent::InitialState::NOT_SIGNALED);
|
|
|
| - EXPECT_CALL(*task, run());
|
| - ON_CALL(*task, run())
|
| - .WillByDefault(Invoke([&completion]() { completion.Signal(); }));
|
| + EXPECT_CALL(task, run());
|
| + ON_CALL(task, run()).WillByDefault(Invoke([&completion]() {
|
| + completion.Signal();
|
| + }));
|
|
|
| - thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(),
|
| - task.release());
|
| + thread_->getWebTaskRunner()->postTask(
|
| + BLINK_FROM_HERE, WTF::bind(&MockTask::run, WTF::unretained(&task)));
|
| completion.Wait();
|
| }
|
|
|
| TEST_F(WebThreadImplForWorkerSchedulerTest,
|
| TestTaskExecutedBeforeThreadDeletion) {
|
| - std::unique_ptr<MockTask> task(new MockTask());
|
| + MockTask task;
|
| base::WaitableEvent completion(
|
| base::WaitableEvent::ResetPolicy::AUTOMATIC,
|
| base::WaitableEvent::InitialState::NOT_SIGNALED);
|
|
|
| - EXPECT_CALL(*task, run());
|
| - ON_CALL(*task, run())
|
| - .WillByDefault(Invoke([&completion]() { completion.Signal(); }));
|
| + EXPECT_CALL(task, run());
|
| + ON_CALL(task, run()).WillByDefault(Invoke([&completion]() {
|
| + completion.Signal();
|
| + }));
|
|
|
| - thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(),
|
| - task.release());
|
| + thread_->getWebTaskRunner()->postTask(
|
| + BLINK_FROM_HERE, WTF::bind(&MockTask::run, WTF::unretained(&task)));
|
| thread_.reset();
|
| }
|
|
|
| @@ -163,10 +148,10 @@ TEST_F(WebThreadImplForWorkerSchedulerTest, TestIdleTask) {
|
| ON_CALL(*task, run(_))
|
| .WillByDefault(Invoke([&completion](double) { completion.Signal(); }));
|
|
|
| - thread_->postIdleTask(blink::WebTraceLocation(), task.release());
|
| + thread_->postIdleTask(BLINK_FROM_HERE, task.release());
|
| // We need to post a wakeup task or idle work will never happen.
|
| - thread_->getWebTaskRunner()->postDelayedTask(blink::WebTraceLocation(),
|
| - new NopTask(), 50ll);
|
| + thread_->getWebTaskRunner()->postDelayedTask(BLINK_FROM_HERE,
|
| + WTF::bind([] {}), 50ll);
|
|
|
| completion.Wait();
|
| }
|
| @@ -177,8 +162,8 @@ TEST_F(WebThreadImplForWorkerSchedulerTest, TestTaskObserver) {
|
|
|
| RunOnWorkerThread(FROM_HERE,
|
| base::Bind(&addTaskObserver, thread_.get(), &observer));
|
| - thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(),
|
| - new TestTask(&calls));
|
| + thread_->getWebTaskRunner()->postTask(
|
| + BLINK_FROM_HERE, WTF::bind(&runTestTask, WTF::unretained(&calls)));
|
| RunOnWorkerThread(FROM_HERE,
|
| base::Bind(&removeTaskObserver, thread_.get(), &observer));
|
|
|
| @@ -191,17 +176,18 @@ TEST_F(WebThreadImplForWorkerSchedulerTest, TestTaskObserver) {
|
| }
|
|
|
| TEST_F(WebThreadImplForWorkerSchedulerTest, TestShutdown) {
|
| - std::unique_ptr<MockTask> task(new MockTask());
|
| - std::unique_ptr<MockTask> delayed_task(new MockTask());
|
| + MockTask task;
|
| + MockTask delayed_task;
|
|
|
| - EXPECT_CALL(*task, run()).Times(0);
|
| - EXPECT_CALL(*delayed_task, run()).Times(0);
|
| + EXPECT_CALL(task, run()).Times(0);
|
| + EXPECT_CALL(delayed_task, run()).Times(0);
|
|
|
| RunOnWorkerThread(FROM_HERE, base::Bind(&shutdownOnThread, thread_.get()));
|
| - thread_->getWebTaskRunner()->postTask(blink::WebTraceLocation(),
|
| - task.release());
|
| - thread_->getWebTaskRunner()->postDelayedTask(blink::WebTraceLocation(),
|
| - task.release(), 50ll);
|
| + thread_->getWebTaskRunner()->postTask(
|
| + BLINK_FROM_HERE, WTF::bind(&MockTask::run, WTF::unretained(&task)));
|
| + thread_->getWebTaskRunner()->postDelayedTask(
|
| + BLINK_FROM_HERE,
|
| + WTF::bind(&MockTask::run, WTF::unretained(&delayed_task)), 50ll);
|
| thread_.reset();
|
| }
|
|
|
|
|