update_engine: Log when EOL date is set + retrieved
autoupdate_EOL autotests seems to fail and return a default EOL date
value of -9999. This logging helps pinpoint whether prefs are the
culprit.
BUG=chromium:1090283
TEST=FEATURES=test emerge-$B update_engine update_engine-client
Change-Id: If2feb4841d2642af89dac94e699a30a7ee2fb002
Reviewed-on: https://chromium-review.googlesource.com/c/aosp/platform/system/update_engine/+/2227031
Tested-by: Jae Hoon Kim <kimjae@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
Auto-Submit: Jae Hoon Kim <kimjae@chromium.org>
Commit-Queue: Jae Hoon Kim <kimjae@chromium.org>
diff --git a/omaha_request_action.cc b/omaha_request_action.cc
index 8728f72..86d4b93 100644
--- a/omaha_request_action.cc
+++ b/omaha_request_action.cc
@@ -1366,11 +1366,13 @@
// If EOL date attribute is not sent, don't delete the old persisted EOL
// date information.
auto eol_date_attr = attrs.find(kAttrEolDate);
- if (eol_date_attr != attrs.end() &&
- !system_state_->prefs()->SetString(kPrefsOmahaEolDate,
- eol_date_attr->second)) {
- LOG(ERROR) << "Setting EOL date failed.";
- return false;
+ if (eol_date_attr != attrs.end()) {
+ const auto& eol_date = eol_date_attr->second;
+ if (!system_state_->prefs()->SetString(kPrefsOmahaEolDate, eol_date)) {
+ LOG(ERROR) << "Setting EOL date failed.";
+ return false;
+ }
+ LOG(INFO) << "Set EOL date to " << eol_date;
}
return true;
}
diff --git a/update_attempter.cc b/update_attempter.cc
index 5256192..60c2c36 100644
--- a/update_attempter.cc
+++ b/update_attempter.cc
@@ -1505,7 +1505,9 @@
out_status->is_install = is_install_;
string str_eol_date;
- system_state_->prefs()->GetString(kPrefsOmahaEolDate, &str_eol_date);
+ if (system_state_->prefs()->Exists(kPrefsOmahaEolDate) &&
+ !system_state_->prefs()->GetString(kPrefsOmahaEolDate, &str_eol_date))
+ LOG(ERROR) << "Failed to retrieve kPrefsOmahaEolDate pref.";
out_status->eol_date = StringToEolDate(str_eol_date);
// A powerwash will take place either if the install plan says it is required
diff --git a/update_attempter_unittest.cc b/update_attempter_unittest.cc
index 745bcc2..0086dd5 100644
--- a/update_attempter_unittest.cc
+++ b/update_attempter_unittest.cc
@@ -2343,6 +2343,7 @@
TEST_F(UpdateAttempterTest, FutureEolTest) {
EolDate eol_date = std::numeric_limits<int64_t>::max();
+ EXPECT_CALL(*prefs_, Exists(kPrefsOmahaEolDate)).WillOnce(Return(true));
EXPECT_CALL(*prefs_, GetString(kPrefsOmahaEolDate, _))
.WillOnce(
DoAll(SetArgPointee<1>(EolDateToString(eol_date)), Return(true)));
@@ -2354,6 +2355,7 @@
TEST_F(UpdateAttempterTest, PastEolTest) {
EolDate eol_date = 1;
+ EXPECT_CALL(*prefs_, Exists(kPrefsOmahaEolDate)).WillOnce(Return(true));
EXPECT_CALL(*prefs_, GetString(kPrefsOmahaEolDate, _))
.WillOnce(
DoAll(SetArgPointee<1>(EolDateToString(eol_date)), Return(true)));
@@ -2364,13 +2366,21 @@
}
TEST_F(UpdateAttempterTest, FailedEolTest) {
- EolDate eol_date = kEolDateInvalid;
+ EXPECT_CALL(*prefs_, Exists(kPrefsOmahaEolDate)).WillOnce(Return(true));
EXPECT_CALL(*prefs_, GetString(kPrefsOmahaEolDate, _))
.WillOnce(Return(false));
UpdateEngineStatus status;
attempter_.GetStatus(&status);
- EXPECT_EQ(eol_date, status.eol_date);
+ EXPECT_EQ(kEolDateInvalid, status.eol_date);
+}
+
+TEST_F(UpdateAttempterTest, MissingEolTest) {
+ EXPECT_CALL(*prefs_, Exists(kPrefsOmahaEolDate)).WillOnce(Return(false));
+
+ UpdateEngineStatus status;
+ attempter_.GetStatus(&status);
+ EXPECT_EQ(kEolDateInvalid, status.eol_date);
}
TEST_F(UpdateAttempterTest, CalculateDlcParamsInstallTest) {