Chromium Code Reviews| Index: base/threading/sequenced_worker_pool_unittest.cc |
| =================================================================== |
| --- base/threading/sequenced_worker_pool_unittest.cc (revision 128981) |
| +++ base/threading/sequenced_worker_pool_unittest.cc (working copy) |
| @@ -510,6 +510,63 @@ |
| EXPECT_EQ(old_has_work_call_count + 1, has_work_call_count()); |
| } |
| +static void IsRunningOnCurrentThreadTask( |
|
akalin
2012/03/28 20:24:09
nit: no static needed since you're already in anon
michaeln
2012/03/30 22:35:28
Done.
|
| + SequencedWorkerPool::SequenceToken test_positive_token, |
| + SequencedWorkerPool::SequenceToken test_negative_token, |
| + SequencedWorkerPool* pool, |
|
akalin
2012/03/28 20:24:09
any particular reason this takes a raw pointer ins
michaeln
2012/03/30 22:35:28
I updated the base::Bind callsites to not use Unre
|
| + SequencedWorkerPool* unused_pool) { |
| + EXPECT_TRUE(pool->RunsTasksOnCurrentThread()); |
| + EXPECT_TRUE(pool->IsRunningSequenceOnCurrentThread(test_positive_token)); |
| + EXPECT_FALSE(pool->IsRunningSequenceOnCurrentThread(test_negative_token)); |
| + EXPECT_FALSE(unused_pool->RunsTasksOnCurrentThread()); |
| + EXPECT_FALSE( |
| + unused_pool->IsRunningSequenceOnCurrentThread(test_positive_token)); |
| + EXPECT_FALSE( |
| + unused_pool->IsRunningSequenceOnCurrentThread(test_negative_token)); |
| +} |
| + |
| +TEST_F(SequencedWorkerPoolTest, IsRunningOnCurrentThread) { |
|
akalin
2012/03/28 20:24:09
add test-level comment explaining what the test is
michaeln
2012/03/30 22:35:28
Done.
|
| + SequencedWorkerPool::SequenceToken token1 = pool()->GetSequenceToken(); |
| + SequencedWorkerPool::SequenceToken token2 = pool()->GetSequenceToken(); |
| + SequencedWorkerPool::SequenceToken unsequenced_token; |
| + |
| + scoped_refptr<SequencedWorkerPool> unused_pool = |
| + new SequencedWorkerPool(2, "unused_pool"); |
| + EXPECT_TRUE(token1.Equals(unused_pool->GetSequenceToken())); |
| + EXPECT_TRUE(token2.Equals(unused_pool->GetSequenceToken())); |
| + |
| + EXPECT_FALSE(pool()->RunsTasksOnCurrentThread()); |
| + EXPECT_FALSE(pool()->IsRunningSequenceOnCurrentThread(token1)); |
| + EXPECT_FALSE(pool()->IsRunningSequenceOnCurrentThread(token2)); |
| + EXPECT_FALSE(pool()->IsRunningSequenceOnCurrentThread(unsequenced_token)); |
| + EXPECT_FALSE(unused_pool->RunsTasksOnCurrentThread()); |
| + EXPECT_FALSE(unused_pool->IsRunningSequenceOnCurrentThread(token1)); |
| + EXPECT_FALSE(unused_pool->IsRunningSequenceOnCurrentThread(token2)); |
| + EXPECT_FALSE( |
| + unused_pool->IsRunningSequenceOnCurrentThread(unsequenced_token)); |
| + |
| + pool()->PostSequencedWorkerTask( |
| + token1, FROM_HERE, |
| + base::Bind(&IsRunningOnCurrentThreadTask, |
| + token1, token2, |
| + base::Unretained(pool().get()), |
| + base::Unretained(unused_pool.get()))); |
| + pool()->PostSequencedWorkerTask( |
| + token2, FROM_HERE, |
| + base::Bind(&IsRunningOnCurrentThreadTask, |
| + token2, unsequenced_token, |
| + base::Unretained(pool().get()), |
| + base::Unretained(unused_pool.get()))); |
| + pool()->PostWorkerTask( |
| + FROM_HERE, |
| + base::Bind(&IsRunningOnCurrentThreadTask, |
| + unsequenced_token, token1, |
| + base::Unretained(pool().get()), |
| + base::Unretained(unused_pool.get()))); |
| + pool()->Shutdown(); |
| + unused_pool->Shutdown(); |
| +} |
| + |
| class SequencedWorkerPoolTaskRunnerTestDelegate { |
| public: |
| SequencedWorkerPoolTaskRunnerTestDelegate() {} |