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

Side by Side Diff: chrome/browser/chromeos/policy/system_log_uploader_unittest.cc

Issue 2296923003: Make TestSimpleTaskRunner thread-safe. (Closed)
Patch Set: fix asan error Created 4 years, 3 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 (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 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 "chrome/browser/chromeos/policy/system_log_uploader.h" 5 #include "chrome/browser/chromeos/policy/system_log_uploader.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 content::RunAllBlockingPoolTasksUntilIdle(); 155 content::RunAllBlockingPoolTasksUntilIdle();
156 } 156 }
157 157
158 // Given a pending task to upload system logs. 158 // Given a pending task to upload system logs.
159 void RunPendingUploadTaskAndCheckNext(const SystemLogUploader& uploader, 159 void RunPendingUploadTaskAndCheckNext(const SystemLogUploader& uploader,
160 base::TimeDelta expected_delay) { 160 base::TimeDelta expected_delay) {
161 EXPECT_FALSE(task_runner_->GetPendingTasks().empty()); 161 EXPECT_FALSE(task_runner_->GetPendingTasks().empty());
162 task_runner_->RunPendingTasks(); 162 task_runner_->RunPendingTasks();
163 163
164 // The previous task should have uploaded another log upload task. 164 // The previous task should have uploaded another log upload task.
165 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); 165 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
166 166
167 CheckPendingTaskDelay(uploader, expected_delay); 167 CheckPendingTaskDelay(uploader, expected_delay);
168 } 168 }
169 169
170 void CheckPendingTaskDelay(const SystemLogUploader& uploader, 170 void CheckPendingTaskDelay(const SystemLogUploader& uploader,
171 base::TimeDelta expected_delay) { 171 base::TimeDelta expected_delay) {
172 // The next task should be scheduled sometime between 172 // The next task should be scheduled sometime between
173 // |last_upload_attempt| + |expected_delay| and 173 // |last_upload_attempt| + |expected_delay| and
174 // |now| + |expected_delay|. 174 // |now| + |expected_delay|.
175 base::Time now = base::Time::NowFromSystemTime(); 175 base::Time now = base::Time::NowFromSystemTime();
(...skipping 24 matching lines...) Expand all
200 // One success task pending. 200 // One success task pending.
201 TEST_F(SystemLogUploaderTest, SuccessTest) { 201 TEST_F(SystemLogUploaderTest, SuccessTest) {
202 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); 202 EXPECT_TRUE(task_runner_->GetPendingTasks().empty());
203 203
204 std::unique_ptr<MockSystemLogDelegate> syslog_delegate( 204 std::unique_ptr<MockSystemLogDelegate> syslog_delegate(
205 new MockSystemLogDelegate(false, SystemLogUploader::SystemLogs())); 205 new MockSystemLogDelegate(false, SystemLogUploader::SystemLogs()));
206 syslog_delegate->set_upload_allowed(true); 206 syslog_delegate->set_upload_allowed(true);
207 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); 207 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true);
208 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); 208 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_);
209 209
210 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); 210 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
211 211
212 RunPendingUploadTaskAndCheckNext( 212 RunPendingUploadTaskAndCheckNext(
213 uploader, base::TimeDelta::FromMilliseconds( 213 uploader, base::TimeDelta::FromMilliseconds(
214 SystemLogUploader::kDefaultUploadDelayMs)); 214 SystemLogUploader::kDefaultUploadDelayMs));
215 } 215 }
216 216
217 // Three failed responses recieved. 217 // Three failed responses recieved.
218 TEST_F(SystemLogUploaderTest, ThreeFailureTest) { 218 TEST_F(SystemLogUploaderTest, ThreeFailureTest) {
219 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); 219 EXPECT_TRUE(task_runner_->GetPendingTasks().empty());
220 220
221 std::unique_ptr<MockSystemLogDelegate> syslog_delegate( 221 std::unique_ptr<MockSystemLogDelegate> syslog_delegate(
222 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs())); 222 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs()));
223 syslog_delegate->set_upload_allowed(true); 223 syslog_delegate->set_upload_allowed(true);
224 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); 224 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true);
225 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); 225 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_);
226 226
227 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); 227 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
228 228
229 // Do not retry two times consequentially. 229 // Do not retry two times consequentially.
230 RunPendingUploadTaskAndCheckNext(uploader, 230 RunPendingUploadTaskAndCheckNext(uploader,
231 base::TimeDelta::FromMilliseconds( 231 base::TimeDelta::FromMilliseconds(
232 SystemLogUploader::kErrorUploadDelayMs)); 232 SystemLogUploader::kErrorUploadDelayMs));
233 // We are using the kDefaultUploadDelayMs and not the kErrorUploadDelayMs here 233 // We are using the kDefaultUploadDelayMs and not the kErrorUploadDelayMs here
234 // because there's just one retry. 234 // because there's just one retry.
235 RunPendingUploadTaskAndCheckNext( 235 RunPendingUploadTaskAndCheckNext(
236 uploader, base::TimeDelta::FromMilliseconds( 236 uploader, base::TimeDelta::FromMilliseconds(
237 SystemLogUploader::kDefaultUploadDelayMs)); 237 SystemLogUploader::kDefaultUploadDelayMs));
238 RunPendingUploadTaskAndCheckNext(uploader, 238 RunPendingUploadTaskAndCheckNext(uploader,
239 base::TimeDelta::FromMilliseconds( 239 base::TimeDelta::FromMilliseconds(
240 SystemLogUploader::kErrorUploadDelayMs)); 240 SystemLogUploader::kErrorUploadDelayMs));
241 } 241 }
242 242
243 // Check header fields of system log files to upload. 243 // Check header fields of system log files to upload.
244 TEST_F(SystemLogUploaderTest, CheckHeaders) { 244 TEST_F(SystemLogUploaderTest, CheckHeaders) {
245 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); 245 EXPECT_TRUE(task_runner_->GetPendingTasks().empty());
246 246
247 SystemLogUploader::SystemLogs system_logs = GenerateTestSystemLogFiles(); 247 SystemLogUploader::SystemLogs system_logs = GenerateTestSystemLogFiles();
248 std::unique_ptr<MockSystemLogDelegate> syslog_delegate( 248 std::unique_ptr<MockSystemLogDelegate> syslog_delegate(
249 new MockSystemLogDelegate(false, system_logs)); 249 new MockSystemLogDelegate(false, system_logs));
250 syslog_delegate->set_upload_allowed(true); 250 syslog_delegate->set_upload_allowed(true);
251 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); 251 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true);
252 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); 252 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_);
253 253
254 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); 254 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
255 255
256 RunPendingUploadTaskAndCheckNext( 256 RunPendingUploadTaskAndCheckNext(
257 uploader, base::TimeDelta::FromMilliseconds( 257 uploader, base::TimeDelta::FromMilliseconds(
258 SystemLogUploader::kDefaultUploadDelayMs)); 258 SystemLogUploader::kDefaultUploadDelayMs));
259 } 259 }
260 260
261 // Disable system log uploads after one failed log upload. 261 // Disable system log uploads after one failed log upload.
262 TEST_F(SystemLogUploaderTest, DisableLogUpload) { 262 TEST_F(SystemLogUploaderTest, DisableLogUpload) {
263 EXPECT_TRUE(task_runner_->GetPendingTasks().empty()); 263 EXPECT_TRUE(task_runner_->GetPendingTasks().empty());
264 264
265 std::unique_ptr<MockSystemLogDelegate> syslog_delegate( 265 std::unique_ptr<MockSystemLogDelegate> syslog_delegate(
266 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs())); 266 new MockSystemLogDelegate(true, SystemLogUploader::SystemLogs()));
267 MockSystemLogDelegate* mock_delegate = syslog_delegate.get(); 267 MockSystemLogDelegate* mock_delegate = syslog_delegate.get();
268 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true); 268 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, true);
269 mock_delegate->set_upload_allowed(true); 269 mock_delegate->set_upload_allowed(true);
270 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_); 270 SystemLogUploader uploader(std::move(syslog_delegate), task_runner_);
271 271
272 EXPECT_EQ(1U, task_runner_->GetPendingTasks().size()); 272 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
273 RunPendingUploadTaskAndCheckNext(uploader, 273 RunPendingUploadTaskAndCheckNext(uploader,
274 base::TimeDelta::FromMilliseconds( 274 base::TimeDelta::FromMilliseconds(
275 SystemLogUploader::kErrorUploadDelayMs)); 275 SystemLogUploader::kErrorUploadDelayMs));
276 276
277 // Disable log upload and check that frequency is usual, because there is no 277 // Disable log upload and check that frequency is usual, because there is no
278 // errors, we should not upload logs. 278 // errors, we should not upload logs.
279 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, false); 279 settings_helper_.SetBoolean(chromeos::kSystemLogUploadEnabled, false);
280 mock_delegate->set_upload_allowed(false); 280 mock_delegate->set_upload_allowed(false);
281 task_runner_->RunPendingTasks(); 281 task_runner_->RunPendingTasks();
282 282
(...skipping 28 matching lines...) Expand all
311 "<IPv4: 1>55\n" 311 "<IPv4: 1>55\n"
312 "aaaa<IPv4: 2>aaa\n" 312 "aaaa<IPv4: 2>aaa\n"
313 "11:11;<IPv6: 1>\n" 313 "11:11;<IPv6: 1>\n"
314 "<IPv6: 1>\n" 314 "<IPv6: 1>\n"
315 "11:11:abcdef:0:0:0:0:0\n" 315 "11:11:abcdef:0:0:0:0:0\n"
316 "aa:aa:aa:00:00:01"; 316 "aa:aa:aa:00:00:01";
317 EXPECT_EQ(result, SystemLogUploader::RemoveSensitiveData(&anonymizer, data)); 317 EXPECT_EQ(result, SystemLogUploader::RemoveSensitiveData(&anonymizer, data));
318 } 318 }
319 319
320 } // namespace policy 320 } // namespace policy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698