Chromium Code Reviews| Index: base/threading/sequenced_task_runner_handle_unittest.cc |
| diff --git a/base/threading/sequenced_task_runner_handle_unittest.cc b/base/threading/sequenced_task_runner_handle_unittest.cc |
| index 1080262f32f1a8617f4fa2da7de3f0aa1f2d76fd..6b8ecfe2a24dad6dc6f3c4e31ea53dcd82d258a5 100644 |
| --- a/base/threading/sequenced_task_runner_handle_unittest.cc |
| +++ b/base/threading/sequenced_task_runner_handle_unittest.cc |
| @@ -24,12 +24,13 @@ namespace { |
| class SequencedTaskRunnerHandleTest : public ::testing::Test { |
| protected: |
| static void GetTaskRunner(const Closure& callback) { |
|
gab
2015/11/10 19:54:18
A "Get" method that returns void feels weird to me
Bernhard Bauer
2015/11/10 20:31:47
Done.
|
| - // Use SequenceCheckerImpl to make sure it's not a no-op in Release builds. |
| - scoped_ptr<SequenceCheckerImpl> sequence_checker(new SequenceCheckerImpl); |
| ASSERT_TRUE(SequencedTaskRunnerHandle::IsSet()); |
| scoped_refptr<SequencedTaskRunner> task_runner = |
| SequencedTaskRunnerHandle::Get(); |
| ASSERT_TRUE(task_runner); |
| + |
| + // Use SequenceCheckerImpl to make sure it's not a no-op in Release builds. |
| + scoped_ptr<SequenceCheckerImpl> sequence_checker(new SequenceCheckerImpl); |
| task_runner->PostTask( |
| FROM_HERE, base::Bind(&SequencedTaskRunnerHandleTest::CheckValidThread, |
| base::Passed(&sequence_checker), callback)); |
| @@ -51,7 +52,7 @@ TEST_F(SequencedTaskRunnerHandleTest, FromMessageLoop) { |
| run_loop.Run(); |
| } |
| -TEST_F(SequencedTaskRunnerHandleTest, FromSequencedWorkerPool) { |
| +TEST_F(SequencedTaskRunnerHandleTest, FromSequencedWorkerPoolTask) { |
| // Wrap the SequencedWorkerPool to avoid leaks due to its asynchronous |
| // destruction. |
| SequencedWorkerPoolOwner owner(3, "Test"); |
| @@ -64,6 +65,19 @@ TEST_F(SequencedTaskRunnerHandleTest, FromSequencedWorkerPool) { |
| owner.pool()->Shutdown(); |
| } |
| +TEST_F(SequencedTaskRunnerHandleTest, FromUnsequencedTask) { |
|
gab
2015/11/10 19:54:18
Did you confirm that this test failed prior to the
Bernhard Bauer
2015/11/10 20:31:47
Yes:
[ RUN ] SequencedTaskRunnerHandleTest.
|
| + // Wrap the SequencedWorkerPool to avoid leaks due to its asynchronous |
| + // destruction. |
| + SequencedWorkerPoolOwner owner(3, "Test"); |
| + WaitableEvent event(false, false); |
| + owner.pool()->PostWorkerTask( |
| + FROM_HERE, |
| + base::Bind(&SequencedTaskRunnerHandleTest::GetTaskRunner, |
| + base::Bind(&WaitableEvent::Signal, base::Unretained(&event)))); |
| + event.Wait(); |
| + owner.pool()->Shutdown(); |
| +} |
| + |
| class ThreadRunner : public DelegateSimpleThread::Delegate { |
| public: |
| void Run() override { |