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

Unified Diff: base/threading/sequenced_task_runner_handle_unittest.cc

Issue 1414793009: Allow SequencedTaskRunnerHandle::Get() while running unsequenced tasks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 5 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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 1080262f32f1a8617f4fa2da7de3f0aa1f2d76fd..6b8ecfe2a24dad6dc6f3c4e31ea53dcd82d258a5 100644
--- a/base/threading/sequenced_task_runner_handle_unittest.cc
+++ b/base/threading/sequenced_task_runner_handle_unittest.cc
@@ -24,12 +24,13 @@ namespace {
class SequencedTaskRunnerHandleTest : public ::testing::Test {
protected:
static void GetTaskRunner(const Closure& callback) {
gab 2015/11/10 19:54:18 A "Get" method that returns void feels weird to me
Bernhard Bauer 2015/11/10 20:31:47 Done.
- // Use SequenceCheckerImpl to make sure it's not a no-op in Release builds.
- scoped_ptr<SequenceCheckerImpl> sequence_checker(new SequenceCheckerImpl);
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));
@@ -51,7 +52,7 @@ TEST_F(SequencedTaskRunnerHandleTest, FromMessageLoop) {
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");
@@ -64,6 +65,19 @@ TEST_F(SequencedTaskRunnerHandleTest, FromSequencedWorkerPool) {
owner.pool()->Shutdown();
}
+TEST_F(SequencedTaskRunnerHandleTest, FromUnsequencedTask) {
gab 2015/11/10 19:54:18 Did you confirm that this test failed prior to the
Bernhard Bauer 2015/11/10 20:31:47 Yes: [ RUN ] SequencedTaskRunnerHandleTest.
+ // 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::GetTaskRunner,
+ base::Bind(&WaitableEvent::Signal, base::Unretained(&event))));
+ event.Wait();
+ owner.pool()->Shutdown();
+}
+
class ThreadRunner : public DelegateSimpleThread::Delegate {
public:
void Run() override {

Powered by Google App Engine
This is Rietveld 408576698