| 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);
|
| +}
|
| +
|
| +} // 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"));
|
|
|