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 { |