Add unit tests for duration metrics
As a side-effect, move utils::GetMonotonicTime() into the newly added
ClockInterface type.
BUG=None
TEST=Unit tests pass
Change-Id: I972a7e4ba37b63f96348fbeda901697b8ba2fc05
Reviewed-on: https://gerrit.chromium.org/gerrit/48814
Reviewed-by: Chris Sosa <[email protected]>
Tested-by: David Zeuthen <[email protected]>
Commit-Queue: David Zeuthen <[email protected]>
diff --git a/payload_state.cc b/payload_state.cc
index 77652a7..390dd6a 100644
--- a/payload_state.cc
+++ b/payload_state.cc
@@ -10,6 +10,7 @@
#include "base/string_util.h"
#include <base/stringprintf.h>
+#include "update_engine/clock.h"
#include "update_engine/constants.h"
#include "update_engine/prefs.h"
#include "update_engine/system_state.h"
@@ -139,7 +140,7 @@
void PayloadState::UpdateSucceeded() {
// Send the relevant metrics that are tracked in this class to UMA.
CalculateUpdateDurationUptime();
- SetUpdateTimestampEnd(Time::Now());
+ SetUpdateTimestampEnd(system_state_->clock()->GetWallclockTime());
ReportBytesDownloadedMetrics();
ReportUpdateUrlSwitchesMetric();
ReportRebootMetrics();
@@ -483,7 +484,7 @@
SetUrlFailureCount(0);
SetUrlSwitchCount(0);
UpdateBackoffExpiryTime(); // This will reset the backoff expiry time.
- SetUpdateTimestampStart(Time::Now());
+ SetUpdateTimestampStart(system_state_->clock()->GetWallclockTime());
SetUpdateTimestampEnd(Time()); // Set to null time
SetUpdateDurationUptime(TimeDelta::FromSeconds(0));
ResetDownloadSourcesOnNewUpdate();
@@ -636,8 +637,9 @@
}
TimeDelta PayloadState::GetUpdateDuration() {
- Time end_time = update_timestamp_end_.is_null() ? Time::Now() :
- update_timestamp_end_;
+ Time end_time = update_timestamp_end_.is_null()
+ ? system_state_->clock()->GetWallclockTime() :
+ update_timestamp_end_;
return end_time - update_timestamp_start_;
}
@@ -647,7 +649,7 @@
CHECK(prefs_);
- Time now = Time::Now();
+ Time now = system_state_->clock()->GetWallclockTime();
if (!prefs_->Exists(kPrefsUpdateTimestampStart)) {
// The preference missing is not unexpected - in that case, just
@@ -747,11 +749,12 @@
}
void PayloadState::SetUpdateDurationUptime(const TimeDelta& value) {
- SetUpdateDurationUptimeExtended(value, utils::GetMonotonicTime(), true);
+ Time now = system_state_->clock()->GetMonotonicTime();
+ SetUpdateDurationUptimeExtended(value, now, true);
}
void PayloadState::CalculateUpdateDurationUptime() {
- Time now = utils::GetMonotonicTime();
+ Time now = system_state_->clock()->GetMonotonicTime();
TimeDelta uptime_since_last_update = now - update_duration_uptime_timestamp_;
TimeDelta new_uptime = update_duration_uptime_ + uptime_since_last_update;
// We're frequently called so avoid logging this write