summaryrefslogtreecommitdiffstats
path: root/chromium/tools/site_compare/commands/compare2.py
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/tools/site_compare/commands/compare2.py')
-rw-r--r--chromium/tools/site_compare/commands/compare2.py170
1 files changed, 0 insertions, 170 deletions
diff --git a/chromium/tools/site_compare/commands/compare2.py b/chromium/tools/site_compare/commands/compare2.py
deleted file mode 100644
index 7e15559badb..00000000000
--- a/chromium/tools/site_compare/commands/compare2.py
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2011 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.
-
-"""SiteCompare command to invoke the same page in two versions of a browser.
-
-Does the easiest compatibility test: equality comparison between two different
-versions of the same browser. Invoked with a series of command line options
-that specify which URLs to check, which browser to use, where to store results,
-etc.
-"""
-
-import os # Functions for walking the directory tree
-import tempfile # Get a temporary directory to hold intermediates
-
-import command_line
-import drivers # Functions for driving keyboard/mouse/windows, OS-specific
-import operators # Functions that, given two bitmaps as input, produce
- # output depending on the performance of an operation
-import scrapers # Functions that know how to capture a render from
- # particular browsers
-
-
-def CreateCommand(cmdline):
- """Inserts the command and arguments into a command line for parsing."""
- cmd = cmdline.AddCommand(
- ["compare2"],
- "Compares the output of two browsers on the same URL or list of URLs",
- ValidateCompare2,
- ExecuteCompare2)
-
- cmd.AddArgument(
- ["-b1", "--browser1"], "Full path to first browser's executable",
- type="readfile", metaname="PATH", required=True)
- cmd.AddArgument(
- ["-b2", "--browser2"], "Full path to second browser's executable",
- type="readfile", metaname="PATH", required=True)
- cmd.AddArgument(
- ["-b", "--browser"], "Which browser to use", type="string",
- default="chrome")
- cmd.AddArgument(
- ["-b1v", "--browser1ver"], "Version of first browser", metaname="VERSION")
- cmd.AddArgument(
- ["-b2v", "--browser2ver"], "Version of second browser", metaname="VERSION")
- cmd.AddArgument(
- ["-b1n", "--browser1name"], "Optional name for first browser (used in "
- "directory to hold intermediate files)", metaname="NAME")
- cmd.AddArgument(
- ["-b2n", "--browser2name"], "Optional name for second browser (used in "
- "directory to hold intermediate files)", metaname="NAME")
- cmd.AddArgument(
- ["-o", "--outdir"], "Directory to store scrape files", metaname="DIR")
- cmd.AddArgument(
- ["-u", "--url"], "URL to compare")
- cmd.AddArgument(
- ["-l", "--list"], "List of URLs to compare", type="readfile")
- cmd.AddMutualExclusion(["--url", "--list"])
- cmd.AddArgument(
- ["-s", "--startline"], "First line of URL list", type="int")
- cmd.AddArgument(
- ["-e", "--endline"], "Last line of URL list (exclusive)", type="int")
- cmd.AddArgument(
- ["-c", "--count"], "Number of lines of URL file to use", type="int")
- cmd.AddDependency("--startline", "--list")
- cmd.AddRequiredGroup(["--url", "--list"])
- cmd.AddDependency("--endline", "--list")
- cmd.AddDependency("--count", "--list")
- cmd.AddMutualExclusion(["--count", "--endline"])
- cmd.AddDependency("--count", "--startline")
- cmd.AddArgument(
- ["-t", "--timeout"], "Amount of time (seconds) to wait for browser to "
- "finish loading",
- type="int", default=60)
- cmd.AddArgument(
- ["-log", "--logfile"], "File to write output", type="string", required=True)
- cmd.AddArgument(
- ["-sz", "--size"], "Browser window size", default=(800, 600), type="coords")
- cmd.AddArgument(
- ["-m", "--maskdir"], "Path that holds masks to use for comparison")
- cmd.AddArgument(
- ["-d", "--diffdir"], "Path to hold the difference of comparisons that fail")
-
-
-def ValidateCompare2(command):
- """Validate the arguments to compare2. Raises ParseError if failed."""
- executables = [".exe", ".com", ".bat"]
- if (os.path.splitext(command["--browser1"])[1].lower() not in executables or
- os.path.splitext(command["--browser2"])[1].lower() not in executables):
- raise command_line.ParseError("Browser filename must be an executable")
-
-
-def ExecuteCompare2(command):
- """Executes the Compare2 command."""
- if command["--url"]:
- url_list = [command["--url"]]
- else:
- startline = command["--startline"]
- if command["--count"]:
- endline = startline+command["--count"]
- else:
- endline = command["--endline"]
- url_list = [url.strip() for url in
- open(command["--list"], "r").readlines()[startline:endline]]
-
- log_file = open(command["--logfile"], "w")
-
- outdir = command["--outdir"]
- if not outdir: outdir = tempfile.gettempdir()
-
- scrape_info_list = []
-
- class ScrapeInfo(object):
- """Helper class to hold information about a scrape."""
- __slots__ = ["browser_path", "scraper", "outdir", "result"]
-
- for index in xrange(1, 3):
- scrape_info = ScrapeInfo()
- scrape_info.browser_path = command["--browser%d" % index]
- scrape_info.scraper = scrapers.GetScraper(
- (command["--browser"], command["--browser%dver" % index]))
-
- if command["--browser%dname" % index]:
- scrape_info.outdir = os.path.join(outdir,
- command["--browser%dname" % index])
- else:
- scrape_info.outdir = os.path.join(outdir, str(index))
-
- drivers.windowing.PreparePath(scrape_info.outdir)
- scrape_info_list.append(scrape_info)
-
- compare = operators.GetOperator("equals_with_mask")
-
- for url in url_list:
- success = True
-
- for scrape_info in scrape_info_list:
- scrape_info.result = scrape_info.scraper.Scrape(
- [url], scrape_info.outdir, command["--size"], (0, 0),
- command["--timeout"], path=scrape_info.browser_path)
-
- if not scrape_info.result:
- scrape_info.result = "success"
- else:
- success = False
-
- result = "unknown"
-
- if success:
- result = "equal"
-
- file1 = drivers.windowing.URLtoFilename(
- url, scrape_info_list[0].outdir, ".bmp")
- file2 = drivers.windowing.URLtoFilename(
- url, scrape_info_list[1].outdir, ".bmp")
-
- comparison_result = compare.Compare(file1, file2,
- maskdir=command["--maskdir"])
-
- if comparison_result is not None:
- result = "not-equal"
-
- if command["--diffdir"]:
- comparison_result[1].save(
- drivers.windowing.URLtoFilename(url, command["--diffdir"], ".bmp"))
-
- # TODO(jhaas): maybe use the logging module rather than raw file writes
- log_file.write("%s %s %s %s\n" % (url,
- scrape_info_list[0].result,
- scrape_info_list[1].result,
- result))