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

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

Issue 1030503003: Metrics log modification to handle external components. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: newlinewq Created 5 years, 9 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
« no previous file with comments | « components/metrics/metrics_log_manager.h ('k') | components/metrics/metrics_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_log.h" 5 #include "components/metrics/metrics_log.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base64.h" 9 #include "base/base64.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 TestMetricsLog log( 243 TestMetricsLog log(
244 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 244 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
245 245
246 std::vector<variations::ActiveGroupId> synthetic_trials; 246 std::vector<variations::ActiveGroupId> synthetic_trials;
247 // Add two synthetic trials. 247 // Add two synthetic trials.
248 synthetic_trials.push_back(kSyntheticTrials[0]); 248 synthetic_trials.push_back(kSyntheticTrials[0]);
249 synthetic_trials.push_back(kSyntheticTrials[1]); 249 synthetic_trials.push_back(kSyntheticTrials[1]);
250 250
251 log.RecordEnvironment(std::vector<MetricsProvider*>(), 251 log.RecordEnvironment(std::vector<MetricsProvider*>(),
252 synthetic_trials, 252 synthetic_trials,
253 kInstallDate); 253 kInstallDate, kEnabledDate);
254 // Check that the system profile on the log has the correct values set. 254 // Check that the system profile on the log has the correct values set.
255 CheckSystemProfile(log.system_profile()); 255 CheckSystemProfile(log.system_profile());
256 256
257 // Check that the system profile has also been written to prefs. 257 // Check that the system profile has also been written to prefs.
258 const std::string base64_system_profile = 258 const std::string base64_system_profile =
259 prefs_.GetString(prefs::kStabilitySavedSystemProfile); 259 prefs_.GetString(prefs::kStabilitySavedSystemProfile);
260 EXPECT_FALSE(base64_system_profile.empty()); 260 EXPECT_FALSE(base64_system_profile.empty());
261 std::string serialied_system_profile; 261 std::string serialied_system_profile;
262 EXPECT_TRUE(base::Base64Decode(base64_system_profile, 262 EXPECT_TRUE(base::Base64Decode(base64_system_profile,
263 &serialied_system_profile)); 263 &serialied_system_profile));
(...skipping 15 matching lines...) Expand all
279 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 279 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
280 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs()); 280 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs());
281 } 281 }
282 282
283 // Do a RecordEnvironment() call and check whether the pref is recorded. 283 // Do a RecordEnvironment() call and check whether the pref is recorded.
284 { 284 {
285 TestMetricsLog log( 285 TestMetricsLog log(
286 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 286 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
287 log.RecordEnvironment(std::vector<MetricsProvider*>(), 287 log.RecordEnvironment(std::vector<MetricsProvider*>(),
288 std::vector<variations::ActiveGroupId>(), 288 std::vector<variations::ActiveGroupId>(),
289 kInstallDate); 289 kInstallDate, kEnabledDate);
290 EXPECT_FALSE(prefs_.GetString(kSystemProfilePref).empty()); 290 EXPECT_FALSE(prefs_.GetString(kSystemProfilePref).empty());
291 EXPECT_FALSE(prefs_.GetString(kSystemProfileHashPref).empty()); 291 EXPECT_FALSE(prefs_.GetString(kSystemProfileHashPref).empty());
292 } 292 }
293 293
294 { 294 {
295 TestMetricsLog log( 295 TestMetricsLog log(
296 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 296 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
297 EXPECT_TRUE(log.LoadSavedEnvironmentFromPrefs()); 297 EXPECT_TRUE(log.LoadSavedEnvironmentFromPrefs());
298 // Check some values in the system profile. 298 // Check some values in the system profile.
299 EXPECT_EQ(kInstallDateExpected, log.system_profile().install_date()); 299 EXPECT_EQ(kInstallDateExpected, log.system_profile().install_date());
300 EXPECT_EQ(kEnabledDateExpected, log.system_profile().uma_enabled_date()); 300 EXPECT_EQ(kEnabledDateExpected, log.system_profile().uma_enabled_date());
301 // Ensure that the call cleared the prefs. 301 // Ensure that the call cleared the prefs.
302 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); 302 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty());
303 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); 303 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty());
304 } 304 }
305 305
306 // Ensure that a non-matching hash results in the pref being invalid. 306 // Ensure that a non-matching hash results in the pref being invalid.
307 { 307 {
308 TestMetricsLog log( 308 TestMetricsLog log(
309 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 309 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
310 // Call RecordEnvironment() to record the pref again. 310 // Call RecordEnvironment() to record the pref again.
311 log.RecordEnvironment(std::vector<MetricsProvider*>(), 311 log.RecordEnvironment(std::vector<MetricsProvider*>(),
312 std::vector<variations::ActiveGroupId>(), 312 std::vector<variations::ActiveGroupId>(),
313 kInstallDate); 313 kInstallDate, kEnabledDate);
314 } 314 }
315 315
316 { 316 {
317 // Set the hash to a bad value. 317 // Set the hash to a bad value.
318 prefs_.SetString(kSystemProfileHashPref, "deadbeef"); 318 prefs_.SetString(kSystemProfileHashPref, "deadbeef");
319 TestMetricsLog log( 319 TestMetricsLog log(
320 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 320 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
321 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs()); 321 EXPECT_FALSE(log.LoadSavedEnvironmentFromPrefs());
322 // Ensure that the prefs are cleared, even if the call failed. 322 // Ensure that the prefs are cleared, even if the call failed.
323 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty()); 323 EXPECT_TRUE(prefs_.GetString(kSystemProfilePref).empty());
324 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty()); 324 EXPECT_TRUE(prefs_.GetString(kSystemProfileHashPref).empty());
325 } 325 }
326 } 326 }
327 327
328 TEST_F(MetricsLogTest, InitialLogStabilityMetrics) { 328 TEST_F(MetricsLogTest, InitialLogStabilityMetrics) {
329 TestMetricsServiceClient client; 329 TestMetricsServiceClient client;
330 TestMetricsLog log(kClientId, 330 TestMetricsLog log(kClientId,
331 kSessionId, 331 kSessionId,
332 MetricsLog::INITIAL_STABILITY_LOG, 332 MetricsLog::INITIAL_STABILITY_LOG,
333 &client, 333 &client,
334 &prefs_); 334 &prefs_);
335 std::vector<MetricsProvider*> metrics_providers; 335 std::vector<MetricsProvider*> metrics_providers;
336 log.RecordEnvironment(metrics_providers, 336 log.RecordEnvironment(metrics_providers,
337 std::vector<variations::ActiveGroupId>(), 337 std::vector<variations::ActiveGroupId>(),
338 kInstallDate); 338 kInstallDate, kEnabledDate);
339 log.RecordStabilityMetrics(metrics_providers, base::TimeDelta(), 339 log.RecordStabilityMetrics(metrics_providers, base::TimeDelta(),
340 base::TimeDelta()); 340 base::TimeDelta());
341 const SystemProfileProto_Stability& stability = 341 const SystemProfileProto_Stability& stability =
342 log.system_profile().stability(); 342 log.system_profile().stability();
343 // Required metrics: 343 // Required metrics:
344 EXPECT_TRUE(stability.has_launch_count()); 344 EXPECT_TRUE(stability.has_launch_count());
345 EXPECT_TRUE(stability.has_crash_count()); 345 EXPECT_TRUE(stability.has_crash_count());
346 // Initial log metrics: 346 // Initial log metrics:
347 EXPECT_TRUE(stability.has_incomplete_shutdown_count()); 347 EXPECT_TRUE(stability.has_incomplete_shutdown_count());
348 EXPECT_TRUE(stability.has_breakpad_registration_success_count()); 348 EXPECT_TRUE(stability.has_breakpad_registration_success_count());
349 EXPECT_TRUE(stability.has_breakpad_registration_failure_count()); 349 EXPECT_TRUE(stability.has_breakpad_registration_failure_count());
350 EXPECT_TRUE(stability.has_debugger_present_count()); 350 EXPECT_TRUE(stability.has_debugger_present_count());
351 EXPECT_TRUE(stability.has_debugger_not_present_count()); 351 EXPECT_TRUE(stability.has_debugger_not_present_count());
352 } 352 }
353 353
354 TEST_F(MetricsLogTest, OngoingLogStabilityMetrics) { 354 TEST_F(MetricsLogTest, OngoingLogStabilityMetrics) {
355 TestMetricsServiceClient client; 355 TestMetricsServiceClient client;
356 TestMetricsLog log( 356 TestMetricsLog log(
357 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 357 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
358 std::vector<MetricsProvider*> metrics_providers; 358 std::vector<MetricsProvider*> metrics_providers;
359 log.RecordEnvironment(metrics_providers, 359 log.RecordEnvironment(metrics_providers,
360 std::vector<variations::ActiveGroupId>(), 360 std::vector<variations::ActiveGroupId>(),
361 kInstallDate); 361 kInstallDate, kEnabledDate);
362 log.RecordStabilityMetrics(metrics_providers, base::TimeDelta(), 362 log.RecordStabilityMetrics(metrics_providers, base::TimeDelta(),
363 base::TimeDelta()); 363 base::TimeDelta());
364 const SystemProfileProto_Stability& stability = 364 const SystemProfileProto_Stability& stability =
365 log.system_profile().stability(); 365 log.system_profile().stability();
366 // Required metrics: 366 // Required metrics:
367 EXPECT_TRUE(stability.has_launch_count()); 367 EXPECT_TRUE(stability.has_launch_count());
368 EXPECT_TRUE(stability.has_crash_count()); 368 EXPECT_TRUE(stability.has_crash_count());
369 // Initial log metrics: 369 // Initial log metrics:
370 EXPECT_FALSE(stability.has_incomplete_shutdown_count()); 370 EXPECT_FALSE(stability.has_incomplete_shutdown_count());
371 EXPECT_FALSE(stability.has_breakpad_registration_success_count()); 371 EXPECT_FALSE(stability.has_breakpad_registration_success_count());
(...skipping 27 matching lines...) Expand all
399 TestMetricsServiceClient client; 399 TestMetricsServiceClient client;
400 client.set_product(kTestProduct); 400 client.set_product(kTestProduct);
401 TestMetricsLog log( 401 TestMetricsLog log(
402 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_); 402 kClientId, kSessionId, MetricsLog::ONGOING_LOG, &client, &prefs_);
403 // Check that the product is set to |kTestProduct|. 403 // Check that the product is set to |kTestProduct|.
404 EXPECT_TRUE(log.uma_proto().has_product()); 404 EXPECT_TRUE(log.uma_proto().has_product());
405 EXPECT_EQ(kTestProduct, log.uma_proto().product()); 405 EXPECT_EQ(kTestProduct, log.uma_proto().product());
406 } 406 }
407 407
408 } // namespace metrics 408 } // namespace metrics
OLDNEW
« no previous file with comments | « components/metrics/metrics_log_manager.h ('k') | components/metrics/metrics_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698