Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(437)

Side by Side Diff: base/threading/sequenced_task_runner_handle_unittest.cc

Issue 2791243002: Rewrite base::Bind into base::BindOnce on trivial cases in base (Closed)
Patch Set: rebase Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/threading/sequenced_task_runner_handle.h" 5 #include "base/threading/sequenced_task_runner_handle.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 23 matching lines...) Expand all
34 ASSERT_TRUE(SequencedTaskRunnerHandle::IsSet()); 34 ASSERT_TRUE(SequencedTaskRunnerHandle::IsSet());
35 scoped_refptr<SequencedTaskRunner> task_runner = 35 scoped_refptr<SequencedTaskRunner> task_runner =
36 SequencedTaskRunnerHandle::Get(); 36 SequencedTaskRunnerHandle::Get();
37 ASSERT_TRUE(task_runner); 37 ASSERT_TRUE(task_runner);
38 38
39 // Use SequenceCheckerImpl to make sure it's not a no-op in Release builds. 39 // Use SequenceCheckerImpl to make sure it's not a no-op in Release builds.
40 std::unique_ptr<SequenceCheckerImpl> sequence_checker( 40 std::unique_ptr<SequenceCheckerImpl> sequence_checker(
41 new SequenceCheckerImpl); 41 new SequenceCheckerImpl);
42 task_runner->PostTask( 42 task_runner->PostTask(
43 FROM_HERE, 43 FROM_HERE,
44 base::Bind(&SequencedTaskRunnerHandleTest::CheckValidSequence, 44 base::BindOnce(&SequencedTaskRunnerHandleTest::CheckValidSequence,
45 base::Passed(&sequence_checker), callback)); 45 base::Passed(&sequence_checker), callback));
46 } 46 }
47 47
48 // Verifies that there is no SequencedTaskRunnerHandle in the context it runs. 48 // Verifies that there is no SequencedTaskRunnerHandle in the context it runs.
49 // Runs |callback| when done. 49 // Runs |callback| when done.
50 static void VerifyNoSequencedTaskRunner(const Closure& callback) { 50 static void VerifyNoSequencedTaskRunner(const Closure& callback) {
51 ASSERT_FALSE(SequencedTaskRunnerHandle::IsSet()); 51 ASSERT_FALSE(SequencedTaskRunnerHandle::IsSet());
52 callback.Run(); 52 callback.Run();
53 } 53 }
54 54
55 private: 55 private:
(...skipping 14 matching lines...) Expand all
70 } 70 }
71 71
72 TEST_F(SequencedTaskRunnerHandleTest, FromSequencedWorkerPoolTask) { 72 TEST_F(SequencedTaskRunnerHandleTest, FromSequencedWorkerPoolTask) {
73 // Wrap the SequencedWorkerPool to avoid leaks due to its asynchronous 73 // Wrap the SequencedWorkerPool to avoid leaks due to its asynchronous
74 // destruction. 74 // destruction.
75 SequencedWorkerPoolOwner owner(3, "Test"); 75 SequencedWorkerPoolOwner owner(3, "Test");
76 WaitableEvent event(WaitableEvent::ResetPolicy::AUTOMATIC, 76 WaitableEvent event(WaitableEvent::ResetPolicy::AUTOMATIC,
77 WaitableEvent::InitialState::NOT_SIGNALED); 77 WaitableEvent::InitialState::NOT_SIGNALED);
78 owner.pool()->PostSequencedWorkerTask( 78 owner.pool()->PostSequencedWorkerTask(
79 owner.pool()->GetSequenceToken(), FROM_HERE, 79 owner.pool()->GetSequenceToken(), FROM_HERE,
80 base::Bind( 80 base::BindOnce(
81 &SequencedTaskRunnerHandleTest::VerifyCurrentSequencedTaskRunner, 81 &SequencedTaskRunnerHandleTest::VerifyCurrentSequencedTaskRunner,
82 base::Bind(&WaitableEvent::Signal, base::Unretained(&event)))); 82 base::Bind(&WaitableEvent::Signal, base::Unretained(&event))));
83 event.Wait(); 83 event.Wait();
84 } 84 }
85 85
86 TEST_F(SequencedTaskRunnerHandleTest, NoHandleFromUnsequencedTask) { 86 TEST_F(SequencedTaskRunnerHandleTest, NoHandleFromUnsequencedTask) {
87 // Wrap the SequencedWorkerPool to avoid leaks due to its asynchronous 87 // Wrap the SequencedWorkerPool to avoid leaks due to its asynchronous
88 // destruction. 88 // destruction.
89 SequencedWorkerPoolOwner owner(3, "Test"); 89 SequencedWorkerPoolOwner owner(3, "Test");
90 WaitableEvent event(WaitableEvent::ResetPolicy::AUTOMATIC, 90 WaitableEvent event(WaitableEvent::ResetPolicy::AUTOMATIC,
91 WaitableEvent::InitialState::NOT_SIGNALED); 91 WaitableEvent::InitialState::NOT_SIGNALED);
92 owner.pool()->PostWorkerTask( 92 owner.pool()->PostWorkerTask(
93 FROM_HERE, 93 FROM_HERE,
94 base::Bind( 94 base::BindOnce(
95 &SequencedTaskRunnerHandleTest::VerifyNoSequencedTaskRunner, 95 &SequencedTaskRunnerHandleTest::VerifyNoSequencedTaskRunner,
96 base::Bind(&WaitableEvent::Signal, base::Unretained(&event)))); 96 base::Bind(&WaitableEvent::Signal, base::Unretained(&event))));
97 event.Wait(); 97 event.Wait();
98 } 98 }
99 99
100 TEST(SequencedTaskRunnerHandleTestWithoutMessageLoop, FromHandleInScope) { 100 TEST(SequencedTaskRunnerHandleTestWithoutMessageLoop, FromHandleInScope) {
101 scoped_refptr<SequencedTaskRunner> test_task_runner(new TestSimpleTaskRunner); 101 scoped_refptr<SequencedTaskRunner> test_task_runner(new TestSimpleTaskRunner);
102 EXPECT_FALSE(SequencedTaskRunnerHandle::IsSet()); 102 EXPECT_FALSE(SequencedTaskRunnerHandle::IsSet());
103 EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet()); 103 EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet());
104 { 104 {
105 SequencedTaskRunnerHandle handle(test_task_runner); 105 SequencedTaskRunnerHandle handle(test_task_runner);
106 EXPECT_TRUE(SequencedTaskRunnerHandle::IsSet()); 106 EXPECT_TRUE(SequencedTaskRunnerHandle::IsSet());
107 EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet()); 107 EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet());
108 EXPECT_EQ(test_task_runner, SequencedTaskRunnerHandle::Get()); 108 EXPECT_EQ(test_task_runner, SequencedTaskRunnerHandle::Get());
109 } 109 }
110 EXPECT_FALSE(SequencedTaskRunnerHandle::IsSet()); 110 EXPECT_FALSE(SequencedTaskRunnerHandle::IsSet());
111 EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet()); 111 EXPECT_FALSE(ThreadTaskRunnerHandle::IsSet());
112 } 112 }
113 113
114 } // namespace 114 } // namespace
115 } // namespace base 115 } // namespace base
OLDNEW
« no previous file with comments | « base/threading/post_task_and_reply_impl_unittest.cc ('k') | base/threading/sequenced_worker_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698