<!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>[188092] 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/188092">188092</a></dd>
<dt>Author</dt> <dd>rniwa@webkit.org</dd>
<dt>Date</dt> <dd>2015-08-06 16:40:49 -0700 (Thu, 06 Aug 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>http_server_driver and benchmark_builder should not be in run-benchmark's plan files
https://bugs.webkit.org/show_bug.cgi?id=147752

Reviewed by Chris Dumez.

Removed BenchmarkBuilderFactory since we have exactly one subclass of BenchmarkBuilder.

Also made HTTPServerDriverFactory instantiate the appropriate HTTP server based on the platform name instead of HTTP server name.
This allows us to remove --http-server-driver option from run-benchmark, which was added to support the HTTP server for iOS.

* Scripts/webkitpy/benchmark_runner/benchmark_builder: Removed.
* Scripts/webkitpy/benchmark_runner/benchmark_builder.py: Moved from benchmark_runner/benchmark_builder/generic_benchmark_builder.py.
* Scripts/webkitpy/benchmark_runner/benchmark_builder/__init__.py: Removed.
* Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builder_factory.py: Removed.
* Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py: Moved to benchmark_runner/benchmark_builder.py.
* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.__init__): No longer takes http_server_driver_override as an argument since this is not handled by
HTTPServerDriverFactory taking the platform name as an argument.
(BenchmarkRunner.execute): Directly instantiate BenchmarkBuilder.
* Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan: Removed http_server_driver and benchmark_builder.
* Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/data/plans/jsbench.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/data/plans/octane.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan: Ditto.
* Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py:
(http_server_driver_loader): Register http server drivers via supported platform names instead of http server names.
* Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver): Replaced name by platforms.
* Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
(SimpleHTTPServerDriver): Ditto.
* Scripts/webkitpy/benchmark_runner/run_benchmark.py:
(parse_args): Removed --http-server-driver option.
(start): Ditto.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbenchmark_runnerpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplansdromaeocssqueryplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplansdromaeodomplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplansdromaeojslibplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplansjetstreamplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplansjsbenchplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jsbench.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplanskrakenplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplansoctaneplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/octane.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplansspeedometerplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerdataplanssunspiderplan">trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan</a></li>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerhttp_server_driver__init__py">trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.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_runnerrun_benchmarkpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkToolsScriptswebkitpybenchmark_runnerbenchmark_builderpy">trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li>trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/</li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/ChangeLog        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,3 +1,43 @@
</span><ins>+2015-08-06  Ryosuke Niwa  &lt;rniwa@webkit.org&gt;
+
+        http_server_driver and benchmark_builder should not be in run-benchmark's plan files
+        https://bugs.webkit.org/show_bug.cgi?id=147752
+
+        Reviewed by Chris Dumez.
+
+        Removed BenchmarkBuilderFactory since we have exactly one subclass of BenchmarkBuilder.
+
+        Also made HTTPServerDriverFactory instantiate the appropriate HTTP server based on the platform name instead of HTTP server name.
+        This allows us to remove --http-server-driver option from run-benchmark, which was added to support the HTTP server for iOS.
+
+        * Scripts/webkitpy/benchmark_runner/benchmark_builder: Removed.
+        * Scripts/webkitpy/benchmark_runner/benchmark_builder.py: Moved from benchmark_runner/benchmark_builder/generic_benchmark_builder.py.
+        * Scripts/webkitpy/benchmark_runner/benchmark_builder/__init__.py: Removed.
+        * Scripts/webkitpy/benchmark_runner/benchmark_builder/benchmark_builder_factory.py: Removed.
+        * Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py: Moved to benchmark_runner/benchmark_builder.py.
+        * Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
+        (BenchmarkRunner.__init__): No longer takes http_server_driver_override as an argument since this is not handled by
+        HTTPServerDriverFactory taking the platform name as an argument.
+        (BenchmarkRunner.execute): Directly instantiate BenchmarkBuilder.
+        * Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan: Removed http_server_driver and benchmark_builder.
+        * Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/data/plans/jsbench.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/data/plans/octane.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan: Ditto.
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py:
+        (http_server_driver_loader): Register http server drivers via supported platform names instead of http server names.
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
+        (HTTPServerDriver): Replaced name by platforms.
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
+        (SimpleHTTPServerDriver): Ditto.
+        * Scripts/webkitpy/benchmark_runner/run_benchmark.py:
+        (parse_args): Removed --http-server-driver option.
+        (start): Ditto.
+
</ins><span class="cx"> 2015-08-06  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Toggle GPS state based on page visibility to save battery
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerbenchmark_builderpyfromrev188065trunkToolsScriptswebkitpybenchmark_runnerbenchmark_buildergeneric_benchmark_builderpy"></a>
<div class="copfile"><h4>Copied: trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py (from rev 188065, trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py) (0 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py                                (rev 0)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_builder.py        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -0,0 +1,98 @@
</span><ins>+#!/usr/bin/env python
+
+import logging
+import tempfile
+import os
+import urllib
+import shutil
+import subprocess
+import tarfile
+
+from zipfile import ZipFile
+from webkitpy.benchmark_runner.utils import get_path_from_project_root, force_remove
+
+
+_log = logging.getLogger(__name__)
+
+
+class BenchmarkBuilder(object):
+    def prepare(self, name, plan):
+        self._name = name
+        self._web_root = tempfile.mkdtemp()
+        self._dest = os.path.join(self._web_root, self._name)
+        if 'local_copy' in plan:
+            self._copy_benchmark_to_temp_dir(plan['local_copy'])
+        elif 'remote_archive' in plan:
+            self._fetch_remote_archive(plan['remote_archive'])
+        elif 'svn_source' in plan:
+            self._checkout_with_subversion(plan['svn_source'])
+        else:
+            raise Exception('The benchmark location was not specified')
+
+        _log.info('Copied the benchmark into: %s' % self._dest)
+        try:
+            if 'create_script' in plan:
+                self._run_create_script(plan['create_script'])
+            if 'benchmark_patch' in plan:
+                self._apply_patch(plan['benchmark_patch'])
+            return self._web_root
+        except Exception:
+            self.clean()
+            raise
+
+    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)
+
+    def _copy_benchmark_to_temp_dir(self, benchmark_path):
+        shutil.copytree(get_path_from_project_root(benchmark_path), self._dest)
+
+    def _fetch_remote_archive(self, archive_url):
+        if archive_url.endswith('.zip'):
+            archive_type = 'zip'
+        elif archive_url.endswith('tar.gz'):
+            archive_type = 'tar.gz'
+        else:
+            raise Exception('Could not infer the file extention from URL: %s' % archive_url)
+
+        archive_path = os.path.join(self._web_root, 'archive.' + archive_type)
+        _log.info('Downloading %s to %s' % (archive_url, archive_path))
+        urllib.urlretrieve(archive_url, archive_path)
+
+        if archive_type == 'zip':
+            with ZipFile(archive_path, 'r') as archive:
+                archive.extractall(self._dest)
+        elif archive_type == 'tar.gz':
+            with tarfile.open(archive_path, 'r:gz') as archive:
+                archive.extractall(self._dest)
+
+        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)
+
+    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)
+
+    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)
+
+    def clean(self):
+        _log.info('Cleaning Benchmark')
+        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 (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -12,7 +12,7 @@
</span><span class="cx"> import os
</span><span class="cx"> import urlparse
</span><span class="cx"> 
</span><del>-from benchmark_builder.benchmark_builder_factory import BenchmarkBuilderFactory
</del><ins>+from benchmark_builder import BenchmarkBuilder
</ins><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><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> 
</span><span class="cx"> class BenchmarkRunner(object):
</span><span class="cx"> 
</span><del>-    def __init__(self, plan_file, local_copy, count_override, build_dir, output_file, platform, browser, http_server_driver_override=None, device_id=None):
</del><ins>+    def __init__(self, plan_file, local_copy, count_override, build_dir, output_file, platform, browser, device_id=None):
</ins><span class="cx">         try:
</span><span class="cx">             plan_file = self._find_plan_file(plan_file)
</span><span class="cx">             with open(plan_file, 'r') as fp:
</span><span class="lines">@@ -34,10 +34,8 @@
</span><span class="cx">                     self._plan['local_copy'] = local_copy
</span><span class="cx">                 if count_override:
</span><span class="cx">                     self._plan['count'] = count_override
</span><del>-                if http_server_driver_override:
-                    self._plan['http_server_driver'] = http_server_driver_override
</del><span class="cx">                 self._browser_driver = BrowserDriverFactory.create(platform, browser)
</span><del>-                self._http_server_driver = HTTPServerDriverFactory.create(self._plan['http_server_driver'])
</del><ins>+                self._http_server_driver = HTTPServerDriverFactory.create(platform)
</ins><span class="cx">                 self._http_server_driver.set_device_id(device_id)
</span><span class="cx">                 self._build_dir = os.path.abspath(build_dir) if build_dir else None
</span><span class="cx">                 self._output_file = output_file
</span><span class="lines">@@ -64,7 +62,7 @@
</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._benchmark_builder = BenchmarkBuilderFactory.create(self._plan['benchmark_builder'])
</del><ins>+        self._benchmark_builder = BenchmarkBuilder()
</ins><span class="cx"> 
</span><span class="cx">         web_root = self._benchmark_builder.prepare(self._plan_name, self._plan)
</span><span class="cx">         for x in xrange(int(self._plan['count'])):
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplansdromaeocssqueryplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-cssquery.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;,
</del><span class="cx">     &quot;timeout&quot;: 1200,
</span><span class="cx">     &quot;count&quot;: 1,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;remote_archive&quot;: &quot;https://github.com/jeresig/dromaeo/archive/ed7e6a8f25ea72f45c191f34a68722f80dc3c513.zip&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/Dromaeo.patch&quot;,
</span><span class="cx">     &quot;create_script&quot;: [&quot;make&quot;, &quot;web&quot;],
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplansdromaeodomplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-dom.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;,
</del><span class="cx">     &quot;timeout&quot;: 1200,
</span><span class="cx">     &quot;count&quot;: 1,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;remote_archive&quot;: &quot;https://github.com/jeresig/dromaeo/archive/ed7e6a8f25ea72f45c191f34a68722f80dc3c513.zip&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/Dromaeo.patch&quot;,
</span><span class="cx">     &quot;create_script&quot;: [&quot;make&quot;, &quot;web&quot;],
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplansdromaeojslibplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/dromaeo-jslib.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;,
</del><span class="cx">     &quot;timeout&quot;: 1200,
</span><span class="cx">     &quot;count&quot;: 1,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;remote_archive&quot;: &quot;https://github.com/jeresig/dromaeo/archive/ed7e6a8f25ea72f45c191f34a68722f80dc3c513.zip&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/Dromaeo.patch&quot;,
</span><span class="cx">     &quot;create_script&quot;: [&quot;make&quot;, &quot;web&quot;],
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplansjetstreamplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;, 
</del><span class="cx">     &quot;timeout&quot;: 600,
</span><span class="cx">     &quot;count&quot;: 5,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;svn_source&quot;: &quot;https://svn.webkit.org/repository/webkit/trunk/PerformanceTests/JetStream/@r183091&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/JetStream.patch&quot;,
</span><span class="cx">     &quot;create_script&quot;: [&quot;ruby&quot;, &quot;create.rb&quot;],
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplansjsbenchplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jsbench.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jsbench.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/jsbench.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;, 
</del><span class="cx">     &quot;timeout&quot;: 600,
</span><span class="cx">     &quot;count&quot;: 1,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;remote_archive&quot;: &quot;http://plg.uwaterloo.ca/~dynjs/jsbench/suite/jsbench-2013.1.tar.gz&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/JSBench.patch&quot;,
</span><span class="cx">     &quot;entry_point&quot;: &quot;index.html&quot;,
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplanskrakenplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/kraken.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;,
</del><span class="cx">     &quot;timeout&quot;: 300,
</span><span class="cx">     &quot;count&quot;: 5,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;remote_archive&quot;: &quot;http://hg.mozilla.org/projects/kraken/archive/tip.zip&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/Kraken.patch&quot;,
</span><span class="cx">     &quot;create_script&quot;: [&quot;python&quot;, &quot;make-hosted.py&quot;],
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplansoctaneplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/octane.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/octane.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/octane.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;,
</del><span class="cx">     &quot;timeout&quot;: 300,
</span><span class="cx">     &quot;count&quot;: 5,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;remote_archive&quot;: &quot;https://github.com/chromium/octane-benchmark/archive/fab09aef01c2a5560c22cdc1c1a2451c0d0f4cdc.zip&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/Octane.patch&quot;,
</span><span class="cx">     &quot;entry_point&quot;: &quot;index.html?auto=1&quot;,
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplansspeedometerplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/speedometer.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;,
</del><span class="cx">     &quot;timeout&quot;: 300,
</span><span class="cx">     &quot;count&quot;: 5,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;local_copy&quot;: &quot;../../../../PerformanceTests/Speedometer&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/Speedometer.patch&quot;,
</span><span class="cx">     &quot;entry_point&quot;: &quot;Full.html&quot;,
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerdataplanssunspiderplan"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/data/plans/sunspider.plan        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -1,8 +1,6 @@
</span><span class="cx"> {
</span><del>-    &quot;http_server_driver&quot;: &quot;SimpleHTTPServerDriver&quot;,
</del><span class="cx">     &quot;timeout&quot;: 300,
</span><span class="cx">     &quot;count&quot;: 5,
</span><del>-    &quot;benchmark_builder&quot;: &quot;GenericBenchmarkBuilder&quot;,
</del><span class="cx">     &quot;svn_source&quot;: &quot;https://svn.webkit.org/repository/webkit/trunk/PerformanceTests/SunSpider/@r182170&quot;,
</span><span class="cx">     &quot;benchmark_patch&quot;: &quot;data/patches/SunSpider.patch&quot;,
</span><span class="cx">     &quot;create_script&quot;: [&quot;perl&quot;, &quot;make-hosted&quot;],
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerhttp_server_driver__init__py"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -19,8 +19,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def http_server_driver_loader(http_server_driver_class):
</span><del>-    if http_server_driver_class.name:
-        HTTPServerDriverFactory.add(http_server_driver_class.name, http_server_driver_class)
</del><ins>+    for platform in http_server_driver_class.platforms:
+        HTTPServerDriverFactory.add(platform, http_server_driver_class)
</ins><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> load_subclasses(
</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 (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -4,7 +4,8 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> class HTTPServerDriver(object):
</span><del>-    name = None
</del><ins>+    platforms = []
+
</ins><span class="cx">     @abstractmethod
</span><span class="cx">     def serve(self, webRoot):
</span><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 (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -18,8 +18,9 @@
</span><span class="cx"> 
</span><span class="cx">     &quot;&quot;&quot;This class depends on unix environment, need to be modified to achieve crossplatform compability
</span><span class="cx">     &quot;&quot;&quot;
</span><del>-    name = 'SimpleHTTPServerDriver'
</del><span class="cx"> 
</span><ins>+    platforms = ['osx']
+
</ins><span class="cx">     def __init__(self):
</span><span class="cx">         self._server_process = None
</span><span class="cx">         self._server_port = 0
</span></span></pre></div>
<a id="trunkToolsScriptswebkitpybenchmark_runnerrun_benchmarkpy"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py (188091 => 188092)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py        2015-08-06 23:35:32 UTC (rev 188091)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py        2015-08-06 23:40:49 UTC (rev 188092)
</span><span class="lines">@@ -23,7 +23,6 @@
</span><span class="cx">     parser.add_argument('--debug', action='store_true')
</span><span class="cx">     parser.add_argument('--local-copy', dest='localCopy', help='Path to a local copy of the benchmark. e.g. PerformanceTests/SunSpider/')
</span><span class="cx">     parser.add_argument('--count', dest='countOverride', type=int, help='Number of times to run the benchmark. e.g. 5')
</span><del>-    parser.add_argument('--http-server-driver', dest='httpServerDriverOverride', default=None, help='Specify which HTTP server you wants to use')
</del><span class="cx">     parser.add_argument('--device-id', dest='device_id', default=None)
</span><span class="cx"> 
</span><span class="cx">     args = parser.parse_args()
</span><span class="lines">@@ -39,7 +38,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> def start(args):
</span><del>-    runner = BenchmarkRunner(args.plan, args.localCopy, args.countOverride, args.buildDir, args.output, args.platform, args.browser, args.httpServerDriverOverride, args.device_id)
</del><ins>+    runner = BenchmarkRunner(args.plan, args.localCopy, args.countOverride, args.buildDir, args.output, args.platform, args.browser, args.device_id)
</ins><span class="cx">     runner.execute()
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>