Segregate UMA metrics for production scenarios from test scenarios.
Currently we separate the UMA metrics only by one category: whether the
device is in dev mode or not. In addition, we need to exclude the noise
from these two categories:
1. Most of our testing on MP-signed images which are performed
with autest.
2. All our hwlab tests run in non-dev mode but they use dev-signed images
with dev-firmware keys.
So this CL defines additional bit fields to represent these states and
if any of these three flags are set, the UMA metric is sent to a
DevModeErrorCodes bucket. Thus the NormalErrorCodes bucket will have only
the production errors and thus we can monitor more effectively.
BUG=chromium-os:37613
TEST=Updated unit tests, ran on ZGB for all scenarios.
Change-Id: Id9cce33f09d1cc50cb15e67c731f7548940cbc24
Reviewed-on: https://gerrit.chromium.org/gerrit/41103
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Jay Srinivasan <jaysri@chromium.org>
Tested-by: Jay Srinivasan <jaysri@chromium.org>
diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
index 61d9010..18bcb67 100644
--- a/update_attempter_unittest.cc
+++ b/update_attempter_unittest.cc
@@ -64,7 +64,7 @@
EXPECT_EQ(0, attempter_.last_checked_time_);
EXPECT_EQ("0.0.0.0", attempter_.new_version_);
EXPECT_EQ(0, attempter_.new_payload_size_);
- processor_ = new ActionProcessorMock();
+ processor_ = new NiceMock<ActionProcessorMock>();
attempter_.processor_.reset(processor_); // Transfers ownership.
prefs_ = mock_system_state_.mock_prefs();
}
@@ -102,12 +102,12 @@
static gboolean StaticNoScatteringDoneDuringManualUpdateTestStart(
gpointer data);
- MockSystemState mock_system_state_;
- MockDbusGlib dbus_;
+ NiceMock<MockSystemState> mock_system_state_;
+ NiceMock<MockDbusGlib> dbus_;
UpdateAttempterUnderTest attempter_;
- ActionProcessorMock* processor_;
+ NiceMock<ActionProcessorMock>* processor_;
NiceMock<PrefsMock>* prefs_; // shortcut to mock_system_state_->mock_prefs()
- MockConnectionManager mock_connection_manager;
+ NiceMock<MockConnectionManager> mock_connection_manager;
GMainLoop* loop_;
};
@@ -433,7 +433,8 @@
ASSERT_TRUE(attempter_.error_event_.get() != NULL);
EXPECT_EQ(OmahaEvent::kTypeUpdateComplete, attempter_.error_event_->type);
EXPECT_EQ(OmahaEvent::kResultError, attempter_.error_event_->result);
- EXPECT_EQ(kCode, attempter_.error_event_->error_code);
+ EXPECT_EQ(kCode | kActionCodeTestOmahaUrlFlag,
+ attempter_.error_event_->error_code);
}
TEST_F(UpdateAttempterTest, CreatePendingErrorEventResumedTest) {
@@ -447,7 +448,7 @@
ASSERT_TRUE(attempter_.error_event_.get() != NULL);
EXPECT_EQ(OmahaEvent::kTypeUpdateComplete, attempter_.error_event_->type);
EXPECT_EQ(OmahaEvent::kResultError, attempter_.error_event_->result);
- EXPECT_EQ(kCode | kActionCodeResumedFlag,
+ EXPECT_EQ(kCode | kActionCodeResumedFlag | kActionCodeTestOmahaUrlFlag,
attempter_.error_event_->error_code);
}