Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: chrome/browser/performance_monitor/database_unittest.cc

Issue 10874041: Refactor Metrics (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Latest master for cq Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/performance_monitor/database.cc ('k') | chrome/browser/performance_monitor/metric.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698