<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[185898] trunk/Tools</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/185898">185898</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2015-06-23 19:13:24 -0700 (Tue, 23 Jun 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Refactoring benchmark runner script to follow pep8 code style.
https://bugs.webkit.org/show_bug.cgi?id=146264
Patch by Dewei Zhu <dewei_zhu@apple.com> on 2015-06-23
Reviewed by Ryosuke Niwa.
Refactor benchmark runner script to follow pep8 code style.
* Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:
(GenericBenchmarkBuilder.prepare):
(GenericBenchmarkBuilder._run_create_script):
(GenericBenchmarkBuilder._copy_benchmark_to_temp_dir):
(GenericBenchmarkBuilder._fetch_remote_archive):
(GenericBenchmarkBuilder):
(GenericBenchmarkBuilder._checkout_with_subversion):
(GenericBenchmarkBuilder._apply_patch):
(GenericBenchmarkBuilder.clean):
(GenericBenchmarkBuilder._runCreateScript): Deleted.
(GenericBenchmarkBuilder._copyBenchmarkToTempDir): Deleted.
(GenericBenchmarkBuilder._fetchRemoteArchive): Deleted.
(GenericBenchmarkBuilder._checkoutWithSubverion): Deleted.
(GenericBenchmarkBuilder._applyPatch): Deleted.
* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.__init__):
(BenchmarkRunner._find_plan_file):
(BenchmarkRunner.execute):
(BenchmarkRunner._cleanup):
(BenchmarkRunner._dump):
(BenchmarkRunner._wrap):
(BenchmarkRunner._merge):
(BenchmarkRunner._show_results):
(BenchmarkRunner._findPlanFile): Deleted.
(BenchmarkRunner.cleanup): Deleted.
(BenchmarkRunner.dump): Deleted.
(BenchmarkRunner.wrap): Deleted.
(BenchmarkRunner.merge): Deleted.
(BenchmarkRunner.show_results): Deleted.
* Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
(BrowserDriver.prepare_env):
(BrowserDriver.launch_url):
(BrowserDriver.close_browsers):
(BrowserDriver.prepareEnv): Deleted.
(BrowserDriver.launchUrl): Deleted.
(BrowserDriver.closeBrowser): Deleted.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver):
(OSXBrowserDriver.prepare_env):
(OSXBrowserDriver.close_browsers):
(OSXBrowserDriver._launch_process):
(OSXBrowserDriver._terminiate_processes):
(OSXBrowserDriver._launch_process_with_caffinate):
(OSXBrowserDriver._screen_size):
(OSXBrowserDriver.prepareEnv): Deleted.
(OSXBrowserDriver.closeBrowsers): Deleted.
(OSXBrowserDriver.launchProcess): Deleted.
(OSXBrowserDriver.terminateProcesses): Deleted.
(OSXBrowserDriver.launchProcessWithCaffinate): Deleted.
(OSXBrowserDriver.screenSize): Deleted.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
(OSXChromeDriver):
(OSXChromeDriver.launch_url):
(OSXChromeCanaryDriver):
(OSXChromeCanaryDriver.launch_url):
(OSXChromeDriver.launchUrl): Deleted.
(OSXChromeCanaryDriver.launchUrl): Deleted.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
(OSXFirefoxDriver):
(OSXFirefoxDriver.launch_url):
(OSXFirefoxNightlyDriver):
(OSXFirefoxNightlyDriver.launch_url):
(OSXFirefoxDriver.launchUrl): Deleted.
(OSXFirefoxNightlyDriver.launchUrl): Deleted.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
(OSXSafariDriver):
(OSXSafariDriver.prepare_env):
(OSXSafariDriver.launch_url):
(OSXSafariDriver.close_browsers):
(OSXSafariDriver._maximize_window):
(OSXSafariDriver.prepareEnv): Deleted.
(OSXSafariDriver.launchUrl): Deleted.
(OSXSafariDriver.closeBrowsers): Deleted.
(OSXSafariDriver.maximizeWindow): Deleted.
* Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver.fetch_result):
(HTTPServerDriver.kill_server):
(HTTPServerDriver.get_return_code):
(HTTPServerDriver.set_device_id):
(HTTPServerDriver.fetchResult): Deleted.
(HTTPServerDriver.killServer): Deleted.
(HTTPServerDriver.getReturnCode): Deleted.
(HTTPServerDriver.setDeviceID): Deleted.
* Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
(SimpleHTTPServerDriver.serve):
(SimpleHTTPServerDriver.base_url):
(SimpleHTTPServerDriver.fetch_result):
(SimpleHTTPServerDriver.kill_server):
(SimpleHTTPServerDriver.get_return_code):
(SimpleHTTPServerDriver): Deleted.
(SimpleHTTPServerDriver.baseUrl): Deleted.
(SimpleHTTPServerDriver.fetchResult): Deleted.
(SimpleHTTPServerDriver.killServer): Deleted.
(SimpleHTTPServerDriver.getReturnCode): Deleted.
* Scripts/webkitpy/benchmark_runner/utils.py:
(get_path_from_project_root):
(force_remove):
(getPathFromProjectRoot): Deleted.
(forceRemove): Deleted.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbenchmark_buildergeneric_benchmark_builderpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbenchmark_runnerpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverbrowser_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_browser_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_chrome_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_firefox_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_safari_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerhttp_server_driverhttp_server_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerhttp_server_driversimple_http_server_driverpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerutilspy">trunk/Tools/Scripts/webkitpy/benchmark_runner/utils.py</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/ChangeLog        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -1,3 +1,112 @@
</span><ins>+2015-06-23 Dewei Zhu <dewei_zhu@apple.com>
+
+ Refactoring benchmark runner script to follow pep8 code style.
+ https://bugs.webkit.org/show_bug.cgi?id=146264
+
+ Reviewed by Ryosuke Niwa.
+
+ Refactor benchmark runner script to follow pep8 code style.
+
+ * Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:
+ (GenericBenchmarkBuilder.prepare):
+ (GenericBenchmarkBuilder._run_create_script):
+ (GenericBenchmarkBuilder._copy_benchmark_to_temp_dir):
+ (GenericBenchmarkBuilder._fetch_remote_archive):
+ (GenericBenchmarkBuilder):
+ (GenericBenchmarkBuilder._checkout_with_subversion):
+ (GenericBenchmarkBuilder._apply_patch):
+ (GenericBenchmarkBuilder.clean):
+ (GenericBenchmarkBuilder._runCreateScript): Deleted.
+ (GenericBenchmarkBuilder._copyBenchmarkToTempDir): Deleted.
+ (GenericBenchmarkBuilder._fetchRemoteArchive): Deleted.
+ (GenericBenchmarkBuilder._checkoutWithSubverion): Deleted.
+ (GenericBenchmarkBuilder._applyPatch): Deleted.
+ * Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
+ (BenchmarkRunner.__init__):
+ (BenchmarkRunner._find_plan_file):
+ (BenchmarkRunner.execute):
+ (BenchmarkRunner._cleanup):
+ (BenchmarkRunner._dump):
+ (BenchmarkRunner._wrap):
+ (BenchmarkRunner._merge):
+ (BenchmarkRunner._show_results):
+ (BenchmarkRunner._findPlanFile): Deleted.
+ (BenchmarkRunner.cleanup): Deleted.
+ (BenchmarkRunner.dump): Deleted.
+ (BenchmarkRunner.wrap): Deleted.
+ (BenchmarkRunner.merge): Deleted.
+ (BenchmarkRunner.show_results): Deleted.
+ * Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
+ (BrowserDriver.prepare_env):
+ (BrowserDriver.launch_url):
+ (BrowserDriver.close_browsers):
+ (BrowserDriver.prepareEnv): Deleted.
+ (BrowserDriver.launchUrl): Deleted.
+ (BrowserDriver.closeBrowser): Deleted.
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
+ (OSXBrowserDriver):
+ (OSXBrowserDriver.prepare_env):
+ (OSXBrowserDriver.close_browsers):
+ (OSXBrowserDriver._launch_process):
+ (OSXBrowserDriver._terminiate_processes):
+ (OSXBrowserDriver._launch_process_with_caffinate):
+ (OSXBrowserDriver._screen_size):
+ (OSXBrowserDriver.prepareEnv): Deleted.
+ (OSXBrowserDriver.closeBrowsers): Deleted.
+ (OSXBrowserDriver.launchProcess): Deleted.
+ (OSXBrowserDriver.terminateProcesses): Deleted.
+ (OSXBrowserDriver.launchProcessWithCaffinate): Deleted.
+ (OSXBrowserDriver.screenSize): Deleted.
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py:
+ (OSXChromeDriver):
+ (OSXChromeDriver.launch_url):
+ (OSXChromeCanaryDriver):
+ (OSXChromeCanaryDriver.launch_url):
+ (OSXChromeDriver.launchUrl): Deleted.
+ (OSXChromeCanaryDriver.launchUrl): Deleted.
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py:
+ (OSXFirefoxDriver):
+ (OSXFirefoxDriver.launch_url):
+ (OSXFirefoxNightlyDriver):
+ (OSXFirefoxNightlyDriver.launch_url):
+ (OSXFirefoxDriver.launchUrl): Deleted.
+ (OSXFirefoxNightlyDriver.launchUrl): Deleted.
+ * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:
+ (OSXSafariDriver):
+ (OSXSafariDriver.prepare_env):
+ (OSXSafariDriver.launch_url):
+ (OSXSafariDriver.close_browsers):
+ (OSXSafariDriver._maximize_window):
+ (OSXSafariDriver.prepareEnv): Deleted.
+ (OSXSafariDriver.launchUrl): Deleted.
+ (OSXSafariDriver.closeBrowsers): Deleted.
+ (OSXSafariDriver.maximizeWindow): Deleted.
+ * Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
+ (HTTPServerDriver.fetch_result):
+ (HTTPServerDriver.kill_server):
+ (HTTPServerDriver.get_return_code):
+ (HTTPServerDriver.set_device_id):
+ (HTTPServerDriver.fetchResult): Deleted.
+ (HTTPServerDriver.killServer): Deleted.
+ (HTTPServerDriver.getReturnCode): Deleted.
+ (HTTPServerDriver.setDeviceID): Deleted.
+ * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
+ (SimpleHTTPServerDriver.serve):
+ (SimpleHTTPServerDriver.base_url):
+ (SimpleHTTPServerDriver.fetch_result):
+ (SimpleHTTPServerDriver.kill_server):
+ (SimpleHTTPServerDriver.get_return_code):
+ (SimpleHTTPServerDriver): Deleted.
+ (SimpleHTTPServerDriver.baseUrl): Deleted.
+ (SimpleHTTPServerDriver.fetchResult): Deleted.
+ (SimpleHTTPServerDriver.killServer): Deleted.
+ (SimpleHTTPServerDriver.getReturnCode): Deleted.
+ * Scripts/webkitpy/benchmark_runner/utils.py:
+ (get_path_from_project_root):
+ (force_remove):
+ (getPathFromProjectRoot): Deleted.
+ (forceRemove): Deleted.
+
</ins><span class="cx"> 2015-06-23 Anders Carlsson <andersca@apple.com>
</span><span class="cx">
</span><span class="cx"> Add operator! and copy/move constructors to WeakObjCPtr
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbenchmark_buildergeneric_benchmark_builderpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx"> import subprocess
</span><span class="cx">
</span><span class="cx"> from zipfile import ZipFile
</span><del>-from webkitpy.benchmark_runner.utils import getPathFromProjectRoot, forceRemove
</del><ins>+from webkitpy.benchmark_runner.utils import get_path_from_project_root, force_remove
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> _log = logging.getLogger(__name__)
</span><span class="lines">@@ -19,71 +19,71 @@
</span><span class="cx"> builder_name = 'GenericBenchmarkBuilder'
</span><span class="cx">
</span><span class="cx"> def prepare(self, name, plan):
</span><del>- self.name = name
- self.webRoot = tempfile.mkdtemp()
- self.dest = os.path.join(self.webRoot, self.name)
</del><ins>+ self._name = name
+ self._web_root = tempfile.mkdtemp()
+ self._dest = os.path.join(self._web_root, self._name)
</ins><span class="cx"> if 'local_copy' in plan:
</span><del>- self._copyBenchmarkToTempDir(plan['local_copy'])
</del><ins>+ self._copy_benchmark_to_temp_dir(plan['local_copy'])
</ins><span class="cx"> elif 'remote_archive' in plan:
</span><del>- self._fetchRemoteArchive(plan['remote_archive'])
</del><ins>+ self._fetch_remote_archive(plan['remote_archive'])
</ins><span class="cx"> elif 'svn_source' in plan:
</span><del>- self._checkoutWithSubverion(plan['svn_source'])
</del><ins>+ self._checkout_with_subversion(plan['svn_source'])
</ins><span class="cx"> else:
</span><span class="cx"> raise Exception('The benchmark location was not specified')
</span><span class="cx">
</span><del>- _log.info('Copied the benchmark into: %s' % self.dest)
</del><ins>+ _log.info('Copied the benchmark into: %s' % self._dest)
</ins><span class="cx"> try:
</span><span class="cx"> if 'create_script' in plan:
</span><del>- self._runCreateScript(plan['create_script'])
</del><ins>+ self._run_create_script(plan['create_script'])
</ins><span class="cx"> if 'benchmark_patch' in plan:
</span><del>- self._applyPatch(plan['benchmark_patch'])
- return self.webRoot
</del><ins>+ self._apply_patch(plan['benchmark_patch'])
+ return self._web_root
</ins><span class="cx"> except Exception:
</span><span class="cx"> self.clean()
</span><span class="cx"> raise
</span><span class="cx">
</span><del>- def _runCreateScript(self, createScript):
- oldWorkingDirectory = os.getcwd()
- os.chdir(self.dest)
- _log.debug('Running %s in %s' % (createScript, self.dest))
- errorCode = subprocess.call(createScript)
- os.chdir(oldWorkingDirectory)
- if errorCode:
- raise Exception('Cannot create the benchmark - Error: %s' % errorCode)
</del><ins>+ def _run_create_script(self, create_script):
+ old_working_directory = os.getcwd()
+ os.chdir(self._dest)
+ _log.debug('Running %s in %s' % (create_script, self._dest))
+ error_code = subprocess.call(create_script)
+ os.chdir(old_working_directory)
+ if error_code:
+ raise Exception('Cannot create the benchmark - Error: %s' % error_code)
</ins><span class="cx">
</span><del>- def _copyBenchmarkToTempDir(self, benchmarkPath):
- shutil.copytree(getPathFromProjectRoot(benchmarkPath), self.dest)
</del><ins>+ def _copy_benchmark_to_temp_dir(self, benchmark_path):
+ shutil.copytree(get_path_from_project_root(benchmark_path), self._dest)
</ins><span class="cx">
</span><del>- def _fetchRemoteArchive(self, archiveURL):
- archivePath = os.path.join(self.webRoot, 'archive.zip')
- _log.info('Downloading %s to %s' % (archiveURL, archivePath))
- urllib.urlretrieve(archiveURL, archivePath)
</del><ins>+ def _fetch_remote_archive(self, archive_url):
+ archive_path = os.path.join(self._web_root, 'archive.zip')
+ _log.info('Downloading %s to %s' % (archive_url, archive_path))
+ urllib.urlretrieve(archive_url, archive_path)
</ins><span class="cx">
</span><del>- with ZipFile(archivePath, 'r') as archive:
- archive.extractall(self.dest)
</del><ins>+ with ZipFile(archive_path, 'r') as archive:
+ archive.extractall(self._dest)
</ins><span class="cx">
</span><del>- unarchivedFiles = filter(lambda name: not name.startswith('.'), os.listdir(self.dest))
- if len(unarchivedFiles) == 1:
- firstFile = os.path.join(self.dest, unarchivedFiles[0])
- if os.path.isdir(firstFile):
- shutil.move(firstFile, self.webRoot)
- os.rename(os.path.join(self.webRoot, unarchivedFiles[0]), self.dest)
</del><ins>+ unarchived_files = filter(lambda name: not name.startswith('.'), os.listdir(self._dest))
+ if len(unarchived_files) == 1:
+ first_file = os.path.join(self._dest, unarchived_files[0])
+ if os.path.isdir(first_file):
+ shutil.move(first_file, self._web_root)
+ os.rename(os.path.join(self._web_root, unarchived_files[0]), self._dest)
</ins><span class="cx">
</span><del>- def _checkoutWithSubverion(self, subversionURL):
- _log.info('Checking out %s to %s' % (subversionURL, self.dest))
- errorCode = subprocess.call(['svn', 'checkout', subversionURL, self.dest])
- if errorCode:
- raise Exception('Cannot checkout the benchmark - Error: %s' % errorCode)
</del><ins>+ def _checkout_with_subversion(self, subversion_url):
+ _log.info('Checking out %s to %s' % (subversion_url, self._dest))
+ error_code = subprocess.call(['svn', 'checkout', subversion_url, self._dest])
+ if error_code:
+ raise Exception('Cannot checkout the benchmark - Error: %s' % error_code)
</ins><span class="cx">
</span><del>- def _applyPatch(self, patch):
- oldWorkingDirectory = os.getcwd()
- os.chdir(self.dest)
- errorCode = subprocess.call(['patch', '-p1', '-f', '-i', getPathFromProjectRoot(patch)])
- os.chdir(oldWorkingDirectory)
- if errorCode:
- raise Exception('Cannot apply patch, will skip current benchmarkPath - Error: %s' % errorCode)
</del><ins>+ def _apply_patch(self, patch):
+ old_working_directory = os.getcwd()
+ os.chdir(self._dest)
+ error_code = subprocess.call(['patch', '-p1', '-f', '-i', get_path_from_project_root(patch)])
+ os.chdir(old_working_directory)
+ if error_code:
+ raise Exception('Cannot apply patch, will skip current benchmark_path - Error: %s' % error_code)
</ins><span class="cx">
</span><span class="cx"> def clean(self):
</span><span class="cx"> _log.info('Cleaning Benchmark')
</span><del>- if self.webRoot:
- forceRemove(self.webRoot)
</del><ins>+ if self._web_root:
+ force_remove(self._web_root)
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbenchmark_runnerpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -16,7 +16,6 @@
</span><span class="cx"> from benchmark_results import BenchmarkResults
</span><span class="cx"> from browser_driver.browser_driver_factory import BrowserDriverFactory
</span><span class="cx"> from http_server_driver.http_server_driver_factory import HTTPServerDriverFactory
</span><del>-from utils import getPathFromProjectRoot
</del><span class="cx"> from utils import timeout
</span><span class="cx">
</span><span class="cx">
</span><span class="lines">@@ -25,116 +24,116 @@
</span><span class="cx">
</span><span class="cx"> class BenchmarkRunner(object):
</span><span class="cx">
</span><del>- def __init__(self, planFile, localCopy, countOverride, buildDir, outputFile, platform, browser, httpServerDriverOverride=None, deviceID=None):
</del><ins>+ def __init__(self, plan_file, local_copy, count_override, build_dir, output_file, platform, browser, http_server_driver_override=None, device_id=None):
</ins><span class="cx"> try:
</span><del>- planFile = self._findPlanFile(planFile)
- with open(planFile, 'r') as fp:
- self.planName = os.path.split(os.path.splitext(planFile)[0])[1]
- self.plan = json.load(fp)
- if localCopy:
- self.plan['local_copy'] = localCopy
- if countOverride:
- self.plan['count'] = countOverride
- if httpServerDriverOverride:
- self.plan['http_server_driver'] = httpServerDriverOverride
- self.browserDriver = BrowserDriverFactory.create(platform, browser)
- self.httpServerDriver = HTTPServerDriverFactory.create(self.plan['http_server_driver'])
- self.httpServerDriver.setDeviceID(deviceID)
- self.buildDir = os.path.abspath(buildDir) if buildDir else None
- self.outputFile = outputFile
- self.deviceID = deviceID
</del><ins>+ plan_file = self._find_plan_file(plan_file)
+ with open(plan_file, 'r') as fp:
+ self._plan_name = os.path.split(os.path.splitext(plan_file)[0])[1]
+ self._plan = json.load(fp)
+ if local_copy:
+ self._plan['local_copy'] = local_copy
+ if count_override:
+ self._plan['count'] = count_override
+ if http_server_driver_override:
+ self._plan['http_server_driver'] = http_server_driver_override
+ self._browser_driver = BrowserDriverFactory.create(platform, browser)
+ self._http_server_driver = HTTPServerDriverFactory.create(self._plan['http_server_driver'])
+ self._http_server_driver.set_device_id(device_id)
+ self._build_dir = os.path.abspath(build_dir) if build_dir else None
+ self._output_file = output_file
+ self._device_id = device_id
</ins><span class="cx"> except IOError as error:
</span><del>- _log.error('Can not open plan file: %s - Error %s' % (planFile, error))
</del><ins>+ _log.error('Can not open plan file: %s - Error %s' % (plan_file, error))
</ins><span class="cx"> raise error
</span><span class="cx"> except ValueError as error:
</span><del>- _log.error('Plan file: %s may not follow JSON format - Error %s' % (planFile, error))
</del><ins>+ _log.error('Plan file: %s may not follow JSON format - Error %s' % (plan_file, error))
</ins><span class="cx"> raise error
</span><span class="cx">
</span><del>- def _findPlanFile(self, planFile):
- if not os.path.exists(planFile):
- absPath = os.path.join(os.path.dirname(__file__), 'data/plans', planFile)
</del><ins>+ def _find_plan_file(self, plan_file):
+ if not os.path.exists(plan_file):
+ absPath = os.path.join(os.path.dirname(__file__), 'data/plans', plan_file)
</ins><span class="cx"> if os.path.exists(absPath):
</span><span class="cx"> return absPath
</span><span class="cx"> if not absPath.endswith('.plan'):
</span><span class="cx"> absPath += '.plan'
</span><span class="cx"> if os.path.exists(absPath):
</span><span class="cx"> return absPath
</span><del>- return planFile
</del><ins>+ return plan_file
</ins><span class="cx">
</span><span class="cx"> def execute(self):
</span><span class="cx"> _log.info('Start to execute the plan')
</span><span class="cx"> _log.info('Start a new benchmark')
</span><span class="cx"> results = []
</span><del>- self.benchmarkBuilder = BenchmarkBuilderFactory.create(self.plan['benchmark_builder'])
</del><ins>+ self._benchmark_builder = BenchmarkBuilderFactory.create(self._plan['benchmark_builder'])
</ins><span class="cx">
</span><del>- webRoot = self.benchmarkBuilder.prepare(self.planName, self.plan)
- for x in xrange(int(self.plan['count'])):
</del><ins>+ web_root = self._benchmark_builder.prepare(self._plan_name, self._plan)
+ for x in xrange(int(self._plan['count'])):
</ins><span class="cx"> _log.info('Start the iteration %d of current benchmark' % (x + 1))
</span><del>- self.httpServerDriver.serve(webRoot)
- self.browserDriver.prepareEnv(self.deviceID)
- url = urlparse.urljoin(self.httpServerDriver.baseUrl(), self.planName + '/' + self.plan['entry_point'])
- self.browserDriver.launchUrl(url, self.buildDir)
</del><ins>+ self._http_server_driver.serve(web_root)
+ self._browser_driver.prepare_env(self._device_id)
+ url = urlparse.urljoin(self._http_server_driver.base_url(), self._plan_name + '/' + self._plan['entry_point'])
+ self._browser_driver.launch_url(url, self._build_dir)
</ins><span class="cx"> result = None
</span><span class="cx"> try:
</span><del>- with timeout(self.plan['timeout']):
- result = self.httpServerDriver.fetchResult()
- assert(not self.httpServerDriver.getReturnCode())
</del><ins>+ with timeout(self._plan['timeout']):
+ result = self._http_server_driver.fetch_result()
+ assert(not self._http_server_driver.get_return_code())
</ins><span class="cx"> assert(result)
</span><span class="cx"> results.append(json.loads(result))
</span><span class="cx"> except Exception as error:
</span><del>- _log.error('No result or the server crashed. Something went wrong. Will skip current benchmark.\nError: %s, Server return code: %d, result: %s' % (error, not self.httpServerDriver.getReturnCode(), result))
- self.cleanup()
</del><ins>+ _log.error('No result or the server crashed. Something went wrong. Will skip current benchmark.\nError: %s, Server return code: %d, result: %s' % (error, self._http_server_driver.get_return_code(), result))
+ self._cleanup()
</ins><span class="cx"> sys.exit(1)
</span><span class="cx"> finally:
</span><del>- self.browserDriver.closeBrowsers()
</del><ins>+ self._browser_driver.close_browsers()
</ins><span class="cx"> _log.info('End of %d iteration of current benchmark' % (x + 1))
</span><del>- results = self.wrap(results)
- self.dump(results, self.outputFile if self.outputFile else self.plan['output_file'])
- self.show_results(results)
- self.benchmarkBuilder.clean()
</del><ins>+ results = self._wrap(results)
+ self._dump(results, self._output_file if self._output_file else self._plan['output_file'])
+ self._show_results(results)
+ self._benchmark_builder.clean()
</ins><span class="cx"> sys.exit()
</span><span class="cx">
</span><del>- def cleanup(self):
- if self.browserDriver:
- self.browserDriver.closeBrowsers()
- if self.httpServerDriver:
- self.httpServerDriver.killServer()
- if self.benchmarkBuilder:
- self.benchmarkBuilder.clean()
</del><ins>+ def _cleanup(self):
+ if self._browser_driver:
+ self._browser_driver.close_browsers()
+ if self._http_server_driver:
+ self._http_server_driver.kill_server()
+ if self._benchmark_builder:
+ self._benchmark_builder.clean()
</ins><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def dump(cls, results, outputFile):
</del><ins>+ def _dump(cls, results, output_file):
</ins><span class="cx"> _log.info('Dumping the results to file')
</span><span class="cx"> try:
</span><del>- with open(outputFile, 'w') as fp:
</del><ins>+ with open(output_file, 'w') as fp:
</ins><span class="cx"> json.dump(results, fp)
</span><span class="cx"> except IOError as error:
</span><del>- _log.error('Cannot open output file: %s - Error: %s' % (outputFile, error))
</del><ins>+ _log.error('Cannot open output file: %s - Error: %s' % (output_file, error))
</ins><span class="cx"> _log.error('Results are:\n %s', json.dumps(results))
</span><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def wrap(cls, dicts):
</del><ins>+ def _wrap(cls, dicts):
</ins><span class="cx"> _log.debug('Merging following results:\n%s', json.dumps(dicts))
</span><span class="cx"> if not dicts:
</span><span class="cx"> return None
</span><span class="cx"> ret = {}
</span><span class="cx"> for dic in dicts:
</span><del>- ret = cls.merge(ret, dic)
</del><ins>+ ret = cls._merge(ret, dic)
</ins><span class="cx"> _log.debug('Results after merging:\n%s', json.dumps(ret))
</span><span class="cx"> return ret
</span><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def merge(cls, a, b):
</del><ins>+ def _merge(cls, a, b):
</ins><span class="cx"> assert(isinstance(a, type(b)))
</span><del>- argType = type(a)
</del><ins>+ arg_type = type(a)
</ins><span class="cx"> # special handle for list type, and should be handle before equal check
</span><del>- if argType == types.ListType and len(a) and (type(a[0]) == types.StringType or type(a[0]) == types.UnicodeType):
</del><ins>+ if arg_type == types.ListType and len(a) and (type(a[0]) == types.StringType or type(a[0]) == types.UnicodeType):
</ins><span class="cx"> return a
</span><del>- if argType == types.DictType:
</del><ins>+ if arg_type == types.DictType:
</ins><span class="cx"> result = {}
</span><span class="cx"> for key, value in a.items():
</span><span class="cx"> if key in b:
</span><del>- result[key] = cls.merge(value, b[key])
</del><ins>+ result[key] = cls._merge(value, b[key])
</ins><span class="cx"> else:
</span><span class="cx"> result[key] = value
</span><span class="cx"> for key, value in b.items():
</span><span class="lines">@@ -145,6 +144,6 @@
</span><span class="cx"> return a + b
</span><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def show_results(cls, results):
</del><ins>+ def _show_results(cls, results):
</ins><span class="cx"> results = BenchmarkResults(results)
</span><span class="cx"> print results.format()
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverbrowser_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -8,13 +8,13 @@
</span><span class="cx"> browser_name = None
</span><span class="cx">
</span><span class="cx"> @abc.abstractmethod
</span><del>- def prepareEnv(self, deviceID):
</del><ins>+ def prepare_env(self, device_id):
</ins><span class="cx"> pass
</span><span class="cx">
</span><span class="cx"> @abc.abstractmethod
</span><del>- def launchUrl(self, url, browserBuildPath=None):
</del><ins>+ def launch_url(self, url, browser_build_path=None):
</ins><span class="cx"> pass
</span><span class="cx">
</span><span class="cx"> @abc.abstractmethod
</span><del>- def closeBrowser(self):
</del><ins>+ def close_browsers(self):
</ins><span class="cx"> pass
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_browser_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -10,44 +10,44 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> class OSXBrowserDriver(BrowserDriver):
</span><del>- bundleIdentifier = None
</del><ins>+ bundle_identifier = None
</ins><span class="cx"> platform = 'osx'
</span><span class="cx">
</span><del>- def prepareEnv(self, deviceID):
- self.closeBrowsers()
</del><ins>+ def prepare_env(self, device_id):
+ self.close_browsers()
</ins><span class="cx"> from Quartz import CGWarpMouseCursorPosition
</span><span class="cx"> CGWarpMouseCursorPosition((10, 0))
</span><span class="cx">
</span><del>- def closeBrowsers(self):
- self.terminateProcesses(self.bundleIdentifier)
</del><ins>+ def close_browsers(self):
+ self._terminiate_processes(self.bundle_identifier)
</ins><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def launchProcess(cls, buildDir, appName, url, args):
- if not buildDir:
- buildDir = '/Applications/'
- appPath = os.path.join(buildDir, appName)
</del><ins>+ def _launch_process(cls, build_dir, app_name, url, args):
+ if not build_dir:
+ build_dir = '/Applications/'
+ app_path = os.path.join(build_dir, app_name)
</ins><span class="cx">
</span><del>- _log.info('Launching "%s" with url "%s"' % (appPath, url))
</del><ins>+ _log.info('Launching "%s" with url "%s"' % (app_path, url))
</ins><span class="cx">
</span><span class="cx"> # FIXME: May need to be modified for a local build such as setting up DYLD libraries
</span><del>- args = ['open', '-a', appPath] + args
- cls.launchProcessWithCaffinate(args)
</del><ins>+ args = ['open', '-a', app_path] + args
+ cls._launch_process_with_caffinate(args)
</ins><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def terminateProcesses(cls, bundleIdentifier):
- _log.info('Closing all terminating all processes with the bundle identifier %s' % bundleIdentifier)
</del><ins>+ def _terminiate_processes(cls, bundle_identifier):
+ _log.info('Closing all terminating all processes with the bundle identifier %s' % bundle_identifier)
</ins><span class="cx"> from AppKit import NSRunningApplication
</span><del>- processes = NSRunningApplication.runningApplicationsWithBundleIdentifier_(bundleIdentifier)
</del><ins>+ processes = NSRunningApplication.runningApplicationsWithBundleIdentifier_(bundle_identifier)
</ins><span class="cx"> for process in processes:
</span><span class="cx"> process.terminate()
</span><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def launchProcessWithCaffinate(cls, args, env=None):
</del><ins>+ def _launch_process_with_caffinate(cls, args, env=None):
</ins><span class="cx"> process = subprocess.Popen(args, env=env)
</span><span class="cx"> subprocess.Popen(["/usr/bin/caffeinate", "-disw", str(process.pid)])
</span><span class="cx"> return process
</span><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def screenSize(cls):
</del><ins>+ def _screen_size(cls):
</ins><span class="cx"> from AppKit import NSScreen
</span><span class="cx"> return NSScreen.mainScreen().frame().size
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_chrome_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -12,16 +12,16 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> class OSXChromeDriver(OSXBrowserDriver):
</span><del>- bundleIdentifier = 'com.google.Chrome'
</del><ins>+ bundle_identifier = 'com.google.Chrome'
</ins><span class="cx"> browser_name = 'chrome'
</span><span class="cx">
</span><del>- def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='Google Chrome.app', url=url, args=['--args', '--homepage', url, '--window-size={width},{height}'.format(width=int(self.screenSize().width), height=int(self.screenSize().height))])
</del><ins>+ def launch_url(self, url, browser_build_path):
+ self._launch_process(build_dir=browser_build_path, app_name='Google Chrome.app', url=url, args=['--args', '--homepage', url, '--window-size={width},{height}'.format(width=int(self._screen_size().width), height=int(self._screen_size().height))])
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> class OSXChromeCanaryDriver(OSXBrowserDriver):
</span><del>- bundleIdentifier = 'com.google.Chrome.canary'
</del><ins>+ bundle_identifier = 'com.google.Chrome.canary'
</ins><span class="cx"> browser_name = 'chrome-canary'
</span><span class="cx">
</span><del>- def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='Google Chrome Canary.app', url=url, args=['--args', '--homepage', url, '--window-size={width},{height}'.format(width=int(self.screenSize().width), height=int(self.screenSize().height))])
</del><ins>+ def launch_url(self, url, browser_build_path):
+ self._launch_process(build_dir=browser_build_path, app_name='Google Chrome Canary.app', url=url, args=['--args', '--homepage', url, '--window-size={width},{height}'.format(width=int(self._screen_size().width), height=int(self._screen_size().height))])
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_firefox_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -12,16 +12,16 @@
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> class OSXFirefoxDriver(OSXBrowserDriver):
</span><del>- bundleIdentifier = 'org.mozilla.firefox'
</del><ins>+ bundle_identifier = 'org.mozilla.firefox'
</ins><span class="cx"> browser_name = 'firefox'
</span><span class="cx">
</span><del>- def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='Firefox.app', url=url, args=[url, '--args', '-width', str(int(self.screenSize().width)), '-height', str(int(self.screenSize().height))])
</del><ins>+ def launch_url(self, url, browser_build_path):
+ self._launch_process(build_dir=browser_build_path, app_name='Firefox.app', url=url, args=[url, '--args', '-width', str(int(self._screen_size().width)), '-height', str(int(self._screen_size().height))])
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> class OSXFirefoxNightlyDriver(OSXBrowserDriver):
</span><del>- bundleIdentifier = 'org.mozilla.nightly'
</del><ins>+ bundle_identifier = 'org.mozilla.nightly'
</ins><span class="cx"> browser_name = 'firefox-nightly'
</span><span class="cx">
</span><del>- def launchUrl(self, url, browserBuildPath):
- self.launchProcess(buildDir=browserBuildPath, appName='FirefoxNightly.app', url=url, args=[url, '--args', '-width', str(int(self.screenSize().width)), '-height', str(int(self.screenSize().height))])
</del><ins>+ def launch_url(self, url, browser_build_path):
+ self._launch_process(build_dir=browser_build_path, app_name='FirefoxNightly.app', url=url, args=[url, '--args', '-width', str(int(self._screen_size().width)), '-height', str(int(self._screen_size().height))])
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbrowser_driverosx_safari_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -7,52 +7,52 @@
</span><span class="cx"> import time
</span><span class="cx">
</span><span class="cx"> from osx_browser_driver import OSXBrowserDriver
</span><del>-from webkitpy.benchmark_runner.utils import forceRemove
</del><ins>+from webkitpy.benchmark_runner.utils import force_remove
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> _log = logging.getLogger(__name__)
</span><span class="cx">
</span><span class="cx">
</span><span class="cx"> class OSXSafariDriver(OSXBrowserDriver):
</span><del>- bundleIdentifier = 'com.apple.Safari'
</del><ins>+ bundle_identifier = 'com.apple.Safari'
</ins><span class="cx"> browser_name = 'safari'
</span><span class="cx">
</span><del>- def prepareEnv(self, deviceID):
- self.safariProcess = None
- super(OSXSafariDriver, self).prepareEnv(deviceID)
- forceRemove(os.path.join(os.path.expanduser('~'), 'Library/Saved Application State/com.apple.Safari.savedState'))
- forceRemove(os.path.join(os.path.expanduser('~'), 'Library/Safari/LastSession.plist'))
- self.maximizeWindow()
- self.safariPreferences = ["-HomePage", "about:blank", "-WarnAboutFraudulentWebsites", "0", "-ExtensionsEnabled", "0", "-ShowStatusBar", "0", "-NewWindowBehavior", "1", "-NewTabBehavior", "1"]
</del><ins>+ def prepare_env(self, device_id):
+ self._safari_process = None
+ super(OSXSafariDriver, self).prepare_env(device_id)
+ force_remove(os.path.join(os.path.expanduser('~'), 'Library/Saved Application State/com.apple.Safari.savedState'))
+ force_remove(os.path.join(os.path.expanduser('~'), 'Library/Safari/LastSession.plist'))
+ self._maximize_window()
+ self._safari_preferences = ["-HomePage", "about:blank", "-WarnAboutFraudulentWebsites", "0", "-ExtensionsEnabled", "0", "-ShowStatusBar", "0", "-NewWindowBehavior", "1", "-NewTabBehavior", "1"]
</ins><span class="cx">
</span><del>- def launchUrl(self, url, browserBuildPath):
</del><ins>+ def launch_url(self, url, browser_build_path):
</ins><span class="cx"> args = ['/Applications/Safari.app/Contents/MacOS/Safari']
</span><span class="cx"> env = {}
</span><del>- if browserBuildPath:
- safariAppInBuildPath = os.path.join(browserBuildPath, 'Safari.app/Contents/MacOS/Safari')
- if os.path.exists(safariAppInBuildPath):
- args = [safariAppInBuildPath]
- env = {'DYLD_FRAMEWORK_PATH': browserBuildPath, 'DYLD_LIBRARY_PATH': browserBuildPath, '__XPC_DYLD_LIBRARY_PATH': browserBuildPath}
</del><ins>+ if browser_build_path:
+ safari_app_in_build_path = os.path.join(browser_build_path, 'Safari.app/Contents/MacOS/Safari')
+ if os.path.exists(safari_app_in_build_path):
+ args = [safari_app_in_build_path]
+ env = {'DYLD_FRAMEWORK_PATH': browser_build_path, 'DYLD_LIBRARY_PATH': browser_build_path, '__XPC_DYLD_LIBRARY_PATH': browser_build_path}
</ins><span class="cx"> else:
</span><del>- _log.info('Could not find Safari.app at %s, using the system Safari instead' % safariAppInBuildPath)
</del><ins>+ _log.info('Could not find Safari.app at %s, using the system Safari instead' % safari_app_in_build_path)
</ins><span class="cx">
</span><del>- args.extend(self.safariPreferences)
</del><ins>+ args.extend(self._safari_preferences)
</ins><span class="cx"> _log.info('Launching safari: %s with url: %s' % (args[0], url))
</span><del>- self.safariProcess = OSXSafariDriver.launchProcessWithCaffinate(args, env)
</del><ins>+ self._safari_process = OSXSafariDriver._launch_process_with_caffinate(args, env)
</ins><span class="cx">
</span><span class="cx"> # Stop for initialization of the safari process, otherwise, open
</span><span class="cx"> # command may use the system safari.
</span><span class="cx"> time.sleep(3)
</span><span class="cx"> subprocess.Popen(['open', url])
</span><span class="cx">
</span><del>- def closeBrowsers(self):
- super(OSXSafariDriver, self).closeBrowsers()
- if self.safariProcess and self.safariProcess.returncode:
</del><ins>+ def close_browsers(self):
+ super(OSXSafariDriver, self).close_browsers()
+ if self._safari_process and self._safari_process.returncode:
</ins><span class="cx"> sys.exit('Browser crashed with exitcode %d' % self._process.returncode)
</span><span class="cx">
</span><span class="cx"> @classmethod
</span><del>- def maximizeWindow(cls):
</del><ins>+ def _maximize_window(cls):
</ins><span class="cx"> try:
</span><del>- subprocess.check_call(['/usr/bin/defaults', 'write', 'com.apple.Safari', 'NSWindow Frame BrowserWindowFrame', ' '.join(['0', '0', str(cls.screenSize().width), str(cls.screenSize().height)] * 2)])
</del><ins>+ subprocess.check_call(['/usr/bin/defaults', 'write', 'com.apple.Safari', 'NSWindow Frame BrowserWindowFrame', ' '.join(['0', '0', str(cls._screen_size().width), str(cls._screen_size().height)] * 2)])
</ins><span class="cx"> except Exception as error:
</span><span class="cx"> _log.error('Reset safari window size failed - Error: {}'.format(error))
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerhttp_server_driverhttp_server_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -10,17 +10,17 @@
</span><span class="cx"> pass
</span><span class="cx">
</span><span class="cx"> @abstractmethod
</span><del>- def fetchResult(self):
</del><ins>+ def fetch_result(self):
</ins><span class="cx"> pass
</span><span class="cx">
</span><span class="cx"> @abstractmethod
</span><del>- def killServer(self):
</del><ins>+ def kill_server(self):
</ins><span class="cx"> pass
</span><span class="cx">
</span><span class="cx"> @abstractmethod
</span><del>- def getReturnCode(self):
</del><ins>+ def get_return_code(self):
</ins><span class="cx"> pass
</span><span class="cx">
</span><span class="cx"> @abstractmethod
</span><del>- def setDeviceID(self, deviceID):
</del><ins>+ def set_device_id(self, deviceID):
</ins><span class="cx"> pass
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerhttp_server_driversimple_http_server_driverpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -21,13 +21,13 @@
</span><span class="cx"> name = 'SimpleHTTPServerDriver'
</span><span class="cx">
</span><span class="cx"> def __init__(self):
</span><del>- self.server_process = None
- self.server_port = 0
</del><ins>+ self._server_process = None
+ self._server_port = 0
</ins><span class="cx"> # FIXME: This may not be reliable.
</span><span class="cx"> _log.info('Finding the IP address of current machine')
</span><span class="cx"> try:
</span><del>- self.ip = [ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][0]
- _log.info('IP of current machine is: %s' % self.ip)
</del><ins>+ self._ip = [ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][0]
+ _log.info('IP of current machine is: %s' % self._ip)
</ins><span class="cx"> except Exception as error:
</span><span class="cx"> _log.error('Cannot get the ip address of current machine - Error: %s' % error)
</span><span class="cx"> raise
</span><span class="lines">@@ -35,18 +35,18 @@
</span><span class="cx"> def serve(self, web_root):
</span><span class="cx"> _log.info('Launching an http server')
</span><span class="cx"> http_server_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "http_server/twisted_http_server.py")
</span><del>- self.server_process = subprocess.Popen(["/usr/bin/python", http_server_path, web_root], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
</del><ins>+ self._server_process = subprocess.Popen(["/usr/bin/python", http_server_path, web_root], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
</ins><span class="cx">
</span><del>- maxAttempt = 5
</del><ins>+ max_attempt = 5
</ins><span class="cx"> interval = 0.5
</span><span class="cx"> _log.info('Start to fetching the port number of the http server')
</span><span class="cx"> try:
</span><span class="cx"> import psutil
</span><del>- for attempt in xrange(maxAttempt):
</del><ins>+ for attempt in xrange(max_attempt):
</ins><span class="cx"> try:
</span><del>- self.server_port = psutil.Process(self.server_process.pid).connections()[0][3][1]
- if self.server_port:
- _log.info('HTTP Server is serving at port: %d', self.server_port)
</del><ins>+ self._server_port = psutil.Process(self._server_process.pid).connections()[0][3][1]
+ if self._server_port:
+ _log.info('HTTP Server is serving at port: %d', self._server_port)
</ins><span class="cx"> break
</span><span class="cx"> except IndexError:
</span><span class="cx"> pass
</span><span class="lines">@@ -56,12 +56,12 @@
</span><span class="cx"> else:
</span><span class="cx"> raise Exception("Cannot listen to server, max tries exceeded")
</span><span class="cx"> except ImportError:
</span><del>- for attempt in xrange(maxAttempt):
</del><ins>+ for attempt in xrange(max_attempt):
</ins><span class="cx"> try:
</span><del>- output = subprocess.check_output(['/usr/sbin/lsof', '-a', '-iTCP', '-sTCP:LISTEN', '-p', str(self.server_process.pid)])
- self.server_port = int(re.search('TCP \*:(\d+) \(LISTEN\)', output).group(1))
- if self.server_port:
- _log.info('HTTP Server is serving at port: %d', self.server_port)
</del><ins>+ output = subprocess.check_output(['/usr/sbin/lsof', '-a', '-iTCP', '-sTCP:LISTEN', '-p', str(self._server_process.pid)])
+ self._server_port = int(re.search('TCP \*:(\d+) \(LISTEN\)', output).group(1))
+ if self._server_port:
+ _log.info('HTTP Server is serving at port: %d', self._server_port)
</ins><span class="cx"> break
</span><span class="cx"> except Exception as error:
</span><span class="cx"> _log.info('Error: %s' % error)
</span><span class="lines">@@ -72,29 +72,28 @@
</span><span class="cx"> raise Exception("Cannot listen to server, max tries exceeded")
</span><span class="cx">
</span><span class="cx"> # Wait for server to be up completely before exiting
</span><del>- for attempt in xrange(maxAttempt):
</del><ins>+ for attempt in xrange(max_attempt):
</ins><span class="cx"> try:
</span><del>- subprocess.check_call(["curl", "--silent", "--head", "--fail", "--output", "/dev/null", self.baseUrl()])
</del><ins>+ subprocess.check_call(["curl", "--silent", "--head", "--fail", "--output", "/dev/null", self.base_url()])
</ins><span class="cx"> return
</span><span class="cx"> except Exception as error:
</span><span class="cx"> _log.info('Server not running yet: %s' % error)
</span><span class="cx"> time.sleep(interval)
</span><span class="cx"> raise Exception('Server not running, max tries exceeded: %s' % error)
</span><span class="cx">
</span><ins>+ def base_url(self):
+ return "http://%s:%d" % (self._ip, self._server_port)
</ins><span class="cx">
</span><del>- def baseUrl(self):
- return "http://%s:%d" % (self.ip, self.server_port)
-
- def fetchResult(self):
- (stdout, stderr) = self.server_process.communicate()
</del><ins>+ def fetch_result(self):
+ (stdout, stderr) = self._server_process.communicate()
</ins><span class="cx"> print stderr
</span><span class="cx"> return stdout
</span><span class="cx">
</span><del>- def killServer(self):
</del><ins>+ def kill_server(self):
</ins><span class="cx"> try:
</span><del>- self.server_process.terminate()
</del><ins>+ self._server_process.terminate()
</ins><span class="cx"> except OSError as error:
</span><span class="cx"> _log.info('Error terminating server process: %s' % (error))
</span><span class="cx">
</span><del>- def getReturnCode(self):
- return self.server_process.returncode
</del><ins>+ def get_return_code(self):
+ return self._server_process.returncode
</ins></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerutilspy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/utils.py (185897 => 185898)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/utils.py        2015-06-24 02:09:24 UTC (rev 185897)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/utils.py        2015-06-24 02:13:24 UTC (rev 185898)
</span><span class="lines">@@ -30,14 +30,14 @@
</span><span class="cx"> loader(item)
</span><span class="cx">
</span><span class="cx">
</span><del>-def getPathFromProjectRoot(relativePathToProjectRoot):
</del><ins>+def get_path_from_project_root(relative_path_to_project_root):
</ins><span class="cx"> # Choose the directory containing current file as start point,
</span><span class="cx"> # compute relative path base on the parameter,
</span><span class="cx"> # and return an absolute path
</span><del>- return os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), relativePathToProjectRoot))
</del><ins>+ return os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), relative_path_to_project_root))
</ins><span class="cx">
</span><span class="cx">
</span><del>-def forceRemove(path):
</del><ins>+def force_remove(path):
</ins><span class="cx"> try:
</span><span class="cx"> shutil.rmtree(path)
</span><span class="cx"> except Exception as error:
</span></span></pre>
</div>
</div>
</body>
</html>