[Tools] Add a driver for cog for benchmark_runner.py
https://bugs.webkit.org/show_bug.cgi?id=202995

Reviewed by Žan Doberšek.

* Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py: Added.
(CogBrowserDriver):
(CogBrowserDriver.launch_url):
(CogBrowserDriver.launch_driver):
(CogFdoBrowserDriver):
(CogFdoBrowserDriver.launch_url):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@251191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index afde174..9e8c35b 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,17 @@
+2019-10-16  Pablo Saavedra  <psaavedra@igalia.com>
+
+        [Tools] Add a driver for cog for benchmark_runner.py
+        https://bugs.webkit.org/show_bug.cgi?id=202995
+
+        Reviewed by Žan Doberšek.
+
+        * Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py: Added.
+        (CogBrowserDriver):
+        (CogBrowserDriver.launch_url):
+        (CogBrowserDriver.launch_driver):
+        (CogFdoBrowserDriver):
+        (CogFdoBrowserDriver.launch_url):
+
 2019-10-16  Youenn Fablet  <youenn@apple.com>
 
         WebAudioSourceProviderAVFObjC::provideInput should set its WebAudioBufferList parameters correctly
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
new file mode 100644
index 0000000..b90aa44
--- /dev/null
+++ b/Tools/Scripts/webkitpy/benchmark_runner/browser_driver/linux_cog_driver.py
@@ -0,0 +1,55 @@
+# Copyright (C) 2019 Igalia S.L. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (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
+
+
+class CogBrowserDriver(LinuxBrowserDriver):
+    browser_name = 'cog'
+    process_search_list = ['cog']
+
+    def launch_url(self, url, options, browser_build_path, browser_path):
+        self._browser_arguments = [url]
+        super(CogBrowserDriver, self).launch_url(url, options,
+                                                 browser_build_path,
+                                                 browser_path)
+
+    def launch_driver(self, url, options, browser_build_path):
+        raise ValueError("Browser {browser} is not available with webdriver".format(browser=self.browser_name))
+
+
+class CogFdoBrowserDriver(LinuxBrowserDriver):
+    browser_name = 'cog-fdo'
+    process_search_list = ['cog']
+
+    def launch_url(self, url, options, browser_build_path, browser_path):
+        self._browser_arguments = ['--platform=fdo', url]
+        super(CogFdoBrowserDriver, self).launch_url(url, options,
+                                                    browser_build_path,
+                                                    browser_path)
+
+    def launch_driver(self, url, options, browser_build_path):
+        raise ValueError("Browser {browser} is not available with webdriver".format(browser=self.browser_name))