diff --git a/metrics/uploader/system_profile_setter.h b/metrics/uploader/system_profile_setter.h index 1e2baab49..c535664a0 100644 --- a/metrics/uploader/system_profile_setter.h +++ b/metrics/uploader/system_profile_setter.h @@ -13,6 +13,7 @@ class ChromeUserMetricsExtension; // information to simplify testing. class SystemProfileSetter { public: + virtual ~SystemProfileSetter() {} // Populates the protobuf with system informations. virtual void Populate(metrics::ChromeUserMetricsExtension* profile_proto) = 0; }; diff --git a/metrics/uploader/upload_service.cc b/metrics/uploader/upload_service.cc index 62f5d920e..8b8e351bb 100644 --- a/metrics/uploader/upload_service.cc +++ b/metrics/uploader/upload_service.cc @@ -53,7 +53,7 @@ void UploadService::StartNewLog() { CHECK(!staged_log_) << "the staged log should be discarded before starting " "a new metrics log"; MetricsLog* log = new MetricsLog(); - log->PopulateSystemProfile(system_profile_setter_); + log->PopulateSystemProfile(system_profile_setter_.get()); current_log_.reset(log); } diff --git a/metrics/uploader/upload_service.h b/metrics/uploader/upload_service.h index 80b1bf371..d677424e1 100644 --- a/metrics/uploader/upload_service.h +++ b/metrics/uploader/upload_service.h @@ -12,6 +12,7 @@ #include "base/metrics/histogram_snapshot_manager.h" #include "uploader/metrics_log.h" #include "uploader/sender.h" +#include "uploader/system_profile_cache.h" namespace metrics { class ChromeUserMetricsExtension; @@ -126,7 +127,7 @@ class UploadService : public base::HistogramFlattener { // Returns the current log. If there is no current log, creates it first. MetricsLog* GetOrCreateCurrentLog(); - SystemProfileSetter* system_profile_setter_; + scoped_ptr system_profile_setter_; base::HistogramSnapshotManager histogram_snapshot_manager_; scoped_ptr sender_; int failed_upload_count_; diff --git a/metrics/uploader/upload_service_test.cc b/metrics/uploader/upload_service_test.cc index 7a82624fa..5076e614c 100644 --- a/metrics/uploader/upload_service_test.cc +++ b/metrics/uploader/upload_service_test.cc @@ -25,7 +25,7 @@ class UploadServiceTest : public testing::Test { : upload_service_(), exit_manager_(new base::AtExitManager()) { sender_ = new SenderMock; upload_service_.sender_.reset(sender_); - upload_service_.system_profile_setter_ = new MockSystemProfileSetter(); + upload_service_.system_profile_setter_.reset(new MockSystemProfileSetter()); upload_service_.Init(); } @@ -46,7 +46,7 @@ class UploadServiceTest : public testing::Test { } base::ScopedTempDir dir_; - SenderMock *sender_; + SenderMock* sender_; SystemProfileCache cache_; UploadService upload_service_; @@ -191,8 +191,12 @@ TEST_F(UploadServiceTest, ValuesInConfigFileAreSent) { base::SysInfo::SetChromeOSVersionInfoForTest(content, base::Time()); scoped_ptr histogram = metrics::MetricSample::SparseHistogramSample("myhistogram", 1); + SystemProfileCache* local_cache_ = new SystemProfileCache; + local_cache_->is_testing_ = true; + local_cache_->session_id_.reset(new chromeos_metrics::PersistentInteger( + dir_.path().Append("session_id").value())); - upload_service_.system_profile_setter_ = &cache_; + upload_service_.system_profile_setter_.reset(local_cache_); // Reset to create the new log with the profile setter. upload_service_.Reset(); upload_service_.AddSample(*histogram.get());