| 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 bd380efb68b0dbc6c39429eb903aef5f412b054d..1e624f4dce954194ddcbd0927239544972d8ee41 100644
|
| --- a/base/threading/sequenced_task_runner_handle_unittest.cc
|
| +++ b/base/threading/sequenced_task_runner_handle_unittest.cc
|
| @@ -23,21 +23,24 @@ namespace {
|
|
|
| class SequencedTaskRunnerHandleTest : public ::testing::Test {
|
| protected:
|
| - static void GetTaskRunner(const Closure& callback) {
|
| - // Use SequenceCheckerImpl to make sure it's not a no-op in Release builds.
|
| - scoped_ptr<SequenceCheckerImpl> sequence_checker(new SequenceCheckerImpl);
|
| + static void VerifyCurrentSequencedTaskRunner(const Closure& callback) {
|
| 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));
|
| + FROM_HERE,
|
| + base::Bind(&SequencedTaskRunnerHandleTest::CheckValidSequence,
|
| + base::Passed(&sequence_checker), callback));
|
| }
|
|
|
| private:
|
| - static void CheckValidThread(scoped_ptr<SequenceCheckerImpl> sequence_checker,
|
| - const Closure& callback) {
|
| + static void CheckValidSequence(
|
| + scoped_ptr<SequenceCheckerImpl> sequence_checker,
|
| + const Closure& callback) {
|
| EXPECT_TRUE(sequence_checker->CalledOnValidSequencedThread());
|
| callback.Run();
|
| }
|
| @@ -47,19 +50,34 @@ class SequencedTaskRunnerHandleTest : public ::testing::Test {
|
|
|
| TEST_F(SequencedTaskRunnerHandleTest, FromMessageLoop) {
|
| RunLoop run_loop;
|
| - GetTaskRunner(run_loop.QuitClosure());
|
| + VerifyCurrentSequencedTaskRunner(run_loop.QuitClosure());
|
| 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");
|
| WaitableEvent event(false, false);
|
| owner.pool()->PostSequencedWorkerTask(
|
| owner.pool()->GetSequenceToken(), FROM_HERE,
|
| - base::Bind(&SequencedTaskRunnerHandleTest::GetTaskRunner,
|
| - base::Bind(&WaitableEvent::Signal, base::Unretained(&event))));
|
| + base::Bind(
|
| + &SequencedTaskRunnerHandleTest::VerifyCurrentSequencedTaskRunner,
|
| + base::Bind(&WaitableEvent::Signal, base::Unretained(&event))));
|
| + event.Wait();
|
| + owner.pool()->Shutdown();
|
| +}
|
| +
|
| +TEST_F(SequencedTaskRunnerHandleTest, FromUnsequencedTask) {
|
| + // 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::VerifyCurrentSequencedTaskRunner,
|
| + base::Bind(&WaitableEvent::Signal, base::Unretained(&event))));
|
| event.Wait();
|
| }
|
|
|
|
|