| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/file_metrics_provider.h" | 5 #include "components/metrics/file_metrics_provider.h" |
| 6 | 6 |
| 7 #include <functional> | 7 #include <functional> |
| 8 | 8 |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/files/memory_mapped_file.h" | 10 #include "base/files/memory_mapped_file.h" |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 80 |
| 81 FileMetricsProviderTest() | 81 FileMetricsProviderTest() |
| 82 : create_large_files_(GetParam()), | 82 : create_large_files_(GetParam()), |
| 83 task_runner_(new base::TestSimpleTaskRunner()), | 83 task_runner_(new base::TestSimpleTaskRunner()), |
| 84 thread_task_runner_handle_(task_runner_), | 84 thread_task_runner_handle_(task_runner_), |
| 85 statistics_recorder_( | 85 statistics_recorder_( |
| 86 base::StatisticsRecorder::CreateTemporaryForTesting()), | 86 base::StatisticsRecorder::CreateTemporaryForTesting()), |
| 87 prefs_(new TestingPrefServiceSimple) { | 87 prefs_(new TestingPrefServiceSimple) { |
| 88 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); | 88 EXPECT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 89 FileMetricsProvider::RegisterPrefs(prefs_->registry(), kMetricsName); | 89 FileMetricsProvider::RegisterPrefs(prefs_->registry(), kMetricsName); |
| 90 FileMetricsProvider::SetTaskRunnerForTesting(task_runner_); |
| 90 } | 91 } |
| 91 | 92 |
| 92 ~FileMetricsProviderTest() override { | 93 ~FileMetricsProviderTest() override { |
| 93 // Clear out any final remaining tasks. | 94 // Clear out any final remaining tasks. |
| 94 task_runner_->RunUntilIdle(); | 95 task_runner_->RunUntilIdle(); |
| 95 // If a global histogram allocator exists at this point then it likely | 96 // If a global histogram allocator exists at this point then it likely |
| 96 // acquired histograms that will continue to point to the released | 97 // acquired histograms that will continue to point to the released |
| 97 // memory and potentially cause use-after-free memory corruption. | 98 // memory and potentially cause use-after-free memory corruption. |
| 98 DCHECK(!base::GlobalHistogramAllocator::Get()); | 99 DCHECK(!base::GlobalHistogramAllocator::Get()); |
| 99 } | 100 } |
| 100 | 101 |
| 101 TestingPrefServiceSimple* prefs() { return prefs_.get(); } | 102 TestingPrefServiceSimple* prefs() { return prefs_.get(); } |
| 102 base::FilePath temp_dir() { return temp_dir_.GetPath(); } | 103 base::FilePath temp_dir() { return temp_dir_.GetPath(); } |
| 103 base::FilePath metrics_file() { | 104 base::FilePath metrics_file() { |
| 104 return temp_dir_.GetPath().AppendASCII(kMetricsFilename); | 105 return temp_dir_.GetPath().AppendASCII(kMetricsFilename); |
| 105 } | 106 } |
| 106 | 107 |
| 107 FileMetricsProvider* provider() { | 108 FileMetricsProvider* provider() { |
| 108 if (!provider_) | 109 if (!provider_) |
| 109 provider_.reset(new FileMetricsProvider(task_runner_, prefs())); | 110 provider_.reset(new FileMetricsProvider(prefs())); |
| 110 return provider_.get(); | 111 return provider_.get(); |
| 111 } | 112 } |
| 112 | 113 |
| 113 void OnDidCreateMetricsLog() { | 114 void OnDidCreateMetricsLog() { |
| 114 provider()->OnDidCreateMetricsLog(); | 115 provider()->OnDidCreateMetricsLog(); |
| 115 } | 116 } |
| 116 | 117 |
| 117 bool HasInitialStabilityMetrics() { | 118 bool HasInitialStabilityMetrics() { |
| 118 return provider()->HasInitialStabilityMetrics(); | 119 return provider()->HasInitialStabilityMetrics(); |
| 119 } | 120 } |
| (...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 591 EXPECT_TRUE(ProvideIndependentMetrics(&profile, &snapshot_manager)); | 592 EXPECT_TRUE(ProvideIndependentMetrics(&profile, &snapshot_manager)); |
| 592 EXPECT_FALSE(ProvideIndependentMetrics(&profile, &snapshot_manager)); | 593 EXPECT_FALSE(ProvideIndependentMetrics(&profile, &snapshot_manager)); |
| 593 } | 594 } |
| 594 EXPECT_TRUE(base::PathExists(metrics_file())); | 595 EXPECT_TRUE(base::PathExists(metrics_file())); |
| 595 OnDidCreateMetricsLog(); | 596 OnDidCreateMetricsLog(); |
| 596 RunTasks(); | 597 RunTasks(); |
| 597 EXPECT_FALSE(base::PathExists(metrics_file())); | 598 EXPECT_FALSE(base::PathExists(metrics_file())); |
| 598 } | 599 } |
| 599 | 600 |
| 600 } // namespace metrics | 601 } // namespace metrics |
| OLD | NEW |