| OLD | NEW |
| 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 // CpuInfoProvider unit tests | 5 // CpuInfoProvider unit tests |
| 6 | 6 |
| 7 #include "base/message_loop.h" | 7 #include "base/message_loop.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "chrome/browser/extensions/api/system_info_cpu/cpu_info_provider.h" | 9 #include "chrome/browser/extensions/api/system_info_cpu/cpu_info_provider.h" |
| 10 #include "content/public/test/test_browser_thread.h" | 10 #include "content/public/test/test_browser_thread.h" |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 public: | 138 public: |
| 139 CpuInfoProviderTest(); | 139 CpuInfoProviderTest(); |
| 140 | 140 |
| 141 // A callback function to be called when CpuInfoProvider completes to sample. | 141 // A callback function to be called when CpuInfoProvider completes to sample. |
| 142 // Called on FILE thread. | 142 // Called on FILE thread. |
| 143 void OnCheckCpuSamplingFinishedForTesting(scoped_ptr<CpuUpdateInfo> info); | 143 void OnCheckCpuSamplingFinishedForTesting(scoped_ptr<CpuUpdateInfo> info); |
| 144 void CalculateExpectedResult(); | 144 void CalculateExpectedResult(); |
| 145 void VerifyResult(); | 145 void VerifyResult(); |
| 146 | 146 |
| 147 protected: | 147 protected: |
| 148 MessageLoop message_loop_; | 148 base::MessageLoop message_loop_; |
| 149 content::TestBrowserThread ui_thread_; | 149 content::TestBrowserThread ui_thread_; |
| 150 content::TestBrowserThread file_thread_; | 150 content::TestBrowserThread file_thread_; |
| 151 scoped_refptr<TestCpuInfoProvider> cpu_info_provider_; | 151 scoped_refptr<TestCpuInfoProvider> cpu_info_provider_; |
| 152 | 152 |
| 153 // Maintain the CpuUpdateInfo results returned by DoSample function. | 153 // Maintain the CpuUpdateInfo results returned by DoSample function. |
| 154 std::vector<TestCpuUpdateInfo> cpu_update_result_; | 154 std::vector<TestCpuUpdateInfo> cpu_update_result_; |
| 155 | 155 |
| 156 // Maintain the expected CpuUpdateInfo. | 156 // Maintain the expected CpuUpdateInfo. |
| 157 std::vector<TestCpuUpdateInfo> expected_cpu_update_result_; | 157 std::vector<TestCpuUpdateInfo> expected_cpu_update_result_; |
| 158 }; | 158 }; |
| 159 | 159 |
| 160 CpuInfoProviderTest::CpuInfoProviderTest() | 160 CpuInfoProviderTest::CpuInfoProviderTest() |
| 161 : message_loop_(MessageLoop::TYPE_UI), | 161 : message_loop_(base::MessageLoop::TYPE_UI), |
| 162 ui_thread_(BrowserThread::UI, &message_loop_), | 162 ui_thread_(BrowserThread::UI, &message_loop_), |
| 163 file_thread_(BrowserThread::FILE, &message_loop_) { | 163 file_thread_(BrowserThread::FILE, &message_loop_) { |
| 164 } | 164 } |
| 165 | 165 |
| 166 void CpuInfoProviderTest::OnCheckCpuSamplingFinishedForTesting( | 166 void CpuInfoProviderTest::OnCheckCpuSamplingFinishedForTesting( |
| 167 scoped_ptr<CpuUpdateInfo> info) { | 167 scoped_ptr<CpuUpdateInfo> info) { |
| 168 // The cpu sampling is doing in FILE thread, so the callback function | 168 // The cpu sampling is doing in FILE thread, so the callback function |
| 169 // should be also called in FILE thread. | 169 // should be also called in FILE thread. |
| 170 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 170 ASSERT_TRUE(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 171 | 171 |
| 172 // Once the sampling completed, we need to quit the FILE thread to given | 172 // Once the sampling completed, we need to quit the FILE thread to given |
| 173 // UI thread a chance to verify results. | 173 // UI thread a chance to verify results. |
| 174 if (cpu_info_provider_->is_complete_sampling()) { | 174 if (cpu_info_provider_->is_complete_sampling()) { |
| 175 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 175 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
| 176 MessageLoop::QuitClosure()); | 176 base::MessageLoop::QuitClosure()); |
| 177 } | 177 } |
| 178 | 178 |
| 179 TestCpuUpdateInfo result; | 179 TestCpuUpdateInfo result; |
| 180 result.average_usage = info->average_usage; | 180 result.average_usage = info->average_usage; |
| 181 result.usage_per_processor = info->usage_per_processor; | 181 result.usage_per_processor = info->usage_per_processor; |
| 182 cpu_update_result_.push_back(result); | 182 cpu_update_result_.push_back(result); |
| 183 } | 183 } |
| 184 | 184 |
| 185 void CpuInfoProviderTest::CalculateExpectedResult() { | 185 void CpuInfoProviderTest::CalculateExpectedResult() { |
| 186 TestCpuInfoProvider::TestingCpuTimeDataPointer cpu_time_testing_data = | 186 TestCpuInfoProvider::TestingCpuTimeDataPointer cpu_time_testing_data = |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 base::Bind(&CpuInfoProviderTest::OnCheckCpuSamplingFinishedForTesting, | 273 base::Bind(&CpuInfoProviderTest::OnCheckCpuSamplingFinishedForTesting, |
| 274 base::Unretained(this))); | 274 base::Unretained(this))); |
| 275 content::RunAllPendingInMessageLoop(content::BrowserThread::FILE); | 275 content::RunAllPendingInMessageLoop(content::BrowserThread::FILE); |
| 276 content::RunMessageLoop(); | 276 content::RunMessageLoop(); |
| 277 cpu_info_provider_->StopSampling(); | 277 cpu_info_provider_->StopSampling(); |
| 278 content::RunAllPendingInMessageLoop(content::BrowserThread::FILE); | 278 content::RunAllPendingInMessageLoop(content::BrowserThread::FILE); |
| 279 VerifyResult(); | 279 VerifyResult(); |
| 280 } | 280 } |
| 281 | 281 |
| 282 } | 282 } |
| OLD | NEW |