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

Side by Side Diff: base/callback_helpers_unittest.cc

Issue 2094803005: Fix PrepareTextureCopyOutputResult to avoid ScopedCallbackRunner. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_closure_runner
Patch Set: . Created 4 years, 5 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/callback_helpers.h" 5 #include "base/callback_helpers.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace { 11 namespace {
12 12
13 void Increment(int* value) { 13 void Increment(int* value) {
14 (*value)++; 14 (*value)++;
15 } 15 }
16 16
17 TEST(BindHelpersTest, TestScopedClosureRunnerExitScope) { 17 TEST(CallbackHelpersTest, TestScopedClosureRunnerExitScope) {
18 int run_count = 0; 18 int run_count = 0;
19 { 19 {
20 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count)); 20 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count));
21 EXPECT_EQ(0, run_count); 21 EXPECT_EQ(0, run_count);
22 } 22 }
23 EXPECT_EQ(1, run_count); 23 EXPECT_EQ(1, run_count);
24 } 24 }
25 25
26 TEST(BindHelpersTest, TestScopedClosureRunnerRelease) { 26 TEST(CallbackHelpersTest, TestScopedClosureRunnerRelease) {
27 int run_count = 0; 27 int run_count = 0;
28 base::Closure c; 28 base::Closure c;
29 { 29 {
30 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count)); 30 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count));
31 c = runner.Release(); 31 c = runner.Release();
32 EXPECT_EQ(0, run_count); 32 EXPECT_EQ(0, run_count);
33 } 33 }
34 EXPECT_EQ(0, run_count); 34 EXPECT_EQ(0, run_count);
35 c.Run(); 35 c.Run();
36 EXPECT_EQ(1, run_count); 36 EXPECT_EQ(1, run_count);
37 } 37 }
38 38
39 TEST(BindHelpersTest, TestScopedClosureRunnerReset) { 39 TEST(CallbackHelpersTest, TestScopedClosureRunnerReplaceClosure) {
40 int run_count_1 = 0; 40 int run_count_1 = 0;
41 int run_count_2 = 0; 41 int run_count_2 = 0;
42 { 42 {
43 base::ScopedClosureRunner runner; 43 base::ScopedClosureRunner runner;
44 runner.Reset(base::Bind(&Increment, &run_count_1)); 44 runner.ReplaceClosure(base::Bind(&Increment, &run_count_1));
45 runner.Reset(base::Bind(&Increment, &run_count_2)); 45 runner.ReplaceClosure(base::Bind(&Increment, &run_count_2));
46 EXPECT_EQ(1, run_count_1); 46 EXPECT_EQ(0, run_count_1);
47 EXPECT_EQ(0, run_count_2); 47 EXPECT_EQ(0, run_count_2);
48 } 48 }
49 EXPECT_EQ(0, run_count_1);
49 EXPECT_EQ(1, run_count_2); 50 EXPECT_EQ(1, run_count_2);
51 }
50 52
53 TEST(CallbackHelpersTest, TestScopedClosureRunnerRunAndReset) {
51 int run_count_3 = 0; 54 int run_count_3 = 0;
52 { 55 {
53 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count_3)); 56 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count_3));
54 EXPECT_EQ(0, run_count_3); 57 EXPECT_EQ(0, run_count_3);
55 runner.Reset(); 58 runner.RunAndReset();
56 EXPECT_EQ(1, run_count_3); 59 EXPECT_EQ(1, run_count_3);
57 } 60 }
58 EXPECT_EQ(1, run_count_3); 61 EXPECT_EQ(1, run_count_3);
59 } 62 }
60 63
61 TEST(BindHelpersTest, TestScopedClosureRunnerMoveConstructor) { 64 TEST(CallbackHelpersTest, TestScopedClosureRunnerMoveConstructor) {
62 int run_count = 0; 65 int run_count = 0;
63 { 66 {
64 std::unique_ptr<base::ScopedClosureRunner> runner( 67 std::unique_ptr<base::ScopedClosureRunner> runner(
65 new base::ScopedClosureRunner(base::Bind(&Increment, &run_count))); 68 new base::ScopedClosureRunner(base::Bind(&Increment, &run_count)));
66 base::ScopedClosureRunner runner2(std::move(*runner)); 69 base::ScopedClosureRunner runner2(std::move(*runner));
67 runner.reset(); 70 runner.reset();
68 EXPECT_EQ(0, run_count); 71 EXPECT_EQ(0, run_count);
69 } 72 }
70 EXPECT_EQ(1, run_count); 73 EXPECT_EQ(1, run_count);
71 } 74 }
72 75
73 TEST(BindHelpersTest, TestScopedClosureRunnerMoveAssignment) { 76 TEST(CallbackHelpersTest, TestScopedClosureRunnerMoveAssignment) {
74 int run_count = 0; 77 int run_count_1 = 0;
78 int run_count_2 = 0;
75 { 79 {
76 base::ScopedClosureRunner runner; 80 base::ScopedClosureRunner runner(base::Bind(&Increment, &run_count_1));
77 { 81 {
78 base::ScopedClosureRunner runner2(base::Bind(&Increment, &run_count)); 82 base::ScopedClosureRunner runner2(base::Bind(&Increment, &run_count_2));
79 runner = std::move(runner2); 83 runner = std::move(runner2);
84 EXPECT_EQ(0, run_count_1);
85 EXPECT_EQ(0, run_count_2);
80 } 86 }
81 EXPECT_EQ(0, run_count); 87 EXPECT_EQ(0, run_count_1);
88 EXPECT_EQ(0, run_count_2);
82 } 89 }
83 EXPECT_EQ(1, run_count); 90 EXPECT_EQ(0, run_count_1);
84 } 91 EXPECT_EQ(1, run_count_2);
85
86 TEST(BindHelpersTest, TestScopedClosureRunnerRunOnReplace) {
87 int run_count1 = 0;
88 int run_count2 = 0;
89 {
90 base::ScopedClosureRunner runner1(base::Bind(&Increment, &run_count1));
91 {
92 base::ScopedClosureRunner runner2(base::Bind(&Increment, &run_count2));
93 runner1 = std::move(runner2);
94 EXPECT_EQ(1, run_count1);
95 EXPECT_EQ(0, run_count2);
96 }
97 EXPECT_EQ(1, run_count1);
98 EXPECT_EQ(0, run_count2);
99 }
100 EXPECT_EQ(1, run_count1);
101 EXPECT_EQ(1, run_count2);
102 } 92 }
103 93
104 } // namespace 94 } // namespace
OLDNEW
« no previous file with comments | « base/callback_helpers.cc ('k') | chrome/browser/install_verification/win/module_list_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698