mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Update web-platform-tests to revision 68a256f49be380ca4add535ce8ece9de28820e6b
This commit is contained in:
parent
e54935c25a
commit
cd5bf022bd
178 changed files with 6082 additions and 795 deletions
|
@ -281,6 +281,7 @@ class Chrome(Browser):
|
|||
logger.critical("dbus not running and can't be started")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
class ChromeAndroid(Browser):
|
||||
"""Chrome-specific interface for android.
|
||||
|
||||
|
@ -293,49 +294,16 @@ class ChromeAndroid(Browser):
|
|||
def install(self, dest=None):
|
||||
raise NotImplementedError
|
||||
|
||||
def platform_string(self):
|
||||
raise NotImplementedError
|
||||
|
||||
def find_webdriver(self):
|
||||
return find_executable("chromedriver")
|
||||
|
||||
def install_webdriver(self, dest=None):
|
||||
"""Install latest Webdriver."""
|
||||
if dest is None:
|
||||
dest = os.pwd
|
||||
latest = get("http://chromedriver.storage.googleapis.com/LATEST_RELEASE").text.strip()
|
||||
url = "http://chromedriver.storage.googleapis.com/%s/chromedriver_%s.zip" % (latest,
|
||||
self.platform_string())
|
||||
unzip(get(url).raw, dest)
|
||||
|
||||
path = find_executable("chromedriver", dest)
|
||||
st = os.stat(path)
|
||||
os.chmod(path, st.st_mode | stat.S_IEXEC)
|
||||
return path
|
||||
chrome = Chrome()
|
||||
return chrome.install_webdriver(dest)
|
||||
|
||||
def version(self, root):
|
||||
raise NotImplementedError
|
||||
|
||||
def prepare_environment(self):
|
||||
# https://bugs.chromium.org/p/chromium/issues/detail?id=713947
|
||||
logger.debug("DBUS_SESSION_BUS_ADDRESS %s" % os.environ.get("DBUS_SESSION_BUS_ADDRESS"))
|
||||
if "DBUS_SESSION_BUS_ADDRESS" not in os.environ:
|
||||
if find_executable("dbus-launch"):
|
||||
logger.debug("Attempting to start dbus")
|
||||
dbus_conf = subprocess.check_output(["dbus-launch"])
|
||||
logger.debug(dbus_conf)
|
||||
|
||||
# From dbus-launch(1):
|
||||
#
|
||||
# > When dbus-launch prints bus information to standard output,
|
||||
# > by default it is in a simple key-value pairs format.
|
||||
for line in dbus_conf.strip().split("\n"):
|
||||
key, _, value = line.partition("=")
|
||||
os.environ[key] = value
|
||||
else:
|
||||
logger.critical("dbus not running and can't be started")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
class Opera(Browser):
|
||||
"""Opera-specific interface.
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
import subprocess
|
||||
|
||||
from ..config import *
|
||||
from .base import Browser, ExecutorBrowser, require_arg
|
||||
from ..webdriver_server import ChromeDriverServer
|
||||
from ..executors import executor_kwargs as base_executor_kwargs
|
||||
|
@ -17,6 +20,8 @@ __wptrunner__ = {"product": "chrome_android",
|
|||
"env_extras": "env_extras",
|
||||
"env_options": "env_options"}
|
||||
|
||||
_wptserve_ports = set()
|
||||
|
||||
|
||||
def check_args(**kwargs):
|
||||
require_arg(kwargs, "webdriver_binary")
|
||||
|
@ -32,13 +37,19 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
|
|||
**kwargs):
|
||||
from selenium.webdriver import DesiredCapabilities
|
||||
|
||||
# Use extend() to modify the global list in place.
|
||||
_wptserve_ports.update(set(
|
||||
server_config['ports']['http'] + server_config['ports']['https'] +
|
||||
server_config['ports']['ws'] + server_config['ports']['wss']
|
||||
))
|
||||
|
||||
executor_kwargs = base_executor_kwargs(test_type, server_config,
|
||||
cache_manager, **kwargs)
|
||||
executor_kwargs["close_after_done"] = True
|
||||
capabilities = dict(DesiredCapabilities.CHROME.items())
|
||||
capabilities["chromeOptions"] = {}
|
||||
# required to start on mobile
|
||||
capabilities["chromeOptions"]["androidPackage"] = "com.android.chrome"
|
||||
capabilities["chromeOptions"]["androidPackage"] = "com.google.android.apps.chrome"
|
||||
|
||||
for (kwarg, capability) in [("binary", "binary"), ("binary_args", "args")]:
|
||||
if kwargs[kwarg] is not None:
|
||||
|
@ -76,6 +87,17 @@ class ChromeAndroidBrowser(Browser):
|
|||
binary=webdriver_binary,
|
||||
args=webdriver_args)
|
||||
|
||||
def _adb_run(self, args):
|
||||
self.logger.info('adb ' + ' '.join(args))
|
||||
subprocess.check_call(['adb'] + args)
|
||||
|
||||
def setup(self):
|
||||
self._adb_run(['wait-for-device'])
|
||||
self._adb_run(['forward', '--remove-all'])
|
||||
self._adb_run(['reverse', '--remove-all'])
|
||||
for port in _wptserve_ports:
|
||||
self._adb_run(['reverse', 'tcp:%d' % port, 'tcp:%d' % port])
|
||||
|
||||
def start(self, **kwargs):
|
||||
self.server.start(block=False)
|
||||
|
||||
|
@ -93,6 +115,8 @@ class ChromeAndroidBrowser(Browser):
|
|||
|
||||
def cleanup(self):
|
||||
self.stop()
|
||||
self._adb_run(['forward', '--remove-all'])
|
||||
self._adb_run(['reverse', '--remove-all'])
|
||||
|
||||
def executor_browser(self):
|
||||
return ExecutorBrowser, {"webdriver_url": self.server.url}
|
||||
|
|
|
@ -229,7 +229,6 @@ class BrowserManager(object):
|
|||
def cleanup(self):
|
||||
if self.init_timer is not None:
|
||||
self.init_timer.cancel()
|
||||
self.browser.cleanup()
|
||||
|
||||
def check_for_crashes(self):
|
||||
self.browser.check_for_crashes()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue