Update to latest wptrunner.

This commit is contained in:
James Graham 2015-10-05 17:22:42 +01:00
parent bae87d193d
commit da3bc54d05
7 changed files with 66 additions and 8 deletions

View file

@ -53,7 +53,13 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
executor_kwargs = base_executor_kwargs(test_type, server_config, executor_kwargs = base_executor_kwargs(test_type, server_config,
cache_manager, **kwargs) cache_manager, **kwargs)
executor_kwargs["close_after_done"] = True executor_kwargs["close_after_done"] = True
if run_info_data["debug"] and kwargs["timeout_multiplier"] is None: if kwargs["timeout_multiplier"] is None:
if kwargs["gecko_e10s"] and test_type == "reftest":
if run_info_data["debug"]:
executor_kwargs["timeout_multiplier"] = 4
else:
executor_kwargs["timeout_multiplier"] = 2
elif run_info_data["debug"]:
executor_kwargs["timeout_multiplier"] = 3 executor_kwargs["timeout_multiplier"] = 3
return executor_kwargs return executor_kwargs

View file

@ -37,8 +37,10 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
rv["pause_after_test"] = kwargs["pause_after_test"] rv["pause_after_test"] = kwargs["pause_after_test"]
return rv return rv
def env_options(): def env_options():
return {"host": "localhost", return {"host": "127.0.0.1",
"external_host": "web-platform.test",
"bind_hostname": "true", "bind_hostname": "true",
"testharnessreport": "testharnessreport-servo.js", "testharnessreport": "testharnessreport-servo.js",
"supports_debugger": True} "supports_debugger": True}

View file

@ -49,7 +49,8 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data, **kw
def env_options(): def env_options():
return {"host": "web-platform.test", return {"host": "127.0.0.1",
"external_host": "web-platform.test",
"bind_hostname": "true", "bind_hostname": "true",
"testharnessreport": "testharnessreport-servodriver.js", "testharnessreport": "testharnessreport-servodriver.js",
"supports_debugger": True} "supports_debugger": True}

View file

@ -36,7 +36,8 @@ class ServoWebDriverProtocol(Protocol):
session_started = False session_started = False
try: try:
self.session = webdriver.Session(self.host, self.port) self.session = webdriver.Session(self.host, self.port,
extension=webdriver.ServoExtensions)
self.session.start() self.session.start()
except: except:
self.logger.warning( self.logger.warning(
@ -82,6 +83,11 @@ class ServoWebDriverProtocol(Protocol):
self.logger.error(traceback.format_exc(e)) self.logger.error(traceback.format_exc(e))
break break
def on_environment_change(self, old_environment, new_environment):
#Unset all the old prefs
self.session.extension.reset_prefs(*old_environment.get("prefs", {}).keys())
self.session.extension.set_prefs(new_environment.get("prefs", {}))
class ServoWebDriverRun(object): class ServoWebDriverRun(object):
def __init__(self, func, session, url, timeout, current_timeout=None): def __init__(self, func, session, url, timeout, current_timeout=None):

View file

@ -346,7 +346,8 @@ class Find(object):
class Session(object): class Session(object):
def __init__(self, host, port, url_prefix="", desired_capabilities=None, port_timeout=60): def __init__(self, host, port, url_prefix="", desired_capabilities=None, port_timeout=60,
extension=None):
self.transport = Transport(host, port, url_prefix, port_timeout) self.transport = Transport(host, port, url_prefix, port_timeout)
self.desired_capabilities = desired_capabilities self.desired_capabilities = desired_capabilities
self.session_id = None self.session_id = None
@ -354,6 +355,8 @@ class Session(object):
self.window = None self.window = None
self.find = None self.find = None
self._element_cache = {} self._element_cache = {}
self.extension = None
self.extension_cls = extension
def start(self): def start(self):
desired_capabilities = self.desired_capabilities if self.desired_capabilities else {} desired_capabilities = self.desired_capabilities if self.desired_capabilities else {}
@ -365,6 +368,8 @@ class Session(object):
self.timeouts = Timeouts(self) self.timeouts = Timeouts(self)
self.window = Window(self) self.window = Window(self)
self.find = Find(self) self.find = Find(self)
if self.extension_cls:
self.extension = self.extension_cls(self)
return rv["value"] return rv["value"]
@ -376,6 +381,7 @@ class Session(object):
self.timeouts = None self.timeouts = None
self.window = None self.window = None
self.find = None self.find = None
self.extension = None
self.transport.close_connection() self.transport.close_connection()
def __enter__(self): def __enter__(self):
@ -579,9 +585,37 @@ class Element(object):
@property @property
@command @command
def text(self): def text(self):
return self.session.send_command("GET", self.url("text"), key="value") return self.session.send_command("GET", self.url("text"))
@property @property
@command @command
def name(self): def name(self):
return self.session.send_command("GET", self.url("name"), key="value") return self.session.send_command("GET", self.url("name"))
@command
def css(self, property_name):
return self.session.send_command("GET", self.url("css/%s" % property_name))
@property
@command
def rect(self):
return self.session.send_command("GET", self.url("rect"))
class ServoExtensions(object):
def __init__(self, session):
self.session = session
@command
def get_prefs(self, *prefs):
body = {"prefs": list(prefs)}
return self.session.send_command("POST", "servo/prefs/get", body)
@command
def set_prefs(self, prefs):
body = {"prefs": prefs}
return self.session.send_command("POST", "servo/prefs/set", body)
@command
def reset_prefs(self, *prefs):
body = {"prefs": list(prefs)}
return self.session.send_command("POST", "servo/prefs/reset", body)

View file

@ -199,6 +199,7 @@ class TestRunnerManager(threading.Thread):
self.browser = None self.browser = None
self.browser_pid = None self.browser_pid = None
self.browser_started = False
# Flags used to shut down this thread if we get a sigint # Flags used to shut down this thread if we get a sigint
self.parent_stop_flag = stop_flag self.parent_stop_flag = stop_flag
@ -279,6 +280,10 @@ class TestRunnerManager(threading.Thread):
if commands[command](*data) is Stop: if commands[command](*data) is Stop:
break break
else: else:
if (self.debug_info and self.debug_info.interactive and
self.browser_started and not browser.is_alive()):
self.logger.debug("Debugger exited")
break
if not self.test_runner_proc.is_alive(): if not self.test_runner_proc.is_alive():
if not self.command_queue.empty(): if not self.command_queue.empty():
# We got a new message so process that # We got a new message so process that
@ -355,6 +360,7 @@ class TestRunnerManager(threading.Thread):
succeeded = False succeeded = False
else: else:
succeeded = True succeeded = True
self.browser_started = True
# This has to happen after the lock is released # This has to happen after the lock is released
if not succeeded: if not succeeded:
@ -457,6 +463,7 @@ class TestRunnerManager(threading.Thread):
return return
try: try:
self.browser.stop() self.browser.stop()
self.browser_started = False
if self.test_runner_proc.is_alive(): if self.test_runner_proc.is_alive():
self.send_message("stop") self.send_message("stop")
self.ensure_runner_stopped() self.ensure_runner_stopped()

View file

@ -274,6 +274,8 @@ class GitTree(object):
:param branch: Branch name to use :param branch: Branch name to use
:param force: Force-checkout :param force: Force-checkout
""" """
assert rev is not None
args = [] args = []
if branch: if branch:
branches = [ref[len("refs/heads/"):] for sha1, ref in self.list_refs() branches = [ref[len("refs/heads/"):] for sha1, ref in self.list_refs()