Index: metrics_daemon_test.cc |
diff --git a/metrics_daemon_test.cc b/metrics_daemon_test.cc |
index e75c1616c02d0b33ab1b20654aa1af49477a0d42..e551cf990733db7498837a60987fdb3bd7b4df0d 100644 |
--- a/metrics_daemon_test.cc |
+++ b/metrics_daemon_test.cc |
@@ -11,6 +11,7 @@ |
using base::Time; |
using base::TimeTicks; |
+using chromeos_metrics::FrequencyCounterMock; |
using chromeos_metrics::TaggedCounterMock; |
using ::testing::_; |
using ::testing::Return; |
@@ -59,6 +60,16 @@ class MetricsDaemonTest : public testing::Test { |
daemon_.kernel_crash_interval_.reset(kernel_crash_interval_); |
user_crash_interval_ = new StrictMock<TaggedCounterMock>(); |
daemon_.user_crash_interval_.reset(user_crash_interval_); |
+ unclean_shutdown_interval_ = new StrictMock<TaggedCounterMock>(); |
+ daemon_.unclean_shutdown_interval_.reset(unclean_shutdown_interval_); |
+ kernel_crashes_daily_ = new StrictMock<FrequencyCounterMock>(); |
+ daemon_.kernel_crashes_daily_.reset(kernel_crashes_daily_); |
+ user_crashes_daily_ = new StrictMock<FrequencyCounterMock>(); |
+ daemon_.user_crashes_daily_.reset(user_crashes_daily_); |
+ unclean_shutdowns_daily_ = new StrictMock<FrequencyCounterMock>(); |
+ daemon_.unclean_shutdowns_daily_.reset(unclean_shutdowns_daily_); |
+ any_crashes_daily_ = new StrictMock<FrequencyCounterMock>(); |
+ daemon_.any_crashes_daily_.reset(any_crashes_daily_); |
EXPECT_FALSE(daemon_.user_active_); |
EXPECT_TRUE(daemon_.user_active_last_.is_null()); |
@@ -172,40 +183,54 @@ class MetricsDaemonTest : public testing::Test { |
StrictMock<TaggedCounterMock>* daily_use_; |
StrictMock<TaggedCounterMock>* kernel_crash_interval_; |
StrictMock<TaggedCounterMock>* user_crash_interval_; |
+ StrictMock<TaggedCounterMock>* unclean_shutdown_interval_; |
+ |
+ StrictMock<FrequencyCounterMock>* kernel_crashes_daily_; |
+ StrictMock<FrequencyCounterMock>* user_crashes_daily_; |
+ StrictMock<FrequencyCounterMock>* unclean_shutdowns_daily_; |
+ StrictMock<FrequencyCounterMock>* any_crashes_daily_; |
}; |
-TEST_F(MetricsDaemonTest, CheckKernelCrash) { |
+TEST_F(MetricsDaemonTest, CheckSystemCrash) { |
static const char kKernelCrashDetected[] = "test-kernel-crash-detected"; |
- daemon_.CheckKernelCrash(kKernelCrashDetected); |
+ EXPECT_FALSE(daemon_.CheckSystemCrash(kKernelCrashDetected)); |
FilePath crash_detected(kKernelCrashDetected); |
file_util::WriteFile(crash_detected, "", 0); |
- IgnoreActiveUseUpdate(); |
- EXPECT_CALL(*kernel_crash_interval_, Flush()) |
- .Times(1) |
- .RetiresOnSaturation(); |
- daemon_.CheckKernelCrash(kKernelCrashDetected); |
+ EXPECT_TRUE(file_util::PathExists(crash_detected)); |
+ EXPECT_TRUE(daemon_.CheckSystemCrash(kKernelCrashDetected)); |
+ EXPECT_FALSE(file_util::PathExists(crash_detected)); |
+ EXPECT_FALSE(daemon_.CheckSystemCrash(kKernelCrashDetected)); |
+ EXPECT_FALSE(file_util::PathExists(crash_detected)); |
file_util::Delete(crash_detected, false); |
} |
-TEST_F(MetricsDaemonTest, DailyUseReporter) { |
+TEST_F(MetricsDaemonTest, ReportDailyUse) { |
ExpectDailyUseTimeMetric(/* sample */ 2); |
- MetricsDaemon::DailyUseReporter(&daemon_, /* tag */ 20, /* count */ 90); |
+ MetricsDaemon::ReportDailyUse(&daemon_, /* tag */ 20, /* count */ 90); |
ExpectDailyUseTimeMetric(/* sample */ 1); |
- MetricsDaemon::DailyUseReporter(&daemon_, /* tag */ 23, /* count */ 89); |
+ MetricsDaemon::ReportDailyUse(&daemon_, /* tag */ 23, /* count */ 89); |
// There should be no metrics generated for the calls below. |
- MetricsDaemon::DailyUseReporter(&daemon_, /* tag */ 50, /* count */ 0); |
- MetricsDaemon::DailyUseReporter(&daemon_, /* tag */ 60, /* count */ -5); |
+ MetricsDaemon::ReportDailyUse(&daemon_, /* tag */ 50, /* count */ 0); |
+ MetricsDaemon::ReportDailyUse(&daemon_, /* tag */ 60, /* count */ -5); |
} |
-TEST_F(MetricsDaemonTest, KernelCrashIntervalReporter) { |
+TEST_F(MetricsDaemonTest, ReportKernelCrashInterval) { |
ExpectMetric(MetricsDaemon::kMetricKernelCrashIntervalName, 50, |
- MetricsDaemon::kMetricKernelCrashIntervalMin, |
- MetricsDaemon::kMetricKernelCrashIntervalMax, |
- MetricsDaemon::kMetricKernelCrashIntervalBuckets); |
- MetricsDaemon::KernelCrashIntervalReporter(&daemon_, 0, 50); |
+ MetricsDaemon::kMetricCrashIntervalMin, |
+ MetricsDaemon::kMetricCrashIntervalMax, |
+ MetricsDaemon::kMetricCrashIntervalBuckets); |
+ MetricsDaemon::ReportKernelCrashInterval(&daemon_, 0, 50); |
+} |
+ |
+TEST_F(MetricsDaemonTest, ReportUncleanShutdownInterval) { |
+ ExpectMetric(MetricsDaemon::kMetricUncleanShutdownIntervalName, 50, |
+ MetricsDaemon::kMetricCrashIntervalMin, |
+ MetricsDaemon::kMetricCrashIntervalMax, |
+ MetricsDaemon::kMetricCrashIntervalBuckets); |
+ MetricsDaemon::ReportUncleanShutdownInterval(&daemon_, 0, 50); |
} |
TEST_F(MetricsDaemonTest, LookupNetworkState) { |
@@ -246,6 +271,12 @@ TEST_F(MetricsDaemonTest, MessageFilter) { |
EXPECT_CALL(*user_crash_interval_, Flush()) |
.Times(1) |
.RetiresOnSaturation(); |
+ EXPECT_CALL(*user_crashes_daily_, Update(1)) |
+ .Times(1) |
+ .RetiresOnSaturation(); |
+ EXPECT_CALL(*any_crashes_daily_, Update(1)) |
+ .Times(1) |
+ .RetiresOnSaturation(); |
msg = NewDBusSignalString("/", |
"org.chromium.CrashReporter", |
"UserCrash", |
@@ -379,14 +410,28 @@ TEST_F(MetricsDaemonTest, ProcessKernelCrash) { |
EXPECT_CALL(*kernel_crash_interval_, Flush()) |
.Times(1) |
.RetiresOnSaturation(); |
+ EXPECT_CALL(*kernel_crashes_daily_, Update(1)); |
+ EXPECT_CALL(*any_crashes_daily_, Update(1)); |
daemon_.ProcessKernelCrash(); |
} |
+TEST_F(MetricsDaemonTest, ProcessUncleanShutdown) { |
+ IgnoreActiveUseUpdate(); |
+ EXPECT_CALL(*unclean_shutdown_interval_, Flush()) |
+ .Times(1) |
+ .RetiresOnSaturation(); |
+ EXPECT_CALL(*unclean_shutdowns_daily_, Update(1)); |
+ EXPECT_CALL(*any_crashes_daily_, Update(1)); |
+ daemon_.ProcessUncleanShutdown(); |
+} |
+ |
TEST_F(MetricsDaemonTest, ProcessUserCrash) { |
IgnoreActiveUseUpdate(); |
EXPECT_CALL(*user_crash_interval_, Flush()) |
.Times(1) |
.RetiresOnSaturation(); |
+ EXPECT_CALL(*user_crashes_daily_, Update(1)); |
+ EXPECT_CALL(*any_crashes_daily_, Update(1)); |
daemon_.ProcessUserCrash(); |
} |
@@ -469,12 +514,20 @@ TEST_F(MetricsDaemonTest, SetUserActiveStateTimeJump) { |
EXPECT_EQ(TestTime(10 * kSecondsPerDay + 1000), daemon_.user_active_last_); |
} |
-TEST_F(MetricsDaemonTest, UserCrashIntervalReporter) { |
+TEST_F(MetricsDaemonTest, ReportUserCrashInterval) { |
ExpectMetric(MetricsDaemon::kMetricUserCrashIntervalName, 50, |
- MetricsDaemon::kMetricUserCrashIntervalMin, |
- MetricsDaemon::kMetricUserCrashIntervalMax, |
- MetricsDaemon::kMetricUserCrashIntervalBuckets); |
- MetricsDaemon::UserCrashIntervalReporter(&daemon_, 0, 50); |
+ MetricsDaemon::kMetricCrashIntervalMin, |
+ MetricsDaemon::kMetricCrashIntervalMax, |
+ MetricsDaemon::kMetricCrashIntervalBuckets); |
+ MetricsDaemon::ReportUserCrashInterval(&daemon_, 0, 50); |
+} |
+ |
+TEST_F(MetricsDaemonTest, ReportCrashesDailyFrequency) { |
+ ExpectMetric("foobar", 50, |
+ MetricsDaemon::kMetricCrashesDailyMin, |
+ MetricsDaemon::kMetricCrashesDailyMax, |
+ MetricsDaemon::kMetricCrashesDailyBuckets); |
+ MetricsDaemon::ReportCrashesDailyFrequency("foobar", &daemon_, 50); |
} |
int main(int argc, char** argv) { |