| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <algorithm> | 5 #include <algorithm> |
| 6 #include <string> | 6 #include <string> |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 | 202 |
| 203 base::Time start_time = clock->GetTime(); | 203 base::Time start_time = clock->GetTime(); |
| 204 base::Time end_time = clock->GetTime(); | 204 base::Time end_time = clock->GetTime(); |
| 205 std::vector<TimeRange> active_interval = db->GetActiveIntervals(start_time, | 205 std::vector<TimeRange> active_interval = db->GetActiveIntervals(start_time, |
| 206 end_time); | 206 end_time); |
| 207 EXPECT_TRUE(active_interval.empty()); | 207 EXPECT_TRUE(active_interval.empty()); |
| 208 } | 208 } |
| 209 | 209 |
| 210 ////// PerformanceMonitorDatabaseEventTests //////////////////////////////////// | 210 ////// PerformanceMonitorDatabaseEventTests //////////////////////////////////// |
| 211 TEST_F(PerformanceMonitorDatabaseEventTest, GetAllEvents) { | 211 TEST_F(PerformanceMonitorDatabaseEventTest, GetAllEvents) { |
| 212 std::vector<linked_ptr<Event> > events = db_->GetEvents(); | 212 Database::EventVector events = db_->GetEvents(); |
| 213 ASSERT_EQ(4u, events.size()); | 213 ASSERT_EQ(4u, events.size()); |
| 214 EXPECT_TRUE(events[0]->data()->Equals(install_event_1_->data())); | 214 EXPECT_TRUE(events[0]->data()->Equals(install_event_1_->data())); |
| 215 EXPECT_TRUE(events[1]->data()->Equals(install_event_2_->data())); | 215 EXPECT_TRUE(events[1]->data()->Equals(install_event_2_->data())); |
| 216 EXPECT_TRUE(events[2]->data()->Equals(uninstall_event_1_->data())); | 216 EXPECT_TRUE(events[2]->data()->Equals(uninstall_event_1_->data())); |
| 217 EXPECT_TRUE(events[3]->data()->Equals(uninstall_event_2_->data())); | 217 EXPECT_TRUE(events[3]->data()->Equals(uninstall_event_2_->data())); |
| 218 } | 218 } |
| 219 | 219 |
| 220 TEST_F(PerformanceMonitorDatabaseEventTest, GetAllEventTypes) { | 220 TEST_F(PerformanceMonitorDatabaseEventTest, GetAllEventTypes) { |
| 221 std::set<EventType> types = db_->GetEventTypes(); | 221 Database::EventTypeSet types = db_->GetEventTypes(); |
| 222 ASSERT_EQ(2u, types.size()); | 222 ASSERT_EQ(2u, types.size()); |
| 223 ASSERT_EQ(1u, types.count(EVENT_EXTENSION_INSTALL)); | 223 ASSERT_EQ(1u, types.count(EVENT_EXTENSION_INSTALL)); |
| 224 ASSERT_EQ(1u, types.count(EVENT_EXTENSION_UNINSTALL)); | 224 ASSERT_EQ(1u, types.count(EVENT_EXTENSION_UNINSTALL)); |
| 225 } | 225 } |
| 226 | 226 |
| 227 TEST_F(PerformanceMonitorDatabaseEventTest, GetEventInTimeRange) { | 227 TEST_F(PerformanceMonitorDatabaseEventTest, GetEventInTimeRange) { |
| 228 base::Time start_time = clock_->GetTime(); | 228 base::Time start_time = clock_->GetTime(); |
| 229 scoped_ptr<Event> crash_event = util::CreateRendererFreezeEvent( | 229 scoped_ptr<Event> crash_event = util::CreateRendererFreezeEvent( |
| 230 clock_->GetTime(), "chrome://freeze"); | 230 clock_->GetTime(), "chrome://freeze"); |
| 231 db_->AddEvent(*crash_event.get()); | 231 db_->AddEvent(*crash_event.get()); |
| 232 std::vector<linked_ptr<Event> > events = | 232 Database::EventVector events = db_->GetEvents(start_time, clock_->GetTime()); |
| 233 db_->GetEvents(start_time, clock_->GetTime()); | |
| 234 ASSERT_EQ(1u, events.size()); | 233 ASSERT_EQ(1u, events.size()); |
| 235 EXPECT_TRUE(events[0]->data()->Equals(crash_event->data())); | 234 EXPECT_TRUE(events[0]->data()->Equals(crash_event->data())); |
| 236 } | 235 } |
| 237 | 236 |
| 238 TEST_F(PerformanceMonitorDatabaseEventTest, GetInstallEvents) { | 237 TEST_F(PerformanceMonitorDatabaseEventTest, GetInstallEvents) { |
| 239 std::vector<linked_ptr<Event> > events = | 238 Database::EventVector events = db_->GetEvents(EVENT_EXTENSION_INSTALL); |
| 240 db_->GetEvents(EVENT_EXTENSION_INSTALL); | |
| 241 ASSERT_EQ(2u, events.size()); | 239 ASSERT_EQ(2u, events.size()); |
| 242 EXPECT_TRUE(events[0]->data()->Equals(install_event_1_->data())); | 240 EXPECT_TRUE(events[0]->data()->Equals(install_event_1_->data())); |
| 243 EXPECT_TRUE(events[1]->data()->Equals(install_event_2_->data())); | 241 EXPECT_TRUE(events[1]->data()->Equals(install_event_2_->data())); |
| 244 } | 242 } |
| 245 | 243 |
| 246 TEST_F(PerformanceMonitorDatabaseEventTest, GetUnusedEventType) { | 244 TEST_F(PerformanceMonitorDatabaseEventTest, GetUnusedEventType) { |
| 247 std::vector<linked_ptr<Event> > events = | 245 Database::EventVector events = db_->GetEvents(EVENT_EXTENSION_DISABLE); |
| 248 db_->GetEvents(EVENT_EXTENSION_DISABLE); | |
| 249 ASSERT_TRUE(events.empty()); | 246 ASSERT_TRUE(events.empty()); |
| 250 events = db_->GetEvents(EVENT_EXTENSION_DISABLE, clock_->GetTime(), | 247 events = db_->GetEvents(EVENT_EXTENSION_DISABLE, clock_->GetTime(), |
| 251 clock_->GetTime()); | 248 clock_->GetTime()); |
| 252 ASSERT_TRUE(events.empty()); | 249 ASSERT_TRUE(events.empty()); |
| 253 } | 250 } |
| 254 | 251 |
| 255 TEST_F(PerformanceMonitorDatabaseEventTest, GetEventsTimeRange) { | 252 TEST_F(PerformanceMonitorDatabaseEventTest, GetEventsTimeRange) { |
| 256 base::Time start_time = clock_->GetTime(); | 253 base::Time start_time = clock_->GetTime(); |
| 257 scoped_ptr<Event> new_install_event = | 254 scoped_ptr<Event> new_install_event = |
| 258 util::CreateExtensionEvent(EVENT_EXTENSION_INSTALL, clock_->GetTime(), | 255 util::CreateExtensionEvent(EVENT_EXTENSION_INSTALL, clock_->GetTime(), |
| 259 "c", "test extension", "http://foo.com", | 256 "c", "test extension", "http://foo.com", |
| 260 static_cast<int>(Extension::LOAD), "0.1", | 257 static_cast<int>(Extension::LOAD), "0.1", |
| 261 "Test Test"); | 258 "Test Test"); |
| 262 scoped_ptr<Event> new_uninstall_event = | 259 scoped_ptr<Event> new_uninstall_event = |
| 263 util::CreateExtensionEvent(EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), | 260 util::CreateExtensionEvent(EVENT_EXTENSION_UNINSTALL, clock_->GetTime(), |
| 264 "c", "test extension", "http://foo.com", | 261 "c", "test extension", "http://foo.com", |
| 265 static_cast<int>(Extension::LOAD), "0.1", | 262 static_cast<int>(Extension::LOAD), "0.1", |
| 266 "Test Test"); | 263 "Test Test"); |
| 267 base::Time end_time = clock_->GetTime(); | 264 base::Time end_time = clock_->GetTime(); |
| 268 db_->AddEvent(*new_install_event.get()); | 265 db_->AddEvent(*new_install_event.get()); |
| 269 db_->AddEvent(*new_uninstall_event.get()); | 266 db_->AddEvent(*new_uninstall_event.get()); |
| 270 std::vector<linked_ptr<Event> > events = | 267 Database::EventVector events = db_->GetEvents(start_time, end_time); |
| 271 db_->GetEvents(start_time, end_time); | |
| 272 ASSERT_EQ(2u, events.size()); | 268 ASSERT_EQ(2u, events.size()); |
| 273 EXPECT_TRUE(events[0]->data()->Equals(new_install_event->data())); | 269 EXPECT_TRUE(events[0]->data()->Equals(new_install_event->data())); |
| 274 EXPECT_TRUE(events[1]->data()->Equals(new_uninstall_event->data())); | 270 EXPECT_TRUE(events[1]->data()->Equals(new_uninstall_event->data())); |
| 275 events = db_->GetEvents( | 271 events = db_->GetEvents( |
| 276 EVENT_EXTENSION_INSTALL, start_time, end_time); | 272 EVENT_EXTENSION_INSTALL, start_time, end_time); |
| 277 ASSERT_EQ(1u, events.size()); | 273 ASSERT_EQ(1u, events.size()); |
| 278 EXPECT_TRUE(events[0]->data()->Equals(new_install_event->data())); | 274 EXPECT_TRUE(events[0]->data()->Equals(new_install_event->data())); |
| 279 } | 275 } |
| 280 | 276 |
| 281 ////// PerformanceMonitorDatabaseMetricTests /////////////////////////////////// | 277 ////// PerformanceMonitorDatabaseMetricTests /////////////////////////////////// |
| 282 TEST_F(PerformanceMonitorDatabaseMetricTest, GetActiveMetrics) { | 278 TEST_F(PerformanceMonitorDatabaseMetricTest, GetActiveMetrics) { |
| 283 std::vector<const MetricDetails*> active_metrics = | 279 Database::MetricTypeSet active_metrics = |
| 284 db_->GetActiveMetrics(base::Time(), clock_->GetTime()); | 280 db_->GetActiveMetrics(base::Time(), clock_->GetTime()); |
| 285 std::sort(active_metrics.begin(), active_metrics.end()); | |
| 286 | 281 |
| 287 std::vector<const MetricDetails*> expected_metrics; | 282 Database::MetricTypeSet expected_metrics; |
| 288 expected_metrics.push_back(GetMetricDetails(METRIC_CPU_USAGE)); | 283 expected_metrics.insert(METRIC_CPU_USAGE); |
| 289 expected_metrics.push_back(GetMetricDetails(METRIC_PRIVATE_MEMORY_USAGE)); | 284 expected_metrics.insert(METRIC_PRIVATE_MEMORY_USAGE); |
| 290 std::sort(expected_metrics.begin(), expected_metrics.end()); | |
| 291 EXPECT_EQ(expected_metrics, active_metrics); | 285 EXPECT_EQ(expected_metrics, active_metrics); |
| 292 } | 286 } |
| 293 | 287 |
| 294 TEST_F(PerformanceMonitorDatabaseMetricTest, GetRecentMetric) { | 288 TEST_F(PerformanceMonitorDatabaseMetricTest, GetRecentMetric) { |
| 295 MetricInfo stat; | 289 Metric stat; |
| 296 ASSERT_TRUE(db_->GetRecentStatsForActivityAndMetric(activity_, | 290 ASSERT_TRUE(db_->GetRecentStatsForActivityAndMetric(activity_, |
| 297 METRIC_PRIVATE_MEMORY_USAGE, &stat)); | 291 METRIC_PRIVATE_MEMORY_USAGE, &stat)); |
| 298 EXPECT_EQ(3000000, stat.value); | 292 EXPECT_EQ(3000000, stat.value); |
| 299 | 293 |
| 300 ASSERT_TRUE(db_->GetRecentStatsForActivityAndMetric(METRIC_CPU_USAGE, &stat)); | 294 ASSERT_TRUE(db_->GetRecentStatsForActivityAndMetric(METRIC_CPU_USAGE, &stat)); |
| 301 EXPECT_EQ(50.5, stat.value); | 295 EXPECT_EQ(50.5, stat.value); |
| 302 | 296 |
| 303 ScopedTempDir dir; | 297 ScopedTempDir dir; |
| 304 CHECK(dir.CreateUniqueTempDir()); | 298 CHECK(dir.CreateUniqueTempDir()); |
| 305 scoped_ptr<Database> db = Database::Create(dir.path()); | 299 scoped_ptr<Database> db = Database::Create(dir.path()); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 318 TEST_F(PerformanceMonitorDatabaseMetricTest, GetStateOverride) { | 312 TEST_F(PerformanceMonitorDatabaseMetricTest, GetStateOverride) { |
| 319 std::string key("version"); | 313 std::string key("version"); |
| 320 std::string value_1("1.0.0.0.0"); | 314 std::string value_1("1.0.0.0.0"); |
| 321 std::string value_2("1.0.0.0.1"); | 315 std::string value_2("1.0.0.0.1"); |
| 322 db_->AddStateValue(key, value_1); | 316 db_->AddStateValue(key, value_1); |
| 323 db_->AddStateValue(key, value_2); | 317 db_->AddStateValue(key, value_2); |
| 324 EXPECT_EQ(db_->GetStateValue(key), value_2); | 318 EXPECT_EQ(db_->GetStateValue(key), value_2); |
| 325 } | 319 } |
| 326 | 320 |
| 327 TEST_F(PerformanceMonitorDatabaseMetricTest, GetStatsForActivityAndMetric) { | 321 TEST_F(PerformanceMonitorDatabaseMetricTest, GetStatsForActivityAndMetric) { |
| 328 Database::MetricInfoVector stats = db_->GetStatsForActivityAndMetric( | 322 Database::MetricVector stats = db_->GetStatsForActivityAndMetric( |
| 329 activity_, METRIC_CPU_USAGE, base::Time(), clock_->GetTime()); | 323 activity_, METRIC_CPU_USAGE, base::Time(), clock_->GetTime()); |
| 330 ASSERT_EQ(1u, stats.size()); | 324 ASSERT_EQ(1u, stats.size()); |
| 331 EXPECT_EQ(13.1, stats[0].value); | 325 EXPECT_EQ(13.1, stats[0].value); |
| 332 base::Time before = clock_->GetTime(); | 326 base::Time before = clock_->GetTime(); |
| 333 db_->AddMetric(activity_, METRIC_CPU_USAGE, std::string("18")); | 327 db_->AddMetric(activity_, METRIC_CPU_USAGE, std::string("18")); |
| 334 stats = db_->GetStatsForActivityAndMetric(activity_, METRIC_CPU_USAGE, | 328 stats = db_->GetStatsForActivityAndMetric(activity_, METRIC_CPU_USAGE, |
| 335 before, clock_->GetTime()); | 329 before, clock_->GetTime()); |
| 336 ASSERT_EQ(1u, stats.size()); | 330 ASSERT_EQ(1u, stats.size()); |
| 337 EXPECT_EQ(18, stats[0].value); | 331 EXPECT_EQ(18, stats[0].value); |
| 338 stats = db_->GetStatsForActivityAndMetric(activity_, METRIC_CPU_USAGE); | 332 stats = db_->GetStatsForActivityAndMetric(activity_, METRIC_CPU_USAGE); |
| 339 ASSERT_EQ(2u, stats.size()); | 333 ASSERT_EQ(2u, stats.size()); |
| 340 EXPECT_EQ(13.1, stats[0].value); | 334 EXPECT_EQ(13.1, stats[0].value); |
| 341 EXPECT_EQ(18, stats[1].value); | 335 EXPECT_EQ(18, stats[1].value); |
| 342 stats = db_->GetStatsForActivityAndMetric(METRIC_PRIVATE_MEMORY_USAGE); | 336 stats = db_->GetStatsForActivityAndMetric(METRIC_PRIVATE_MEMORY_USAGE); |
| 343 ASSERT_EQ(1u, stats.size()); | 337 ASSERT_EQ(1u, stats.size()); |
| 344 EXPECT_EQ(1000000, stats[0].value); | 338 EXPECT_EQ(1000000, stats[0].value); |
| 345 stats = db_->GetStatsForActivityAndMetric(activity_, METRIC_CPU_USAGE, | 339 stats = db_->GetStatsForActivityAndMetric(activity_, METRIC_CPU_USAGE, |
| 346 clock_->GetTime(), | 340 clock_->GetTime(), |
| 347 clock_->GetTime()); | 341 clock_->GetTime()); |
| 348 EXPECT_TRUE(stats.empty()); | 342 EXPECT_TRUE(stats.empty()); |
| 349 } | 343 } |
| 350 | 344 |
| 351 TEST_F(PerformanceMonitorDatabaseMetricTest, GetStatsForMetricByActivity) { | 345 TEST_F(PerformanceMonitorDatabaseMetricTest, GetStatsForMetricByActivity) { |
| 352 Database::MetricVectorMap stats_map = db_->GetStatsForMetricByActivity( | 346 Database::MetricVectorMap stats_map = db_->GetStatsForMetricByActivity( |
| 353 METRIC_CPU_USAGE, base::Time(), clock_->GetTime()); | 347 METRIC_CPU_USAGE, base::Time(), clock_->GetTime()); |
| 354 ASSERT_EQ(2u, stats_map.size()); | 348 ASSERT_EQ(2u, stats_map.size()); |
| 355 linked_ptr<Database::MetricInfoVector> stats = stats_map[activity_]; | 349 linked_ptr<Database::MetricVector> stats = stats_map[activity_]; |
| 356 ASSERT_EQ(1u, stats->size()); | 350 ASSERT_EQ(1u, stats->size()); |
| 357 EXPECT_EQ(13.1, stats->at(0).value); | 351 EXPECT_EQ(13.1, stats->at(0).value); |
| 358 stats = stats_map[kProcessChromeAggregate]; | 352 stats = stats_map[kProcessChromeAggregate]; |
| 359 ASSERT_EQ(1u, stats->size()); | 353 ASSERT_EQ(1u, stats->size()); |
| 360 EXPECT_EQ(50.5, stats->at(0).value); | 354 EXPECT_EQ(50.5, stats->at(0).value); |
| 361 stats_map = db_->GetStatsForMetricByActivity( | 355 stats_map = db_->GetStatsForMetricByActivity( |
| 362 METRIC_CPU_USAGE, clock_->GetTime(), clock_->GetTime()); | 356 METRIC_CPU_USAGE, clock_->GetTime(), clock_->GetTime()); |
| 363 EXPECT_EQ(0u, stats_map.size()); | 357 EXPECT_EQ(0u, stats_map.size()); |
| 364 base::Time before = clock_->GetTime(); | 358 base::Time before = clock_->GetTime(); |
| 365 db_->AddMetric(activity_, METRIC_CPU_USAGE, std::string("18")); | 359 db_->AddMetric(activity_, METRIC_CPU_USAGE, std::string("18")); |
| 366 stats_map = db_->GetStatsForMetricByActivity(METRIC_CPU_USAGE, before, | 360 stats_map = db_->GetStatsForMetricByActivity(METRIC_CPU_USAGE, before, |
| 367 clock_->GetTime()); | 361 clock_->GetTime()); |
| 368 ASSERT_EQ(1u, stats_map.size()); | 362 ASSERT_EQ(1u, stats_map.size()); |
| 369 stats = stats_map[activity_]; | 363 stats = stats_map[activity_]; |
| 370 ASSERT_EQ(1u, stats->size()); | 364 ASSERT_EQ(1u, stats->size()); |
| 371 EXPECT_EQ(18, stats->at(0).value); | 365 EXPECT_EQ(18, stats->at(0).value); |
| 372 } | 366 } |
| 373 | 367 |
| 374 TEST_F(PerformanceMonitorDatabaseMetricTest, GetFullRange) { | 368 TEST_F(PerformanceMonitorDatabaseMetricTest, GetFullRange) { |
| 375 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("3.4")); | 369 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("3.4")); |
| 376 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("21")); | 370 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("21")); |
| 377 Database::MetricInfoVector stats = | 371 Database::MetricVector stats = |
| 378 db_->GetStatsForActivityAndMetric(METRIC_CPU_USAGE); | 372 db_->GetStatsForActivityAndMetric(METRIC_CPU_USAGE); |
| 379 ASSERT_EQ(3u, stats.size()); | 373 ASSERT_EQ(3u, stats.size()); |
| 380 ASSERT_EQ(50.5, stats[0].value); | 374 ASSERT_EQ(50.5, stats[0].value); |
| 381 ASSERT_EQ(3.4, stats[1].value); | 375 ASSERT_EQ(3.4, stats[1].value); |
| 382 ASSERT_EQ(21, stats[2].value); | 376 ASSERT_EQ(21, stats[2].value); |
| 383 } | 377 } |
| 384 | 378 |
| 385 TEST_F(PerformanceMonitorDatabaseMetricTest, GetRange) { | 379 TEST_F(PerformanceMonitorDatabaseMetricTest, GetRange) { |
| 386 base::Time start = clock_->GetTime(); | 380 base::Time start = clock_->GetTime(); |
| 387 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("3")); | 381 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("3")); |
| 388 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("9")); | 382 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("9")); |
| 389 base::Time end = clock_->GetTime(); | 383 base::Time end = clock_->GetTime(); |
| 390 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("21")); | 384 db_->AddMetric(kProcessChromeAggregate, METRIC_CPU_USAGE, std::string("21")); |
| 391 Database::MetricInfoVector stats = | 385 Database::MetricVector stats = |
| 392 db_->GetStatsForActivityAndMetric(METRIC_CPU_USAGE, start, end); | 386 db_->GetStatsForActivityAndMetric(METRIC_CPU_USAGE, start, end); |
| 393 ASSERT_EQ(2u, stats.size()); | 387 ASSERT_EQ(2u, stats.size()); |
| 394 ASSERT_EQ(3, stats[0].value); | 388 ASSERT_EQ(3, stats[0].value); |
| 395 ASSERT_EQ(9, stats[1].value); | 389 ASSERT_EQ(9, stats[1].value); |
| 396 } | 390 } |
| 397 | 391 |
| 398 } // namespace performance_monitor | 392 } // namespace performance_monitor |
| OLD | NEW |