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

Unified Diff: chrome/test/perf/page_cycler_test.cc

Issue 9956045: Add Web Page Replay test to page cycler. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for review. Created 8 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/perf/page_cycler_test.cc
diff --git a/chrome/test/perf/page_cycler_test.cc b/chrome/test/perf/page_cycler_test.cc
index 272a4f928076bbf44c398c3e01982745a910b2b7..b633f610096e308f2d7edcaad43bd87c51afb274 100644
--- a/chrome/test/perf/page_cycler_test.cc
+++ b/chrome/test/perf/page_cycler_test.cc
@@ -29,12 +29,14 @@
#ifndef NDEBUG
static const int kTestIterations = 2;
static const int kDatabaseTestIterations = 2;
+static const int kWebPageReplayIterations = 2;
#else
static const int kTestIterations = 10;
// For some unknown reason, the DB perf tests are much much slower on the
// Vista perf bot, so we have to cut down the number of iterations to 5
// to make sure each test finishes in less than 10 minutes.
static const int kDatabaseTestIterations = 5;
+static const int kWebPageReplayIterations = 5;
#endif
static const int kIDBTestIterations = 5;
@@ -443,6 +445,56 @@ class PageCyclerIndexedDatabaseReferenceTest : public PageCyclerReferenceTest {
}
};
+// Web Page Replay is a proxy server to record and serve pages with
+// realistic network delays and bandwidth throttling. runtest.py
+// launches replay.py to support these tests.
James Simonsen 2012/04/05 00:07:22 nit: This can be reflowed.
+class PageCyclerWebPageReplayTest : public PageCyclerTest {
+ public:
+ PageCyclerWebPageReplayTest() {
+ FilePath extension_path;
+ PathService::Get(base::DIR_SOURCE_ROOT, &extension_path);
+ extension_path = extension_path.Append(FILE_PATH_LITERAL("tools"));
+ extension_path = extension_path.Append(FILE_PATH_LITERAL("page_cycler"));
+ extension_path = extension_path.Append(FILE_PATH_LITERAL("webpagereplay"));
+ extension_path = extension_path.Append(FILE_PATH_LITERAL("extension"));
+ launch_arguments_.AppendSwitchPath(
+ switches::kLoadExtension, extension_path);
+ launch_arguments_.AppendSwitchASCII(
+ switches::kHostResolverRules, "MAP * 127.0.0.1");
+ launch_arguments_.AppendSwitchASCII(
+ switches::kTestingFixedHttpPort, "8080");
+ launch_arguments_.AppendSwitchASCII(
+ switches::kTestingFixedHttpsPort, "8413");
+ launch_arguments_.AppendSwitch(switches::kEnableExperimentalExtensionApis);
+ launch_arguments_.AppendSwitch(switches::kEnableStatsTable);
+ launch_arguments_.AppendSwitch(switches::kEnableBenchmarking);
+ launch_arguments_.AppendSwitch(switches::kIgnoreCertificateErrors);
+ launch_arguments_.AppendSwitch(switches::kDisableTranslate);
+ launch_arguments_.AppendSwitch(switches::kNoProxyServer);
+ }
+
+ virtual FilePath GetDataPath(const char* name) {
+ // Make sure the test data is checked out
+ FilePath test_path;
+ PathService::Get(base::DIR_SOURCE_ROOT, &test_path);
+ test_path = test_path.Append(FILE_PATH_LITERAL("data"));
+ test_path = test_path.Append(FILE_PATH_LITERAL("page_cycler"));
+ test_path = test_path.Append(FILE_PATH_LITERAL("webpagereplay"));
+ test_path = test_path.AppendASCII(name);
+ return test_path;
+ }
+
+ void RunTest(const char* graph, const char* name) {
+ // The WPR extension expects a file URL for the start page.
+ const bool use_http = false;
+ PageCyclerTest::RunTestWithSuffix(graph, name, use_http, "");
+ }
+
+ virtual int GetTestIterations() {
+ return kWebPageReplayIterations;
+ }
+};
+
// This macro simplifies setting up regular and reference build tests.
#define PAGE_CYCLER_TESTS(test, name, use_http) \
TEST_F(PageCyclerTest, name) { \
@@ -497,6 +549,11 @@ TEST_F(PageCyclerExtensionWebRequestTest, name) { \
RunTest("times", "extension_webrequest", "_extwr", test, false); \
}
+#define PAGE_CYCLER_WEBPAGEREPLAY_TESTS(test, name) \
+TEST_F(PageCyclerWebPageReplayTest, name) { \
+ RunTest("times", test); \
+}
+
// file-URL tests
PAGE_CYCLER_FILE_TESTS("moz", MozFile);
PAGE_CYCLER_EXTENSIONS_FILE_TESTS("moz", MozFile);
@@ -521,6 +578,11 @@ PAGE_CYCLER_HTTP_TESTS("intl2", Intl2Http);
PAGE_CYCLER_HTTP_TESTS("dom", DomHttp);
PAGE_CYCLER_HTTP_TESTS("bloat", BloatHttp);
+// Web Page Replay (simulated network) tests (Windows unsupported).
James Simonsen 2012/04/05 00:07:22 Why? (I know, but you should explain it to others
+#if !defined(OS_WIN)
+PAGE_CYCLER_WEBPAGEREPLAY_TESTS("2012Q2", 2012Q2);
+#endif
+
// HTML5 database tests
// These tests are _really_ slow on XP/Vista.
#if !defined(OS_WIN)
« no previous file with comments | « no previous file | tools/page_cycler/webpagereplay/README » ('j') | tools/page_cycler/webpagereplay/extension/background.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698