Title: [188244] trunk/Tools
Revision
188244
Author
commit-qu...@webkit.org
Date
2015-08-10 20:15:00 -0700 (Mon, 10 Aug 2015)

Log Message

Update ReadMe and correct the way to use abstract abstract class.
https://bugs.webkit.org/show_bug.cgi?id=147860

Patch by Dewei Zhu <dewei_...@apple.com> on 2015-08-10
Reviewed by Ryosuke Niwa.

Update ReadMe according to recent changes. And set ABCMeta to be the __metaclass__ of BrowserDriver and HTTPServerDriver,
so that all methods annotated by 'abstractmethod' will check whether they are implememnt by subclasses.

* Scripts/webkitpy/benchmark_runner/README.md:
* Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
(BrowserDriver):
* Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
(OSXBrowserDriver.restore_env):
* Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
(HTTPServerDriver):
(HTTPServerDriver.set_device_id):
* Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
(SimpleHTTPServerDriver.get_return_code):
(SimpleHTTPServerDriver):
(SimpleHTTPServerDriver.set_device_id):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (188243 => 188244)


--- trunk/Tools/ChangeLog	2015-08-11 02:49:35 UTC (rev 188243)
+++ trunk/Tools/ChangeLog	2015-08-11 03:15:00 UTC (rev 188244)
@@ -1,3 +1,26 @@
+2015-08-10  Dewei Zhu  <dewei_...@apple.com>
+
+        Update ReadMe and correct the way to use abstract abstract class.
+        https://bugs.webkit.org/show_bug.cgi?id=147860
+
+        Reviewed by Ryosuke Niwa.
+
+        Update ReadMe according to recent changes. And set ABCMeta to be the __metaclass__ of BrowserDriver and HTTPServerDriver,
+        so that all methods annotated by 'abstractmethod' will check whether they are implememnt by subclasses.
+
+        * Scripts/webkitpy/benchmark_runner/README.md:
+        * Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
+        (BrowserDriver):
+        * Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:
+        (OSXBrowserDriver.restore_env):
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py:
+        (HTTPServerDriver):
+        (HTTPServerDriver.set_device_id):
+        * Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
+        (SimpleHTTPServerDriver.get_return_code):
+        (SimpleHTTPServerDriver):
+        (SimpleHTTPServerDriver.set_device_id):
+
 2015-08-10  Alex Christensen  <achristen...@webkit.org>
 
         Build TestWebKitAPI with CMake on Windows

Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/README.md (188243 => 188244)


--- trunk/Tools/Scripts/webkitpy/benchmark_runner/README.md	2015-08-11 02:49:35 UTC (rev 188243)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/README.md	2015-08-11 03:15:00 UTC (rev 188244)
@@ -5,27 +5,37 @@
 benchmark_runner
 ├── README.md
 ├── __init__.py
-├── benchmark_builder
-│   ├── __init__.py
-│   ├── benchmark_builder_factory.py
-│   ├── benchmark_builders.json
-│   ├── generic_benchmark_builder.py
-│   └── jetstream_benchmark_builder.py
+├── benchmark_builder.py
+├── benchmark_results.py
+├── benchmark_results_unittest.py
 ├── benchmark_runner.py
 ├── browser_driver
 │   ├── __init__.py
 │   ├── browser_driver.py
 │   ├── browser_driver_factory.py
-│   ├── browser_drivers.json
+│   ├── osx_browser_driver.py
 │   ├── osx_chrome_driver.py
+│   ├── osx_firefox_driver.py
 │   └── osx_safari_driver.py
 ├── data
 │   ├── patches
+│   │   ├── Dromaeo.patch
+│   │   ├── JSBench.patch
 │   │   ├── JetStream.patch
-│   │   └── Speedometer.patch
+│   │   ├── Kraken.patch
+│   │   ├── Octane.patch
+│   │   ├── Speedometer.patch
+│   │   └── SunSpider.patch
 │   └── plans
+│       ├── dromaeo-cssquery.plan
+│       ├── dromaeo-dom.plan
+│       ├── dromaeo-jslib.plan
 │       ├── jetstream.plan
-│       └── speedometer.plan
+│       ├── jsbench.plan
+│       ├── kraken.plan
+│       ├── octane.plan
+│       ├── speedometer.plan
+│       └── sunspider.plan
 ├── generic_factory.py
 ├── http_server_driver
 │   ├── __init__.py
@@ -33,8 +43,8 @@
 │   │   └── twisted_http_server.py
 │   ├── http_server_driver.py
 │   ├── http_server_driver_factory.py
-│   ├── http_server_drivers.json
 │   └── simple_http_server_driver.py
+├── run_benchmark.py
 └── utils.py
 ```
 ## Requirements
@@ -54,10 +64,8 @@
 To create a plan, you may refer to Plans/jetstream.plan.
 ```json 
 {
-    "http_server_driver": "SimpleHTTPServerDriver", 
     "timeout" : 600,
     "count": 5,
-    "benchmark_builder": "JetStreamBenchmarkBuilder",
     "local_copy": "../../../../PerformanceTests/JetStream",
     "benchmark_patch": "data/patches/JetStream.patch",
     "entry_point": "JetStream/JetStream-1.0.1/index.html",
@@ -65,11 +73,9 @@
 }
 ```
 Plan is a json-formatted dictionary which contains following keys 
-* **http_server_driver**: (**case-sensitive**) the http server module you want to host the resources. Current available option is "SimpleHTTPServerHandle" which is based on python twisted framework.
 * **timeout**: time limit for **EACH RUN** of the benchmark. This can avoid program getting stuck in the extreme circumstances. The time limit is suggested to be 1.5-2x the time spent in a normal run.
 * **count**: the number of times you want to run benchmark
-* **benchmark_builder**:  builder of the benchmark which is responsible for arranging benchmark before the web server serving the directory. In most case, 'GenericBenchmarkHandler' is sufficient. It copies the benchmark to a temporary directory and applies patch to benchmark. If you have special requirement, you could design your own benchmark handle, just like the 'JetStreamBenchmarkHandle' in this example.
-* **local_copy**: path of benchmark, a relative path to the root of this project ('benchmark_runner' directory)
+* **local_copy**: (**OPTIONAL**) Path of benchmark, a relative path to the root of this project ('benchmark_runner' directory)
 * **remote_archive**: (**OPTIONAL**) URL of the remote (http/https) ZIP file that contains the benchmark.
 * **benchmark_path**: (**OPTIONAL**) path of patch, a relative path to the root of this project ('benchmark_runner' directory)
 * **entry_point**: the relative url you want browser to launch (a relative path to the benchmark directory)
@@ -103,4 +109,3 @@
 * Do following instruction **ONLY IF NEEDED**. In most case, you do not have to.
     * If you want to customize BrowserDriver for specific browser/platform, you need to extend browser_driver/browser_driver.py and register your module in browser_driver/browser_driversjson.
     * If you want to customize HTTPServerDriver, you need to extend http_server_drirver/http_server_driver and register your module in http_server_driver/http_server_drivers.json.
-    * If you want to customize BenchmarkBuilder, you need to extend benchmark_builder/generic_benchmark_builder register you module in benchmark_builder/benchmark_builders.json

Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py (188243 => 188244)


--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py	2015-08-11 02:49:35 UTC (rev 188243)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py	2015-08-11 03:15:00 UTC (rev 188244)
@@ -1,24 +1,25 @@
 #!/usr/bin/env python
 
-import abc
+from abc import ABCMeta, abstractmethod
 
-
 class BrowserDriver(object):
     platform = None
     browser_name = None
 
-    @abc.abstractmethod
+    ___metaclass___ = ABCMeta
+
+    @abstractmethod
     def prepare_env(self, device_id):
         pass
 
-    @abc.abstractmethod
+    @abstractmethod
     def launch_url(self, url, browser_build_path=None):
         pass
 
-    @abc.abstractmethod
+    @abstractmethod
     def close_browsers(self):
         pass
 
-    @abc.abstractmethod
+    @abstractmethod
     def restore_env(self):
         pass

Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py (188243 => 188244)


--- trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py	2015-08-11 02:49:35 UTC (rev 188243)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py	2015-08-11 03:15:00 UTC (rev 188244)
@@ -18,6 +18,9 @@
         from Quartz import CGWarpMouseCursorPosition
         CGWarpMouseCursorPosition((10, 0))
 
+    def restore_env(self):
+        pass
+
     def close_browsers(self):
         self._terminiate_processes(self.process_name)
 

Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py (188243 => 188244)


--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py	2015-08-11 02:49:35 UTC (rev 188243)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/http_server_driver.py	2015-08-11 03:15:00 UTC (rev 188244)
@@ -1,11 +1,13 @@
 #!/usr/bin/env python
 
-from abc import abstractmethod
+from abc import abstractmethod, ABCMeta
 
 
 class HTTPServerDriver(object):
     platforms = []
 
+    __metaclass__ = ABCMeta
+
     @abstractmethod
     def serve(self, webRoot):
         pass
@@ -23,5 +25,5 @@
         pass
 
     @abstractmethod
-    def set_device_id(self, deviceID):
+    def set_device_id(self, device_id):
         pass

Modified: trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py (188243 => 188244)


--- trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py	2015-08-11 02:49:35 UTC (rev 188243)
+++ trunk/Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py	2015-08-11 03:15:00 UTC (rev 188244)
@@ -91,3 +91,6 @@
 
     def get_return_code(self):
         return self._server_process.returncode
+
+    def set_device_id(self, device_id):
+        pass
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to