diff options
Diffstat (limited to 'base/task_unittest.cc')
-rw-r--r-- | base/task_unittest.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/base/task_unittest.cc b/base/task_unittest.cc index e0cb659..d7d31fa 100644 --- a/base/task_unittest.cc +++ b/base/task_unittest.cc @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "base/bind.h" #include "base/memory/ref_counted.h" #include "base/task.h" #include "testing/gtest/include/gtest/gtest.h" @@ -107,4 +108,30 @@ TEST(TaskTest, TestScopedTaskRunnerManualRun) { EXPECT_TRUE(was_deleted); } +void Increment(int* value) { + (*value)++; +} + +TEST(TaskTest, TestScopedClosureRunnerExitScope) { + int run_count = 0; + { + base::ScopedClosureRunner runner(base::Bind(Increment, &run_count)); + EXPECT_EQ(0, run_count); + } + EXPECT_EQ(1, run_count); +} + +TEST(TaskTest, TestScopedClosureRunnerRelease) { + int run_count = 0; + base::Closure c; + { + base::ScopedClosureRunner runner(base::Bind(Increment, &run_count)); + c = runner.Release(); + EXPECT_EQ(0, run_count); + } + EXPECT_EQ(0, run_count); + c.Run(); + EXPECT_EQ(1, run_count); +} + } // namespace |