diff options
| author | Bertrand SIMONNET <bsimonnet@google.com> | 2015-09-28 11:04:29 -0700 |
|---|---|---|
| committer | Bertrand SIMONNET <bsimonnet@google.com> | 2015-09-28 15:02:00 -0700 |
| commit | 3598d951a6c7fade22b50c0af8b51e28c62fc1ea (patch) | |
| tree | e8198fa2bbd18383ff8ce81cad1460f633b7f6fe | |
| parent | 12ede1332a5ec0f2dd11732bf2162156e06684b8 (diff) | |
metricsd: Fix race condition in the tests.
We cached the enabled status for metrics as a static field in the
metrics library. This field is not reset in between tests which treats
the metrics as enabled if they were enabled previously.
None of the users rely on the caching being static so the cached status
was changed into a field.
Also enabled the metrics in upload_service_test.cc after verifying that
the test failed consistently.
BUG: 24473349
TEST: unit tests.
Change-Id: If05fdca644016d923aa7b1978db5e74ada563c1a
| -rw-r--r-- | metricsd/include/metrics/metrics_library.h | 4 | ||||
| -rw-r--r-- | metricsd/metrics_library.cc | 7 | ||||
| -rw-r--r-- | metricsd/uploader/upload_service_test.cc | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/metricsd/include/metrics/metrics_library.h b/metricsd/include/metrics/metrics_library.h index 26df2f4737..5556e574c7 100644 --- a/metricsd/include/metrics/metrics_library.h +++ b/metricsd/include/metrics/metrics_library.h @@ -142,10 +142,10 @@ class MetricsLibrary : public MetricsLibraryInterface { bool* result); // Time at which we last checked if metrics were enabled. - static time_t cached_enabled_time_; + time_t cached_enabled_time_; // Cached state of whether or not metrics were enabled. - static bool cached_enabled_; + bool cached_enabled_; base::FilePath uma_events_file_; base::FilePath consent_file_; diff --git a/metricsd/metrics_library.cc b/metricsd/metrics_library.cc index 6449a2444f..310970405d 100644 --- a/metricsd/metrics_library.cc +++ b/metricsd/metrics_library.cc @@ -53,9 +53,6 @@ static const char *kCrosEventNames[] = { "TPM.EarlyResetDuringCommand", // 12 }; -time_t MetricsLibrary::cached_enabled_time_ = 0; -bool MetricsLibrary::cached_enabled_ = false; - MetricsLibrary::MetricsLibrary() {} MetricsLibrary::~MetricsLibrary() {} @@ -140,11 +137,15 @@ void MetricsLibrary::Init() { base::FilePath dir = base::FilePath(metrics::kMetricsDirectory); uma_events_file_ = dir.Append(metrics::kMetricsEventsFileName); consent_file_ = dir.Append(metrics::kConsentFileName); + cached_enabled_ = false; + cached_enabled_time_ = 0; } void MetricsLibrary::InitForTest(const base::FilePath& metrics_directory) { uma_events_file_ = metrics_directory.Append(metrics::kMetricsEventsFileName); consent_file_ = metrics_directory.Append(metrics::kConsentFileName); + cached_enabled_ = false; + cached_enabled_time_ = 0; } bool MetricsLibrary::SendToUMA(const std::string& name, diff --git a/metricsd/uploader/upload_service_test.cc b/metricsd/uploader/upload_service_test.cc index 0dd7db6e23..305fd0cb45 100644 --- a/metricsd/uploader/upload_service_test.cc +++ b/metricsd/uploader/upload_service_test.cc @@ -42,6 +42,8 @@ class UploadServiceTest : public testing::Test { chromeos_metrics::PersistentInteger::SetMetricsDirectory( dir_.path().value()); metrics_lib_.InitForTest(dir_.path()); + ASSERT_EQ(0, base::WriteFile( + dir_.path().Append(metrics::kConsentFileName), "", 0)); upload_service_.reset(new UploadService(new MockSystemProfileSetter(), &metrics_lib_, "", true)); |
