OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This class defines tests that implementations of TaskRunner should | 5 // This class defines tests that implementations of TaskRunner should |
6 // pass in order to be conformant. Here's how you use it to test your | 6 // pass in order to be conformant. Here's how you use it to test your |
7 // implementation. | 7 // implementation. |
8 // | 8 // |
9 // Say your class is called MyTaskRunner. Then you need to define a | 9 // Say your class is called MyTaskRunner. Then you need to define a |
10 // class called MyTaskRunnerTestDelegate in my_task_runner_unittest.cc | 10 // class called MyTaskRunnerTestDelegate in my_task_runner_unittest.cc |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 | 46 |
47 #ifndef BASE_TEST_TASK_RUNNER_TEST_TEMPLATE_H_ | 47 #ifndef BASE_TEST_TASK_RUNNER_TEST_TEMPLATE_H_ |
48 #define BASE_TEST_TASK_RUNNER_TEST_TEMPLATE_H_ | 48 #define BASE_TEST_TASK_RUNNER_TEST_TEMPLATE_H_ |
49 | 49 |
50 #include <cstddef> | 50 #include <cstddef> |
51 #include <map> | 51 #include <map> |
52 | 52 |
53 #include "base/basictypes.h" | 53 #include "base/basictypes.h" |
54 #include "base/bind.h" | 54 #include "base/bind.h" |
55 #include "base/callback.h" | 55 #include "base/callback.h" |
56 #include "base/location.h" | |
57 #include "base/memory/ref_counted.h" | 56 #include "base/memory/ref_counted.h" |
58 #include "base/single_thread_task_runner.h" | |
59 #include "base/synchronization/condition_variable.h" | 57 #include "base/synchronization/condition_variable.h" |
60 #include "base/synchronization/lock.h" | 58 #include "base/synchronization/lock.h" |
61 #include "base/task_runner.h" | 59 #include "base/task_runner.h" |
62 #include "base/threading/thread.h" | 60 #include "base/threading/thread.h" |
63 #include "base/tracked_objects.h" | 61 #include "base/tracked_objects.h" |
64 #include "testing/gtest/include/gtest/gtest.h" | 62 #include "testing/gtest/include/gtest/gtest.h" |
65 | 63 |
66 namespace base { | 64 namespace base { |
67 | 65 |
68 namespace internal { | 66 namespace internal { |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 Bind(&internal::ExpectRunsTasksOnCurrentThread, | 188 Bind(&internal::ExpectRunsTasksOnCurrentThread, |
191 true, task_runner), | 189 true, task_runner), |
192 i); | 190 i); |
193 const Closure& ith_non_task_runner_task = | 191 const Closure& ith_non_task_runner_task = |
194 this->task_tracker_->WrapTask( | 192 this->task_tracker_->WrapTask( |
195 Bind(&internal::ExpectRunsTasksOnCurrentThread, | 193 Bind(&internal::ExpectRunsTasksOnCurrentThread, |
196 false, task_runner), | 194 false, task_runner), |
197 i); | 195 i); |
198 for (int j = 0; j < i + 1; ++j) { | 196 for (int j = 0; j < i + 1; ++j) { |
199 task_runner->PostTask(FROM_HERE, ith_task_runner_task); | 197 task_runner->PostTask(FROM_HERE, ith_task_runner_task); |
200 thread.task_runner()->PostTask(FROM_HERE, ith_non_task_runner_task); | 198 thread.message_loop()->PostTask(FROM_HERE, ith_non_task_runner_task); |
201 expected_task_run_counts[i] += 2; | 199 expected_task_run_counts[i] += 2; |
202 } | 200 } |
203 } | 201 } |
204 | 202 |
205 this->delegate_.StopTaskRunner(); | 203 this->delegate_.StopTaskRunner(); |
206 thread.Stop(); | 204 thread.Stop(); |
207 | 205 |
208 EXPECT_EQ(expected_task_run_counts, | 206 EXPECT_EQ(expected_task_run_counts, |
209 this->task_tracker_->GetTaskRunCounts()); | 207 this->task_tracker_->GetTaskRunCounts()); |
210 } | 208 } |
211 | 209 |
212 REGISTER_TYPED_TEST_CASE_P( | 210 REGISTER_TYPED_TEST_CASE_P( |
213 TaskRunnerTest, Basic, Delayed, RunsTasksOnCurrentThread); | 211 TaskRunnerTest, Basic, Delayed, RunsTasksOnCurrentThread); |
214 | 212 |
215 } // namespace base | 213 } // namespace base |
216 | 214 |
217 #endif // BASE_TEST_TASK_RUNNER_TEST_TEMPLATE_H_ | 215 #endif // BASE_TEST_TASK_RUNNER_TEST_TEMPLATE_H_ |
OLD | NEW |