Update web-platform-tests to revision 68a256f49be380ca4add535ce8ece9de28820e6b

This commit is contained in:
WPT Sync Bot 2018-02-04 20:08:48 -05:00
parent e54935c25a
commit cd5bf022bd
178 changed files with 6082 additions and 795 deletions

View file

@ -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.

View file

@ -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}

View file

@ -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()