Python 3: Add support in webkitpy.benchmark_runner
https://bugs.webkit.org/show_bug.cgi?id=204784

Reviewed by Stephanie Lewis.

* Scripts/test-webkitpy-python3: Add webkitpy.benchmark_runner.
* Scripts/webkitpy/benchmark_runner/benchmark_results.py:
(BenchmarkResults): Arithmetic aggregator should use integer division.
(BenchmarkResults._format_values): Convert map to list.
(BenchmarkResults._aggregate_results): Ditto.
(BenchmarkResults._aggregate_results_for_test): Use Python 2/3 compatible iteritems.
(BenchmarkResults._subtest_values_by_config_iteration): Ditto.
(BenchmarkResults._lint_subtest_results): Ditto.
(BenchmarkResults._lint_configuration): Ditto.
* Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py: Use explicit imports.
* Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py: Ditto.
* Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Ditto.
* Scripts/webkitpy/benchmark_runner/run_benchmark.py: Ditto.
* Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: Ditto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@253129 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 926b72d..f322aa3 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,5 +1,40 @@
 2019-12-04  Jonathan Bedard  <jbedard@apple.com>
 
+        Python 3: Add support in webkitpy.benchmark_runner
+        https://bugs.webkit.org/show_bug.cgi?id=204784
+
+        Reviewed by Stephanie Lewis.
+
+        * Scripts/test-webkitpy-python3: Add webkitpy.benchmark_runner.
+        * Scripts/webkitpy/benchmark_runner/benchmark_results.py:
+        (BenchmarkResults): Arithmetic aggregator should use integer division.
+        (BenchmarkResults._format_values): Convert map to list.
+        (BenchmarkResults._aggregate_results): Ditto.
+        (BenchmarkResults._aggregate_results_for_test): Use Python 2/3 compatible iteritems.
+        (BenchmarkResults._subtest_values_by_config_iteration): Ditto.
+        (BenchmarkResults._lint_subtest_results): Ditto.
+        (BenchmarkResults._lint_configuration): Ditto.
+        * Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py: Use explicit imports.
+        * Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/run_benchmark.py: Ditto.
+        * Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py: Ditto.
+
+2019-12-04  Jonathan Bedard  <jbedard@apple.com>
+
         Python 3: Add support in webkitpy.tool
         https://bugs.webkit.org/show_bug.cgi?id=204838
 
diff --git a/Tools/Scripts/test-webkitpy-python3 b/Tools/Scripts/test-webkitpy-python3
index 9b42a7c..0255734 100755
--- a/Tools/Scripts/test-webkitpy-python3
+++ b/Tools/Scripts/test-webkitpy-python3
@@ -34,6 +34,7 @@
 
 
 PYTHON3_COMPATIBLE_DIRECTORIES = [
+  'webkitpy.benchmark_runner',
   'webkitpy.common',
   'webkitpy.layout_tests.controllers',
   'webkitpy.layout_tests.layout_package',
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py
index 336daa6..b22e4b3 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results.py
@@ -25,12 +25,14 @@
 import re
 import sys
 
+from webkitpy.common.iteration_compatibility import iteritems
+
 
 class BenchmarkResults(object):
 
     aggregators = {
         'Total': (lambda values: sum(values)),
-        'Arithmetic': (lambda values: sum(values) / len(values)),
+        'Arithmetic': (lambda values: sum(values) // len(values)),
         'Geometric': (lambda values: math.exp(sum(map(math.log, values)) / len(values))),
     }
     metric_to_unit = {
@@ -79,7 +81,7 @@
 
     @classmethod
     def _format_values(cls, metric_name, values, scale_unit=True, show_iteration_values=False):
-        values = map(float, values)
+        values = list(map(float, values))
         total = sum(values)
         mean = total / len(values)
         square_sum = sum(map(lambda x: x * x, values))
@@ -104,7 +106,7 @@
         if unit == 'ms':
             unit = 's'
             mean = float(mean) / 1000
-            values = map(lambda value: float(value) / 1000, values)
+            values = list(map(lambda value: float(value) / 1000, values))
             sample_stdev /= 1000
 
         base = 1024 if unit == 'B' else 1000
@@ -135,7 +137,7 @@
     @classmethod
     def _aggregate_results(cls, tests):
         results = {}
-        for test_name, test in tests.iteritems():
+        for test_name, test in iteritems(tests):
             results[test_name] = cls._aggregate_results_for_test(test)
         return results
 
@@ -143,10 +145,10 @@
     def _aggregate_results_for_test(cls, test):
         subtest_results = cls._aggregate_results(test['tests']) if 'tests' in test else {}
         results = {}
-        for metric_name, metric in test.get('metrics', {}).iteritems():
+        for metric_name, metric in iteritems(test.get('metrics', {})):
             if not isinstance(metric, list):
                 results[metric_name] = {None: {}}
-                for config_name, values in metric.iteritems():
+                for config_name, values in iteritems(metric):
                     results[metric_name][None][config_name] = cls._flatten_list(values)
                 continue
 
@@ -154,7 +156,7 @@
             results[metric_name] = {}
             for aggregator in aggregator_list:
                 values_by_config_iteration = cls._subtest_values_by_config_iteration(subtest_results, metric_name, aggregator)
-                for config_name, values_by_iteration in values_by_config_iteration.iteritems():
+                for config_name, values_by_iteration in iteritems(values_by_config_iteration):
                     results[metric_name].setdefault(aggregator, {})
                     results[metric_name][aggregator][config_name] = [cls._aggregate_values(aggregator, values) for values in values_by_iteration]
 
@@ -173,17 +175,17 @@
     @classmethod
     def _subtest_values_by_config_iteration(cls, subtest_results, metric_name, aggregator):
         values_by_config_iteration = {}
-        for subtest_name, subtest in subtest_results.iteritems():
+        for subtest_name, subtest in iteritems(subtest_results):
             results_for_metric = subtest['metrics'].get(metric_name, {})
             if aggregator in results_for_metric:
                 results_for_aggregator = results_for_metric.get(aggregator)
             elif None in results_for_metric:
                 results_for_aggregator = results_for_metric.get(None)
             elif len(results_for_metric.keys()) == 1:
-                results_for_aggregator = results_for_metric.get(results_for_metric.keys()[0])
+                results_for_aggregator = results_for_metric.get(list(results_for_metric.keys())[0])
             else:
                 results_for_aggregator = {}
-            for config_name, values in results_for_aggregator.iteritems():
+            for config_name, values in iteritems(results_for_aggregator):
                 values_by_config_iteration.setdefault(config_name, [[] for _ in values])
                 for iteration, value in enumerate(values):
                     values_by_config_iteration[config_name][iteration].append(value)
@@ -201,7 +203,7 @@
     @classmethod
     def _lint_subtest_results(cls, subtests, parent_test, parent_aggregator_list):
         iteration_groups_by_config = {}
-        for test_name, test in subtests.iteritems():
+        for test_name, test in iteritems(subtests):
             aggregator_list = None
 
             if 'metrics' not in test and 'tests' not in test:
@@ -211,7 +213,7 @@
                 metrics = test['metrics']
                 if not isinstance(metrics, dict):
                     raise TypeError('The metrics in "%s" is not a dictionary' % test_name)
-                for metric_name, metric in metrics.iteritems():
+                for metric_name, metric in iteritems(metrics):
                     if isinstance(metric, list):
                         cls._lint_aggregator_list(test_name, metric_name, metric, parent_test, parent_aggregator_list)
                         aggregator_list = metric
@@ -247,7 +249,7 @@
     @classmethod
     def _lint_configuration(cls, test_name, metric_name, configurations, parent_test, parent_aggregator_list, iteration_groups_by_config):
         # FIXME: Check that config_name is always "current".
-        for config_name, values in configurations.iteritems():
+        for config_name, values in iteritems(configurations):
             nested_list_count = [isinstance(value, list) for value in values].count(True)
             if nested_list_count not in [0, len(values)]:
                 raise TypeError('"%s" metric of "%s" had malformed values: %s' % (metric_name, test_name, json.dumps(values)))
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py
index bb06fde..fc9ff01 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py
@@ -22,7 +22,7 @@
 
 import unittest
 
-from benchmark_results import BenchmarkResults
+from webkitpy.benchmark_runner.benchmark_results import BenchmarkResults
 
 
 class BenchmarkResultsTest(unittest.TestCase):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py
index d72c529..20ab6c2 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/benchmark_runner.py
@@ -12,9 +12,9 @@
 import os
 import urlparse
 
-from benchmark_builder import BenchmarkBuilder
-from benchmark_results import BenchmarkResults
-from browser_driver.browser_driver_factory import BrowserDriverFactory
+from webkitpy.benchmark_runner.benchmark_builder import BenchmarkBuilder
+from webkitpy.benchmark_runner.benchmark_results import BenchmarkResults
+from webkitpy.benchmark_runner.browser_driver.browser_driver_factory import BrowserDriverFactory
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py
index 6a33dd5..d28325d 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/__init__.py
@@ -14,7 +14,7 @@
 import os
 
 from webkitpy.benchmark_runner.utils import load_subclasses
-from browser_driver_factory import BrowserDriverFactory
+from webkitpy.benchmark_runner.browser_driver.browser_driver_factory import BrowserDriverFactory
 
 
 def browser_driver_loader(browser_driver_class):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py
index 61abc64..81ea60f 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py
@@ -34,7 +34,7 @@
 except ImportError:
     pass
 from webkitpy.benchmark_runner.utils import force_remove
-from browser_driver import BrowserDriver
+from webkitpy.benchmark_runner.browser_driver.browser_driver import BrowserDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py
index 4798603..79c4096 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_chrome_driver.py
@@ -26,7 +26,7 @@
 
 import os
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class LinuxChromeDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py
index b90aa44..737bb66 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class CogBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py
index b74a2f8..3886ecb 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_epiphany_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class EpiphanyBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py
index dff764c..9ea1e15 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_firefox_driver.py
@@ -26,7 +26,7 @@
 
 import os
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class LinuxFirefoxDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py
index e8d5c09..e9c4f9f 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class GTKMiniBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py
index 2bb2401..d49c738 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowserwpe_driver.py
@@ -24,7 +24,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-from linux_browser_driver import LinuxBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.linux_browser_driver import LinuxBrowserDriver
 
 
 class WPEMiniBrowserDriver(LinuxBrowserDriver):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py
index ee2dbba..1ef01d5 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py
@@ -4,7 +4,7 @@
 import subprocess
 import time
 
-from browser_driver import BrowserDriver
+from webkitpy.benchmark_runner.browser_driver.browser_driver import BrowserDriver
 from webkitpy.benchmark_runner.utils import write_defaults
 
 
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py
index 2782aed..3509981 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_chrome_driver.py
@@ -3,7 +3,7 @@
 import logging
 import os
 
-from osx_browser_driver import OSXBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.osx_browser_driver import OSXBrowserDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py
index 392497e..7cff5a5 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_firefox_driver.py
@@ -3,7 +3,7 @@
 import logging
 import os
 
-from osx_browser_driver import OSXBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.osx_browser_driver import OSXBrowserDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py
index 2e131c0..d168728 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py
@@ -6,7 +6,7 @@
 import subprocess
 import time
 
-from osx_browser_driver import OSXBrowserDriver
+from webkitpy.benchmark_runner.browser_driver.osx_browser_driver import OSXBrowserDriver
 from webkitpy.benchmark_runner.utils import force_remove
 
 
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py
index 91732c4..53c870c1 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/__init__.py
@@ -15,7 +15,7 @@
 import imp
 
 from webkitpy.benchmark_runner.utils import load_subclasses
-from http_server_driver_factory import HTTPServerDriverFactory
+from webkitpy.benchmark_runner.http_server_driver.http_server_driver_factory import HTTPServerDriverFactory
 
 
 def http_server_driver_loader(http_server_driver_class):
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py
index d74375f..f24611d 100644
--- a/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py
@@ -8,7 +8,7 @@
 import sys
 import time
 
-from http_server_driver import HTTPServerDriver
+from webkitpy.benchmark_runner.http_server_driver.http_server_driver import HTTPServerDriver
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py b/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py
index e230204..eacb369 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/run_benchmark.py
@@ -7,10 +7,10 @@
 import os
 import sys
 
-from browser_driver.browser_driver_factory import BrowserDriverFactory
-from benchmark_runner import BenchmarkRunner
-from webdriver_benchmark_runner import WebDriverBenchmarkRunner
-from webserver_benchmark_runner import WebServerBenchmarkRunner
+from webkitpy.benchmark_runner.browser_driver.browser_driver_factory import BrowserDriverFactory
+from webkitpy.benchmark_runner.benchmark_runner import BenchmarkRunner
+from webkitpy.benchmark_runner.webdriver_benchmark_runner import WebDriverBenchmarkRunner
+from webkitpy.benchmark_runner.webserver_benchmark_runner import WebServerBenchmarkRunner
 
 
 _log = logging.getLogger(__name__)
diff --git a/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py b/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py
index 203730f..6f1611e 100755
--- a/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py
+++ b/Tools/Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py
@@ -4,8 +4,8 @@
 import logging
 import urlparse
 
-from benchmark_runner import BenchmarkRunner
-from http_server_driver.http_server_driver_factory import HTTPServerDriverFactory
+from webkitpy.benchmark_runner.benchmark_runner import BenchmarkRunner
+from webkitpy.benchmark_runner.http_server_driver.http_server_driver_factory import HTTPServerDriverFactory
 from webkitpy.common.timeout_context import Timeout