aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Graham <james@hoppipolla.co.uk>2015-10-05 17:22:42 +0100
committerJames Graham <james@hoppipolla.co.uk>2015-10-06 12:16:37 +0100
commitda3bc54d05e6865bed36fe7102b0b9f5f77120f4 (patch)
tree5148caf560a8f746a61ebc2a961bf8b187c9adfd
parentbae87d193d29a96680795fa1427f3fd08a42b061 (diff)
downloadservo-da3bc54d05e6865bed36fe7102b0b9f5f77120f4.tar.gz
servo-da3bc54d05e6865bed36fe7102b0b9f5f77120f4.zip
Update to latest wptrunner.
-rw-r--r--tests/wpt/harness/wptrunner/browsers/firefox.py10
-rw-r--r--tests/wpt/harness/wptrunner/browsers/servo.py4
-rw-r--r--tests/wpt/harness/wptrunner/browsers/servodriver.py3
-rw-r--r--tests/wpt/harness/wptrunner/executors/executorservodriver.py8
-rw-r--r--tests/wpt/harness/wptrunner/executors/webdriver.py40
-rw-r--r--tests/wpt/harness/wptrunner/testrunner.py7
-rw-r--r--tests/wpt/harness/wptrunner/update/tree.py2
7 files changed, 66 insertions, 8 deletions
diff --git a/tests/wpt/harness/wptrunner/browsers/firefox.py b/tests/wpt/harness/wptrunner/browsers/firefox.py
index 6bbe282d3e8..d3698c22ecf 100644
--- a/tests/wpt/harness/wptrunner/browsers/firefox.py
+++ b/tests/wpt/harness/wptrunner/browsers/firefox.py
@@ -53,8 +53,14 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
executor_kwargs = base_executor_kwargs(test_type, server_config,
cache_manager, **kwargs)
executor_kwargs["close_after_done"] = True
- if run_info_data["debug"] and kwargs["timeout_multiplier"] is None:
- executor_kwargs["timeout_multiplier"] = 3
+ 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
return executor_kwargs
diff --git a/tests/wpt/harness/wptrunner/browsers/servo.py b/tests/wpt/harness/wptrunner/browsers/servo.py
index 64249af8a59..1ae9b7ea77b 100644
--- a/tests/wpt/harness/wptrunner/browsers/servo.py
+++ b/tests/wpt/harness/wptrunner/browsers/servo.py
@@ -37,8 +37,10 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
rv["pause_after_test"] = kwargs["pause_after_test"]
return rv
+
def env_options():
- return {"host": "localhost",
+ return {"host": "127.0.0.1",
+ "external_host": "web-platform.test",
"bind_hostname": "true",
"testharnessreport": "testharnessreport-servo.js",
"supports_debugger": True}
diff --git a/tests/wpt/harness/wptrunner/browsers/servodriver.py b/tests/wpt/harness/wptrunner/browsers/servodriver.py
index 656a8b51f40..7df28797efb 100644
--- a/tests/wpt/harness/wptrunner/browsers/servodriver.py
+++ b/tests/wpt/harness/wptrunner/browsers/servodriver.py
@@ -49,7 +49,8 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data, **kw
def env_options():
- return {"host": "web-platform.test",
+ return {"host": "127.0.0.1",
+ "external_host": "web-platform.test",
"bind_hostname": "true",
"testharnessreport": "testharnessreport-servodriver.js",
"supports_debugger": True}
diff --git a/tests/wpt/harness/wptrunner/executors/executorservodriver.py b/tests/wpt/harness/wptrunner/executors/executorservodriver.py
index 6b94c033bd1..8a914a876eb 100644
--- a/tests/wpt/harness/wptrunner/executors/executorservodriver.py
+++ b/tests/wpt/harness/wptrunner/executors/executorservodriver.py
@@ -36,7 +36,8 @@ class ServoWebDriverProtocol(Protocol):
session_started = False
try:
- self.session = webdriver.Session(self.host, self.port)
+ self.session = webdriver.Session(self.host, self.port,
+ extension=webdriver.ServoExtensions)
self.session.start()
except:
self.logger.warning(
@@ -82,6 +83,11 @@ class ServoWebDriverProtocol(Protocol):
self.logger.error(traceback.format_exc(e))
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):
def __init__(self, func, session, url, timeout, current_timeout=None):
diff --git a/tests/wpt/harness/wptrunner/executors/webdriver.py b/tests/wpt/harness/wptrunner/executors/webdriver.py
index b3c9ab3a7f5..247f53f1d7a 100644
--- a/tests/wpt/harness/wptrunner/executors/webdriver.py
+++ b/tests/wpt/harness/wptrunner/executors/webdriver.py
@@ -346,7 +346,8 @@ class Find(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.desired_capabilities = desired_capabilities
self.session_id = None
@@ -354,6 +355,8 @@ class Session(object):
self.window = None
self.find = None
self._element_cache = {}
+ self.extension = None
+ self.extension_cls = extension
def start(self):
desired_capabilities = self.desired_capabilities if self.desired_capabilities else {}
@@ -365,6 +368,8 @@ class Session(object):
self.timeouts = Timeouts(self)
self.window = Window(self)
self.find = Find(self)
+ if self.extension_cls:
+ self.extension = self.extension_cls(self)
return rv["value"]
@@ -376,6 +381,7 @@ class Session(object):
self.timeouts = None
self.window = None
self.find = None
+ self.extension = None
self.transport.close_connection()
def __enter__(self):
@@ -579,9 +585,37 @@ class Element(object):
@property
@command
def text(self):
- return self.session.send_command("GET", self.url("text"), key="value")
+ return self.session.send_command("GET", self.url("text"))
@property
@command
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)
diff --git a/tests/wpt/harness/wptrunner/testrunner.py b/tests/wpt/harness/wptrunner/testrunner.py
index 4c876328771..b5617827a40 100644
--- a/tests/wpt/harness/wptrunner/testrunner.py
+++ b/tests/wpt/harness/wptrunner/testrunner.py
@@ -199,6 +199,7 @@ class TestRunnerManager(threading.Thread):
self.browser = None
self.browser_pid = None
+ self.browser_started = False
# Flags used to shut down this thread if we get a sigint
self.parent_stop_flag = stop_flag
@@ -279,6 +280,10 @@ class TestRunnerManager(threading.Thread):
if commands[command](*data) is Stop:
break
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.command_queue.empty():
# We got a new message so process that
@@ -355,6 +360,7 @@ class TestRunnerManager(threading.Thread):
succeeded = False
else:
succeeded = True
+ self.browser_started = True
# This has to happen after the lock is released
if not succeeded:
@@ -457,6 +463,7 @@ class TestRunnerManager(threading.Thread):
return
try:
self.browser.stop()
+ self.browser_started = False
if self.test_runner_proc.is_alive():
self.send_message("stop")
self.ensure_runner_stopped()
diff --git a/tests/wpt/harness/wptrunner/update/tree.py b/tests/wpt/harness/wptrunner/update/tree.py
index 292a45a4fe2..05b35c24674 100644
--- a/tests/wpt/harness/wptrunner/update/tree.py
+++ b/tests/wpt/harness/wptrunner/update/tree.py
@@ -274,6 +274,8 @@ class GitTree(object):
:param branch: Branch name to use
:param force: Force-checkout
"""
+ assert rev is not None
+
args = []
if branch:
branches = [ref[len("refs/heads/"):] for sha1, ref in self.list_refs()