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

Unified Diff: tools/telemetry/telemetry/page_test_runner.py

Issue 12252020: Add a telemetry-based gpu_tests folder (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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
« content/test/gpu/page_sets/pixel_tests.json ('K') | « content/test/gpu/run_tests ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/page_test_runner.py
diff --git a/tools/telemetry/telemetry/page_test_runner.py b/tools/telemetry/telemetry/page_test_runner.py
new file mode 100644
index 0000000000000000000000000000000000000000..4dcb31167ccc2a35ba3d03e28cdddd9709ff3701
--- /dev/null
+++ b/tools/telemetry/telemetry/page_test_runner.py
@@ -0,0 +1,74 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+import logging
+import os
+import sys
+
+from telemetry import browser_finder
+from telemetry import browser_options
+from telemetry import discover
+from telemetry import page_test
+from telemetry import page_runner
+from telemetry import page_set
+
+def Main(test_dir):
+ """Turns a PageTest into a command-line program.
+
+ Args:
+ test_dir: Path to directory containing PageTests.
+ """
+ tests = discover.Discover(test_dir, '',
+ page_test.PageTest)
+
+ # Naively find the test. If we use the browser options parser, we run
+ # the risk of failing to parse if we use a test-specific parameter.
+ test_name = None
+ for arg in sys.argv:
+ if arg in tests:
+ test_name = arg
+
+ options = browser_options.BrowserOptions()
+ parser = options.CreateParser('%prog [options] <test> <page_set>')
+
+ page_runner.PageRunner.AddCommandLineOptions(parser)
+
+ test = None
+ if test_name is not None:
+ test = tests[test_name]()
dtu 2013/02/13 23:54:23 Print a "test not found" message instead of crashi
+ test.AddCommandLineOptions(parser)
+
+ _, args = parser.parse_args()
+
+ if test is None or len(args) != 2:
+ parser.print_usage()
+ import page_sets # pylint: disable=F0401
dtu 2013/02/13 23:54:23 How does this import work? Also, tools/telemetry s
+ print >> sys.stderr, 'Available tests:\n%s\n' % ',\n'.join(
+ sorted(tests.keys()))
+ print >> sys.stderr, 'Available page_sets:\n%s\n' % ',\n'.join(
+ sorted([os.path.relpath(f)
+ for f in page_sets.GetAllPageSetFilenames()]))
+ sys.exit(1)
+
+ ps = page_set.PageSet.FromFile(args[1])
+
+ test.CustomizeBrowserOptions(options)
+ possible_browser = browser_finder.FindBrowser(options)
+ if not possible_browser:
+ print >> sys.stderr, """No browser found.\n
+Use --browser=list to figure out which are available.\n"""
+ sys.exit(1)
+
+ results = page_test.PageTestResults()
+ with page_runner.PageRunner(ps) as runner:
+ runner.Run(options, possible_browser, test, results)
+
+ sys.stdout.write('%i pages succeed\n' % len(results.page_successes))
dtu 2013/02/13 23:54:23 print
+ if len(results.page_failures):
+ logging.warning('Failed pages: %s', '\n'.join(
+ [failure['page'].url for failure in results.page_failures]))
+
+ if len(results.skipped_pages):
+ logging.warning('Skipped pages: %s', '\n'.join(
+ [skipped['page'].url for skipped in results.skipped_pages]))
+ return min(255, len(results.page_failures))
« content/test/gpu/page_sets/pixel_tests.json ('K') | « content/test/gpu/run_tests ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698