Reland of Tests: Simplify SequencedWorkerPoolOwner, call Shutdown on destructor. (patchset #1 id:1 of https://codereview.chromium.org/1496493004/ )
Reason for revert:
Relanding, no recovery in
https://build.chromium.org/p/chromium.mac/builders/iOS_Simulator_%28dbg%29/builds/32878
Original issue's description:
> Revert of Tests: Simplify SequencedWorkerPoolOwner, call Shutdown on destructor. (patchset #4 id:60001 of https://codereview.chromium.org/1417353006/ )
>
> Reason for revert:
> Suspected for persistent failures on ios_net_unittests
>
> - RoundTripTestCookieStore/CookieStoreTest/0.TestNonDottedAndTLD
> - CookieStoreIOS/CookieStoreTest/0.TestNonDottedAndTLD
>
> Failing since https://build.chromium.org/p/chromium.mac/builders/iOS_Simulator_%28dbg%29/builds/32876
>
> Errors like
>
> ../../net/cookies/cookie_store_unittest.h:536: Failure
> Value of: this->SetCookie(cs.get(), url, "a=1; domain=com")
> Actual: false
> Expected: true
>
> (It's a tricky one! Sorry if this is not it)
>
> Original issue's description:
> > Tests: Simplify SequencedWorkerPoolOwner, call Shutdown on destructor.
> >
> > Also ports remaining tests using raw SWPs to use SWPOwner.
> >
> > BUG=450228
> >
> > Committed: https://crrev.com/fc939726c283e34112d9bc845a39460410fe9cd9
> > Cr-Commit-Position: refs/heads/master@{#362805}
>
> [email protected],[email protected],[email protected],[email protected]
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=450228
>
> Committed: https://crrev.com/d7365d9aaa55e88d9ecca49eb2158b62d1190f09
> Cr-Commit-Position: refs/heads/master@{#362890}
[email protected],[email protected],[email protected],[email protected]
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=450228
Review URL: https://codereview.chromium.org/1500503002
Cr-Commit-Position: refs/heads/master@{#362907}
diff --git a/base/threading/sequenced_worker_pool_unittest.cc b/base/threading/sequenced_worker_pool_unittest.cc
index 5812ee7..262c4fb 100644
--- a/base/threading/sequenced_worker_pool_unittest.cc
+++ b/base/threading/sequenced_worker_pool_unittest.cc
@@ -234,8 +234,6 @@
ResetPool();
}
- void TearDown() override { pool()->Shutdown(); }
-
const scoped_refptr<SequencedWorkerPool>& pool() {
return pool_owner_->pool();
}
@@ -351,7 +349,6 @@
ASSERT_EQ(1u, completion_sequence.size());
ASSERT_EQ(1, completion_sequence[0]);
- pool()->Shutdown();
// Shutdown is asynchronous, so use ResetPool() to block until the pool is
// fully destroyed (and thus shut down).
ResetPool();
@@ -430,9 +427,6 @@
std::vector<int> result =
tracker()->WaitUntilTasksComplete(2*kNumTasks);
EXPECT_EQ(2 * kNumTasks, result.size());
-
- pool2.pool()->Shutdown();
- pool1.pool()->Shutdown();
}
// Test that tasks with the same sequence token are executed in order but don't
@@ -799,33 +793,30 @@
SequencedWorkerPool::SequenceToken token2 = pool()->GetSequenceToken();
SequencedWorkerPool::SequenceToken unsequenced_token;
- scoped_refptr<SequencedWorkerPool> unused_pool =
- new SequencedWorkerPool(2, "unused_pool");
+ SequencedWorkerPoolOwner unused_pool_owner(2, "unused_pool");
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_owner.pool()->RunsTasksOnCurrentThread());
EXPECT_FALSE(
- unused_pool->IsRunningSequenceOnCurrentThread(unsequenced_token));
+ unused_pool_owner.pool()->IsRunningSequenceOnCurrentThread(token1));
+ EXPECT_FALSE(
+ unused_pool_owner.pool()->IsRunningSequenceOnCurrentThread(token2));
+ EXPECT_FALSE(unused_pool_owner.pool()->IsRunningSequenceOnCurrentThread(
+ unsequenced_token));
pool()->PostSequencedWorkerTask(
- token1, FROM_HERE,
- base::Bind(&IsRunningOnCurrentThreadTask,
- token1, token2, pool(), unused_pool));
+ token1, FROM_HERE, base::Bind(&IsRunningOnCurrentThreadTask, token1,
+ token2, pool(), unused_pool_owner.pool()));
pool()->PostSequencedWorkerTask(
token2, FROM_HERE,
- base::Bind(&IsRunningOnCurrentThreadTask,
- token2, unsequenced_token, pool(), unused_pool));
+ base::Bind(&IsRunningOnCurrentThreadTask, token2, unsequenced_token,
+ pool(), unused_pool_owner.pool()));
pool()->PostWorkerTask(
- FROM_HERE,
- base::Bind(&IsRunningOnCurrentThreadTask,
- unsequenced_token, token1, pool(), unused_pool));
- pool()->Shutdown();
- unused_pool->Shutdown();
+ FROM_HERE, base::Bind(&IsRunningOnCurrentThreadTask, unsequenced_token,
+ token1, pool(), unused_pool_owner.pool()));
}
// Checks that tasks are destroyed in the right context during shutdown. If a
@@ -947,16 +938,14 @@
pool()->FlushForTesting();
}
-TEST(SequencedWorkerPoolRefPtrTest, ShutsDownCleanWithContinueOnShutdown) {
- MessageLoop loop;
- scoped_refptr<SequencedWorkerPool> pool(new SequencedWorkerPool(3, "Pool"));
+TEST_F(SequencedWorkerPoolTest, ShutsDownCleanWithContinueOnShutdown) {
scoped_refptr<SequencedTaskRunner> task_runner =
- pool->GetSequencedTaskRunnerWithShutdownBehavior(
- pool->GetSequenceToken(),
+ pool()->GetSequencedTaskRunnerWithShutdownBehavior(
+ pool()->GetSequenceToken(),
base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
// Upon test exit, should shut down without hanging.
- pool->Shutdown();
+ pool()->Shutdown();
}
class SequencedWorkerPoolTaskRunnerTestDelegate {