summaryrefslogtreecommitdiff
path: root/payload_state_unittest.cc
diff options
context:
space:
mode:
authorAlex Deymo <deymo@chromium.org>2013-06-28 11:02:14 -0700
committerChromeBot <chrome-bot@google.com>2013-06-28 14:32:21 -0700
commit1c656c48886cf5054b526ed7e95b05903d7644db (patch)
treea7456ff1878dc4d47ea9f4315982dce748106a58 /payload_state_unittest.cc
parentc0602363eaf2a010d2657aadf12dac03cdc7b56e (diff)
Add Installer.PayloadFormat metric
Adds a new PayloadFormat metric with three different values: Delta, Full and ForcedFull. The metric is send whenever an update is applied successfully indicating the type of the used payload. The difference between Full and ForcedFull is that in the ForcedFull, the request sent to omaha included a directive saying that a delta payload wasn't accepted, where a Full payload is one where a delta payload was accepted but a Full payload was provided. BUG=chromium:225977 TEST=cros_workon_make update_engine --test # Three tests added, one for each condition. Change-Id: If44cd96df325d320ed327114cc5e5de3d34a5c62 Reviewed-on: https://gerrit.chromium.org/gerrit/60318 Reviewed-by: David Zeuthen <zeuthen@chromium.org> Commit-Queue: Alex Deymo <deymo@chromium.org> Tested-by: Alex Deymo <deymo@chromium.org>
Diffstat (limited to 'payload_state_unittest.cc')
-rw-r--r--payload_state_unittest.cc78
1 files changed, 78 insertions, 0 deletions
diff --git a/payload_state_unittest.cc b/payload_state_unittest.cc
index dcdcd113..9bd4c08c 100644
--- a/payload_state_unittest.cc
+++ b/payload_state_unittest.cc
@@ -714,6 +714,8 @@ TEST(PayloadStateTest, BytesDownloadedMetricsGetAddedToCorrectSources) {
"Installer.DownloadSourcesUsed", 3, _, _, _));
EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendToUMA(
"Installer.DownloadOverheadPercentage", 542, _, _, _));
+ EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendEnumToUMA(
+ "Installer.PayloadFormat", kPayloadTypeFull, kNumPayloadTypes));
payload_state.UpdateSucceeded();
@@ -989,4 +991,80 @@ TEST(PayloadStateTest, CandidateUrlsComputedCorrectly) {
EXPECT_EQ(0, payload_state.GetUrlFailureCount());
}
+TEST(PayloadStateTest, PayloadTypeMetricWhenTypeIsDelta) {
+ OmahaResponse response;
+ response.is_delta_payload = true;
+ PayloadState payload_state;
+ MockSystemState mock_system_state;
+
+ EXPECT_TRUE(payload_state.Initialize(&mock_system_state));
+ SetupPayloadStateWith2Urls("Hash6437", true, &payload_state, &response);
+
+ // Simulate a successful download and update.
+ payload_state.DownloadComplete();
+
+ EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendEnumToUMA(
+ "Installer.PayloadFormat", kPayloadTypeDelta, kNumPayloadTypes));
+ payload_state.UpdateSucceeded();
+
+ // Mock the request to a request where the delta was disabled but Omaha sends
+ // a delta anyway and test again.
+ OmahaRequestParams params(&mock_system_state);
+ params.set_delta_okay(false);
+ mock_system_state.set_request_params(&params);
+
+ EXPECT_TRUE(payload_state.Initialize(&mock_system_state));
+ SetupPayloadStateWith2Urls("Hash6437", true, &payload_state, &response);
+
+ payload_state.DownloadComplete();
+
+ EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendEnumToUMA(
+ "Installer.PayloadFormat", kPayloadTypeDelta, kNumPayloadTypes));
+ payload_state.UpdateSucceeded();
+}
+
+TEST(PayloadStateTest, PayloadTypeMetricWhenTypeIsForcedFull) {
+ OmahaResponse response;
+ response.is_delta_payload = false;
+ PayloadState payload_state;
+ MockSystemState mock_system_state;
+
+ EXPECT_TRUE(payload_state.Initialize(&mock_system_state));
+ SetupPayloadStateWith2Urls("Hash6437", true, &payload_state, &response);
+
+ // Mock the request to a request where the delta was disabled.
+ OmahaRequestParams params(&mock_system_state);
+ params.set_delta_okay(false);
+ mock_system_state.set_request_params(&params);
+
+ // Simulate a successful download and update.
+ payload_state.DownloadComplete();
+
+ EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendEnumToUMA(
+ "Installer.PayloadFormat", kPayloadTypeForcedFull, kNumPayloadTypes));
+ payload_state.UpdateSucceeded();
+}
+
+TEST(PayloadStateTest, PayloadTypeMetricWhenTypeIsFull) {
+ OmahaResponse response;
+ response.is_delta_payload = false;
+ PayloadState payload_state;
+ MockSystemState mock_system_state;
+
+ EXPECT_TRUE(payload_state.Initialize(&mock_system_state));
+ SetupPayloadStateWith2Urls("Hash6437", true, &payload_state, &response);
+
+ // Mock the request to a request where the delta was disabled.
+ OmahaRequestParams params(&mock_system_state);
+ params.set_delta_okay(true);
+ mock_system_state.set_request_params(&params);
+
+ // Simulate a successful download and update.
+ payload_state.DownloadComplete();
+
+ EXPECT_CALL(*mock_system_state.mock_metrics_lib(), SendEnumToUMA(
+ "Installer.PayloadFormat", kPayloadTypeFull, kNumPayloadTypes));
+ payload_state.UpdateSucceeded();
+}
+
}