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

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

Issue 10860017: Refactor Metrics (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/file_path.h" 6 #include "base/file_path.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/threading/sequenced_worker_pool.h" 10 #include "base/threading/sequenced_worker_pool.h"
11 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
12 #include "chrome/browser/extensions/extension_browsertest.h" 12 #include "chrome/browser/extensions/extension_browsertest.h"
13 #include "chrome/browser/extensions/extension_service.h" 13 #include "chrome/browser/extensions/extension_service.h"
14 #include "chrome/browser/performance_monitor/constants.h" 14 #include "chrome/browser/performance_monitor/constants.h"
15 #include "chrome/browser/performance_monitor/database.h" 15 #include "chrome/browser/performance_monitor/database.h"
16 #include "chrome/browser/performance_monitor/metric.h"
16 #include "chrome/browser/performance_monitor/performance_monitor.h" 17 #include "chrome/browser/performance_monitor/performance_monitor.h"
17 #include "chrome/browser/prefs/session_startup_pref.h" 18 #include "chrome/browser/prefs/session_startup_pref.h"
18 #include "chrome/browser/profiles/profile.h" 19 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/browser/profiles/profile_manager.h" 20 #include "chrome/browser/profiles/profile_manager.h"
20 #include "chrome/browser/sessions/session_service.h" 21 #include "chrome/browser/sessions/session_service.h"
21 #include "chrome/browser/sessions/session_service_factory.h" 22 #include "chrome/browser/sessions/session_service_factory.h"
22 #include "chrome/browser/sessions/session_service_test_helper.h" 23 #include "chrome/browser/sessions/session_service_test_helper.h"
23 #include "chrome/browser/ui/browser.h" 24 #include "chrome/browser/ui/browser.h"
24 #include "chrome/browser/ui/browser_commands.h" 25 #include "chrome/browser/ui/browser_commands.h"
25 #include "chrome/browser/ui/browser_navigator.h" 26 #include "chrome/browser/ui/browser_navigator.h"
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 Database::kDatabaseSequenceToken, 199 Database::kDatabaseSequenceToken,
199 FROM_HERE, 200 FROM_HERE,
200 base::Bind(&PerformanceMonitorBrowserTest::GetEventsOnBackgroundThread, 201 base::Bind(&PerformanceMonitorBrowserTest::GetEventsOnBackgroundThread,
201 base::Unretained(this), 202 base::Unretained(this),
202 &events)); 203 &events));
203 204
204 content::BrowserThread::GetBlockingPool()->FlushForTesting(); 205 content::BrowserThread::GetBlockingPool()->FlushForTesting();
205 return events; 206 return events;
206 } 207 }
207 208
208 void GetStatsOnBackgroundThread(Database::MetricInfoVector* metrics, 209 void GetStatsOnBackgroundThread(std::vector<Metric>* metrics,
209 MetricType type) { 210 MetricType type) {
210 *metrics = performance_monitor_->database()->GetStatsForActivityAndMetric( 211 *metrics = performance_monitor_->database()->GetStatsForActivityAndMetric(
211 type, base::Time(), base::Time::FromInternalValue(kint64max)); 212 type, base::Time(), base::Time::FromInternalValue(kint64max));
212 } 213 }
213 214
214 // A handle for getting statistics from the database (see previous comments on 215 // A handle for getting statistics from the database (see previous comments on
215 // GetEvents() and GetEventsOnBackgroundThread). 216 // GetEvents() and GetEventsOnBackgroundThread).
216 Database::MetricInfoVector GetStats(MetricType type) { 217 std::vector<Metric> GetStats(MetricType type) {
217 content::BrowserThread::GetBlockingPool()->FlushForTesting(); 218 content::BrowserThread::GetBlockingPool()->FlushForTesting();
218 content::RunAllPendingInMessageLoop(); 219 content::RunAllPendingInMessageLoop();
219 220
220 Database::MetricInfoVector metrics; 221 std::vector<Metric> metrics;
221 content::BrowserThread::PostBlockingPoolSequencedTask( 222 content::BrowserThread::PostBlockingPoolSequencedTask(
222 Database::kDatabaseSequenceToken, 223 Database::kDatabaseSequenceToken,
223 FROM_HERE, 224 FROM_HERE,
224 base::Bind(&PerformanceMonitorBrowserTest::GetStatsOnBackgroundThread, 225 base::Bind(&PerformanceMonitorBrowserTest::GetStatsOnBackgroundThread,
225 base::Unretained(this), 226 base::Unretained(this),
226 &metrics, 227 &metrics,
227 type)); 228 type));
228 229
229 content::BrowserThread::GetBlockingPool()->FlushForTesting(); 230 content::BrowserThread::GetBlockingPool()->FlushForTesting();
230 return metrics; 231 return metrics;
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
544 ASSERT_EQ(kOldVersion, previous_version); 545 ASSERT_EQ(kOldVersion, previous_version);
545 ASSERT_TRUE(value->GetString("currentVersion", &current_version)); 546 ASSERT_TRUE(value->GetString("currentVersion", &current_version));
546 ASSERT_EQ(version_string, current_version); 547 ASSERT_EQ(version_string, current_version);
547 } 548 }
548 549
549 IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, GatherStatistics) { 550 IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, GatherStatistics) {
550 GatherStatistics(); 551 GatherStatistics();
551 552
552 // No stats should be recorded for this CPUUsage because this was the first 553 // No stats should be recorded for this CPUUsage because this was the first
553 // call to GatherStatistics. 554 // call to GatherStatistics.
554 Database::MetricInfoVector stats = GetStats(METRIC_CPU_USAGE); 555 std::vector<Metric> stats = GetStats(METRIC_CPU_USAGE);
555 ASSERT_EQ(0u, stats.size()); 556 ASSERT_EQ(0u, stats.size());
556 557
557 stats = GetStats(METRIC_PRIVATE_MEMORY_USAGE); 558 stats = GetStats(METRIC_PRIVATE_MEMORY_USAGE);
558 ASSERT_EQ(1u, stats.size()); 559 ASSERT_EQ(1u, stats.size());
559 EXPECT_GT(stats[0].value, 0); 560 EXPECT_GT(stats[0].value, 0);
560 561
561 stats = GetStats(METRIC_SHARED_MEMORY_USAGE); 562 stats = GetStats(METRIC_SHARED_MEMORY_USAGE);
562 ASSERT_EQ(1u, stats.size()); 563 ASSERT_EQ(1u, stats.size());
563 EXPECT_GT(stats[0].value, 0); 564 EXPECT_GT(stats[0].value, 0);
564 565
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 671
671 std::string event_profile; 672 std::string event_profile;
672 ASSERT_TRUE(events[0]->data()->GetString("profileName", &event_profile)); 673 ASSERT_TRUE(events[0]->data()->GetString("profileName", &event_profile));
673 ASSERT_EQ(first_profile_name_, event_profile); 674 ASSERT_EQ(first_profile_name_, event_profile);
674 675
675 ASSERT_TRUE(events[1]->data()->GetString("profileName", &event_profile)); 676 ASSERT_TRUE(events[1]->data()->GetString("profileName", &event_profile));
676 ASSERT_EQ(second_profile_name_, event_profile); 677 ASSERT_EQ(second_profile_name_, event_profile);
677 } 678 }
678 679
679 IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, StartupTime) { 680 IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, StartupTime) {
680 Database::MetricInfoVector metrics = GetStats(METRIC_TEST_STARTUP_TIME); 681 std::vector<Metric> metrics = GetStats(METRIC_TEST_STARTUP_TIME);
681 682
682 ASSERT_EQ(1u, metrics.size()); 683 ASSERT_EQ(1u, metrics.size());
683 ASSERT_LT(metrics[0].value, kMaxStartupTime.ToInternalValue()); 684 ASSERT_LT(metrics[0].value, kMaxStartupTime.ToInternalValue());
684 } 685 }
685 686
686 IN_PROC_BROWSER_TEST_F(PerformanceMonitorSessionRestoreBrowserTest, 687 IN_PROC_BROWSER_TEST_F(PerformanceMonitorSessionRestoreBrowserTest,
687 StartupWithSessionRestore) { 688 StartupWithSessionRestore) {
688 ui_test_utils::NavigateToURL( 689 ui_test_utils::NavigateToURL(
689 browser(), 690 browser(),
690 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), 691 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory),
691 FilePath(FILE_PATH_LITERAL("title1.html")))); 692 FilePath(FILE_PATH_LITERAL("title1.html"))));
692 693
693 QuitBrowserAndRestore(browser(), 1); 694 QuitBrowserAndRestore(browser(), 1);
694 695
695 Database::MetricInfoVector metrics = GetStats(METRIC_TEST_STARTUP_TIME); 696 std::vector<Metric> metrics = GetStats(METRIC_TEST_STARTUP_TIME);
696 ASSERT_EQ(1u, metrics.size()); 697 ASSERT_EQ(1u, metrics.size());
697 ASSERT_LT(metrics[0].value, kMaxStartupTime.ToInternalValue()); 698 ASSERT_LT(metrics[0].value, kMaxStartupTime.ToInternalValue());
698 699
699 metrics = GetStats(METRIC_SESSION_RESTORE_TIME); 700 metrics = GetStats(METRIC_SESSION_RESTORE_TIME);
700 ASSERT_EQ(1u, metrics.size()); 701 ASSERT_EQ(1u, metrics.size());
701 ASSERT_LT(metrics[0].value, kMaxStartupTime.ToInternalValue()); 702 ASSERT_LT(metrics[0].value, kMaxStartupTime.ToInternalValue());
702 } 703 }
703 704
704 IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, PageLoadTime) { 705 IN_PROC_BROWSER_TEST_F(PerformanceMonitorBrowserTest, PageLoadTime) {
705 const base::TimeDelta kMaxLoadTime = base::TimeDelta::FromSeconds(30); 706 const base::TimeDelta kMaxLoadTime = base::TimeDelta::FromSeconds(30);
706 707
707 ui_test_utils::NavigateToURL( 708 ui_test_utils::NavigateToURL(
708 browser(), 709 browser(),
709 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), 710 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory),
710 FilePath(FILE_PATH_LITERAL("title1.html")))); 711 FilePath(FILE_PATH_LITERAL("title1.html"))));
711 712
712 ui_test_utils::NavigateToURL( 713 ui_test_utils::NavigateToURL(
713 browser(), 714 browser(),
714 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), 715 ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory),
715 FilePath(FILE_PATH_LITERAL("title2.html")))); 716 FilePath(FILE_PATH_LITERAL("title2.html"))));
716 717
717 Database::MetricInfoVector metrics = GetStats(METRIC_PAGE_LOAD_TIME); 718 std::vector<Metric> metrics = GetStats(METRIC_PAGE_LOAD_TIME);
718 719
719 ASSERT_EQ(2u, metrics.size()); 720 ASSERT_EQ(2u, metrics.size());
720 ASSERT_LT(metrics[0].value, kMaxLoadTime.ToInternalValue()); 721 ASSERT_LT(metrics[0].value, kMaxLoadTime.ToInternalValue());
721 ASSERT_LT(metrics[1].value, kMaxLoadTime.ToInternalValue()); 722 ASSERT_LT(metrics[1].value, kMaxLoadTime.ToInternalValue());
722 } 723 }
723 724
724 } // namespace performance_monitor 725 } // namespace performance_monitor
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698