Chromium Code Reviews| Index: base/threading/sequenced_worker_pool_unittest.cc |
| diff --git a/base/threading/sequenced_worker_pool_unittest.cc b/base/threading/sequenced_worker_pool_unittest.cc |
| index bf82b1103574549d32d14e41506c683ecc52ac7d..36f704d9da36ef66736a8e04383b67e7bc76d63d 100644 |
| --- a/base/threading/sequenced_worker_pool_unittest.cc |
| +++ b/base/threading/sequenced_worker_pool_unittest.cc |
| @@ -904,6 +904,49 @@ TEST_F(SequencedWorkerPoolTest, FlushForTesting) { |
| pool()->FlushForTesting(); |
| } |
| +namespace { |
| + |
| +void CheckWorkerPoolAndSequenceToken( |
| + const scoped_refptr<SequencedWorkerPool>& expected_pool, |
| + SequencedWorkerPool::SequenceToken expected_token) { |
| + SequencedWorkerPool::SequenceToken token = |
| + SequencedWorkerPool::GetSequenceTokenForCurrentThread(); |
| + EXPECT_EQ(expected_token, token); |
| + |
| + scoped_refptr<SequencedWorkerPool> pool = |
| + SequencedWorkerPool::GetWorkerPoolForCurrentThread(); |
| + EXPECT_EQ(expected_pool, pool); |
|
danakj
2015/10/27 20:03:20
you could compare the .get()s and avoid the need f
Bernhard Bauer
2015/10/28 13:36:28
No, that's the ostream operator on scoped_refptr.
|
| +} |
| + |
| +} // namespace |
| + |
| +TEST_F(SequencedWorkerPoolTest, GetWorkerPoolAndSequenceTokenForCurrentThread) { |
| + EnsureAllWorkersCreated(); |
| + |
| + // The current thread should have neither a worker pool nor a sequence token. |
| + SequencedWorkerPool::SequenceToken local_token = |
| + SequencedWorkerPool::GetSequenceTokenForCurrentThread(); |
| + scoped_refptr<SequencedWorkerPool> local_pool = |
| + SequencedWorkerPool::GetWorkerPoolForCurrentThread(); |
| + EXPECT_FALSE(local_token.IsValid()) << local_token; |
| + EXPECT_FALSE(local_pool); |
| + |
| + SequencedWorkerPool::SequenceToken token1 = pool()->GetSequenceToken(); |
| + SequencedWorkerPool::SequenceToken token2 = pool()->GetSequenceToken(); |
| + pool()->PostSequencedWorkerTask( |
| + token1, FROM_HERE, |
| + base::Bind(&CheckWorkerPoolAndSequenceToken, pool(), token1)); |
| + pool()->PostSequencedWorkerTask( |
| + token2, FROM_HERE, |
| + base::Bind(&CheckWorkerPoolAndSequenceToken, pool(), token2)); |
| + |
| + pool()->PostWorkerTask(FROM_HERE, |
| + base::Bind(&CheckWorkerPoolAndSequenceToken, pool(), |
| + SequencedWorkerPool::SequenceToken())); |
| + |
| + pool()->FlushForTesting(); |
| +} |
| + |
| TEST(SequencedWorkerPoolRefPtrTest, ShutsDownCleanWithContinueOnShutdown) { |
| MessageLoop loop; |
| scoped_refptr<SequencedWorkerPool> pool(new SequencedWorkerPool(3, "Pool")); |