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

Side by Side Diff: components/metrics/metrics_service_unittest.cc

Issue 2918533003: Send metrics with embedded system profiles after system startup. (Closed)
Patch Set: fixed tests on mac Created 3 years, 6 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/metrics/metrics_service.h" 5 #include "components/metrics/metrics_service.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 } 484 }
485 485
486 TEST_F(MetricsServiceTest, SplitRotation) { 486 TEST_F(MetricsServiceTest, SplitRotation) {
487 TestMetricsServiceClient client; 487 TestMetricsServiceClient client;
488 TestMetricsService service(GetMetricsStateManager(), &client, 488 TestMetricsService service(GetMetricsStateManager(), &client,
489 GetLocalState()); 489 GetLocalState());
490 service.InitializeMetricsRecordingState(); 490 service.InitializeMetricsRecordingState();
491 service.Start(); 491 service.Start();
492 // Rotation loop should create a log and mark state as idle. 492 // Rotation loop should create a log and mark state as idle.
493 // Upload loop should start upload or be restarted. 493 // Upload loop should start upload or be restarted.
494 // The independent-metrics upload job will be started and always be a task.
494 task_runner_->RunPendingTasks(); 495 task_runner_->RunPendingTasks();
495 // Rotation loop should terminated due to being idle. 496 // Rotation loop should terminated due to being idle.
496 // Upload loop should start uploading if it isn't already. 497 // Upload loop should start uploading if it isn't already.
497 task_runner_->RunPendingTasks(); 498 task_runner_->RunPendingTasks();
498 EXPECT_TRUE(client.uploader()->is_uploading()); 499 EXPECT_TRUE(client.uploader()->is_uploading());
499 EXPECT_EQ(0U, task_runner_->NumPendingTasks()); 500 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
500 service.OnApplicationNotIdle(); 501 service.OnApplicationNotIdle();
501 EXPECT_TRUE(client.uploader()->is_uploading()); 502 EXPECT_TRUE(client.uploader()->is_uploading());
502 EXPECT_EQ(1U, task_runner_->NumPendingTasks()); 503 EXPECT_EQ(2U, task_runner_->NumPendingTasks());
503 // Log generation should be suppressed due to unsent log. 504 // Log generation should be suppressed due to unsent log.
504 // Idle state should not be reset. 505 // Idle state should not be reset.
505 task_runner_->RunPendingTasks(); 506 task_runner_->RunPendingTasks();
506 EXPECT_TRUE(client.uploader()->is_uploading()); 507 EXPECT_TRUE(client.uploader()->is_uploading());
507 EXPECT_EQ(1U, task_runner_->NumPendingTasks()); 508 EXPECT_EQ(2U, task_runner_->NumPendingTasks());
508 // Make sure idle state was not reset. 509 // Make sure idle state was not reset.
509 task_runner_->RunPendingTasks(); 510 task_runner_->RunPendingTasks();
510 EXPECT_TRUE(client.uploader()->is_uploading()); 511 EXPECT_TRUE(client.uploader()->is_uploading());
511 EXPECT_EQ(1U, task_runner_->NumPendingTasks()); 512 EXPECT_EQ(2U, task_runner_->NumPendingTasks());
512 // Upload should not be rescheduled, since there are no other logs. 513 // Upload should not be rescheduled, since there are no other logs.
513 client.uploader()->CompleteUpload(200); 514 client.uploader()->CompleteUpload(200);
514 EXPECT_FALSE(client.uploader()->is_uploading()); 515 EXPECT_FALSE(client.uploader()->is_uploading());
515 EXPECT_EQ(1U, task_runner_->NumPendingTasks()); 516 EXPECT_EQ(2U, task_runner_->NumPendingTasks());
516 // Running should generate a log, restart upload loop, and mark idle. 517 // Running should generate a log, restart upload loop, and mark idle.
517 task_runner_->RunPendingTasks(); 518 task_runner_->RunPendingTasks();
518 EXPECT_FALSE(client.uploader()->is_uploading()); 519 EXPECT_FALSE(client.uploader()->is_uploading());
519 EXPECT_EQ(2U, task_runner_->NumPendingTasks()); 520 EXPECT_EQ(3U, task_runner_->NumPendingTasks());
520 // Upload should start, and rotation loop should idle out. 521 // Upload should start, and rotation loop should idle out.
521 task_runner_->RunPendingTasks(); 522 task_runner_->RunPendingTasks();
522 EXPECT_TRUE(client.uploader()->is_uploading()); 523 EXPECT_TRUE(client.uploader()->is_uploading());
523 EXPECT_EQ(0U, task_runner_->NumPendingTasks()); 524 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
524 // Uploader should reschedule when there is another log available. 525 // Uploader should reschedule when there is another log available.
525 service.PushExternalLog("Blah"); 526 service.PushExternalLog("Blah");
526 client.uploader()->CompleteUpload(200); 527 client.uploader()->CompleteUpload(200);
527 EXPECT_FALSE(client.uploader()->is_uploading()); 528 EXPECT_FALSE(client.uploader()->is_uploading());
528 EXPECT_EQ(1U, task_runner_->NumPendingTasks()); 529 EXPECT_EQ(2U, task_runner_->NumPendingTasks());
529 // Upload should start. 530 // Upload should start.
530 task_runner_->RunPendingTasks(); 531 task_runner_->RunPendingTasks();
531 EXPECT_TRUE(client.uploader()->is_uploading()); 532 EXPECT_TRUE(client.uploader()->is_uploading());
532 EXPECT_EQ(0U, task_runner_->NumPendingTasks()); 533 EXPECT_EQ(1U, task_runner_->NumPendingTasks());
533 } 534 }
534 535
535 TEST_F(MetricsServiceTest, GetSyntheticFieldTrialActiveGroups) { 536 TEST_F(MetricsServiceTest, GetSyntheticFieldTrialActiveGroups) {
536 TestMetricsServiceClient client; 537 TestMetricsServiceClient client;
537 MetricsService service(GetMetricsStateManager(), &client, GetLocalState()); 538 MetricsService service(GetMetricsStateManager(), &client, GetLocalState());
538 539
539 // Instantiate and setup the corresponding singleton observer which tracks the 540 // Instantiate and setup the corresponding singleton observer which tracks the
540 // creation of all SyntheticTrialGroups. 541 // creation of all SyntheticTrialGroups.
541 service.AddSyntheticTrialObserver( 542 service.AddSyntheticTrialObserver(
542 variations::SyntheticTrialsActiveGroupIdProvider::GetInstance()); 543 variations::SyntheticTrialsActiveGroupIdProvider::GetInstance());
(...skipping 18 matching lines...) Expand all
561 std::string trial1_hash = 562 std::string trial1_hash =
562 base::StringPrintf("%x-%x", trial1.id.name, trial1.id.group); 563 base::StringPrintf("%x-%x", trial1.id.name, trial1.id.group);
563 EXPECT_TRUE(base::ContainsValue(output, trial1_hash)); 564 EXPECT_TRUE(base::ContainsValue(output, trial1_hash));
564 565
565 std::string trial2_hash = 566 std::string trial2_hash =
566 base::StringPrintf("%x-%x", trial2.id.name, trial2.id.group); 567 base::StringPrintf("%x-%x", trial2.id.name, trial2.id.group);
567 EXPECT_TRUE(base::ContainsValue(output, trial2_hash)); 568 EXPECT_TRUE(base::ContainsValue(output, trial2_hash));
568 } 569 }
569 570
570 } // namespace metrics 571 } // namespace metrics
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698