update_engine: Send UMA stats about kernel key versions
Adding the following UMA stats:
- UpdateEngine.KernelKey.MinVersion: Minimum kernel key version
already set in the TPM.
- UpdateEngine.KernelKey.MaxRollforwardVersion: Maximum kernel key
rollforward version set by update_engine.
- UpdateEngine.KernelKey.MaxRollforwardSetSuccess: Whether setting
the maximum kernely key rollforward version succeeded.
Chromium CL of the new histograms: crrev.com/c/1078750
BUG=chromium:843622
TEST='cros_run_unit_tests --board=caroline --packages update_engine'
Change-Id: I14192b5ff9c07f8a003e0589450202f488cccc01
Reviewed-on: https://chromium-review.googlesource.com/1078968
Commit-Ready: Zentaro Kavanagh <zentaro@chromium.org>
Tested-by: Zentaro Kavanagh <zentaro@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Zentaro Kavanagh <zentaro@chromium.org>
diff --git a/metrics_reporter_omaha_unittest.cc b/metrics_reporter_omaha_unittest.cc
index c7641c0..ea72104 100644
--- a/metrics_reporter_omaha_unittest.cc
+++ b/metrics_reporter_omaha_unittest.cc
@@ -468,4 +468,26 @@
reporter_.ReportInstallDateProvisioningSource(source, max);
}
+TEST_F(MetricsReporterOmahaTest, ReportKeyVersionMetrics) {
+ int kernel_min_version = 0x00040002;
+ int kernel_max_rollforward_version = 0xfffffffe;
+ bool kernel_max_rollforward_success = true;
+ EXPECT_CALL(
+ *mock_metrics_lib_,
+ SendSparseToUMA(metrics::kMetricKernelMinVersion, kernel_min_version))
+ .Times(1);
+ EXPECT_CALL(*mock_metrics_lib_,
+ SendSparseToUMA(metrics::kMetricKernelMaxRollforwardVersion,
+ kernel_max_rollforward_version))
+ .Times(1);
+ EXPECT_CALL(*mock_metrics_lib_,
+ SendBoolToUMA(metrics::kMetricKernelMaxRollforwardSetSuccess,
+ kernel_max_rollforward_success))
+ .Times(1);
+
+ reporter_.ReportKeyVersionMetrics(kernel_min_version,
+ kernel_max_rollforward_version,
+ kernel_max_rollforward_success);
+}
+
} // namespace chromeos_update_engine