Skip to content

Commit

Permalink
Merge pull request #84 from w3c/jgraham/cache_manager_windows
Browse files Browse the repository at this point in the history
Make the cache manager owned by the TestEnvironment so it can be shut down correctly.
  • Loading branch information
jgraham committed Mar 6, 2015
2 parents e64ae27 + 492538d commit 54e40e1
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 10 deletions.
6 changes: 5 additions & 1 deletion wptrunner/browsers/b2g.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,18 @@ def browser_kwargs(test_environment, **kwargs):
"no_backup": kwargs.get("b2g_no_backup", False)}


def executor_kwargs(test_type, http_server_url, **kwargs):
def executor_kwargs(test_type, http_server_url, cache_manager, **kwargs):
timeout_multiplier = kwargs["timeout_multiplier"]
if timeout_multiplier is None:
timeout_multiplier = 2

executor_kwargs = {"http_server_url": http_server_url,
"timeout_multiplier": timeout_multiplier,
"close_after_done": False}

if test_type == "reftest":
executor_kwargs["cache_manager"] = cache_manager

return executor_kwargs


Expand Down
5 changes: 3 additions & 2 deletions wptrunner/browsers/chrome.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@ def browser_kwargs(**kwargs):
"webdriver_binary": kwargs["webdriver_binary"]}


def executor_kwargs(test_type, http_server_url, **kwargs):
def executor_kwargs(test_type, http_server_url, cache_manager, **kwargs):
from selenium.webdriver import DesiredCapabilities

executor_kwargs = base_executor_kwargs(test_type, http_server_url, **kwargs)
executor_kwargs = base_executor_kwargs(test_type, http_server_url,
cache_manager, **kwargs)
executor_kwargs["close_after_done"] = True
executor_kwargs["capabilities"] = dict(DesiredCapabilities.CHROME.items() +
{"chromeOptions":
Expand Down
5 changes: 3 additions & 2 deletions wptrunner/browsers/firefox.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,9 @@ def browser_kwargs(**kwargs):
"ca_certificate_path": kwargs["ssl_env"].ca_cert_path()}


def executor_kwargs(test_type, http_server_url, **kwargs):
executor_kwargs = base_executor_kwargs(test_type, http_server_url, **kwargs)
def executor_kwargs(test_type, http_server_url, cache_manager, **kwargs):
executor_kwargs = base_executor_kwargs(test_type, http_server_url,
cache_manager, **kwargs)
executor_kwargs["close_after_done"] = True
return executor_kwargs

Expand Down
5 changes: 3 additions & 2 deletions wptrunner/browsers/servo.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ def browser_kwargs(**kwargs):
"interactive": kwargs["interactive"]}


def executor_kwargs(test_type, http_server_url, **kwargs):
rv = base_executor_kwargs(test_type, http_server_url, **kwargs)
def executor_kwargs(test_type, http_server_url, cache_manager, **kwargs):
rv = base_executor_kwargs(test_type, http_server_url,
cache_manager, **kwargs)
rv["pause_after_test"] = kwargs["pause_after_test"]
return rv

Expand Down
5 changes: 5 additions & 0 deletions wptrunner/environment.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import json
import os
import multiprocessing
import socket
import sys
import time
Expand Down Expand Up @@ -97,8 +98,11 @@ def __init__(self, test_paths, ssl_env, pause_after_test, options):
self.test_server_port = options.pop("test_server_port", True)
self.options = options if options is not None else {}

self.cache_manager = multiprocessing.Manager()

def __enter__(self):
self.ssl_env.__enter__()
self.cache_manager.__enter__()
self.setup_server_logging()
self.setup_routes()
self.config = self.load_config()
Expand All @@ -107,6 +111,7 @@ def __enter__(self):
return self

def __exit__(self, exc_type, exc_val, exc_tb):
self.cache_manager.__exit__(exc_type, exc_val, exc_tb)
self.ssl_env.__exit__(exc_type, exc_val, exc_tb)

for scheme, servers in self.servers.iteritems():
Expand Down
4 changes: 1 addition & 3 deletions wptrunner/executors/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,13 @@
import os
import traceback
from abc import ABCMeta, abstractmethod
from multiprocessing import Manager

from ..testrunner import Stop

here = os.path.split(__file__)[0]

cache_manager = Manager()

def executor_kwargs(test_type, http_server_url, **kwargs):
def executor_kwargs(test_type, http_server_url, cache_manager, **kwargs):
timeout_multiplier = kwargs["timeout_multiplier"]
if timeout_multiplier is None:
timeout_multiplier = 1
Expand Down
1 change: 1 addition & 0 deletions wptrunner/wptrunner.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ def run_tests(config, test_paths, product, **kwargs):
executor_cls = executor_classes.get(test_type)
executor_kwargs = get_executor_kwargs(test_type,
base_server,
test_environment.cache_manager,
**kwargs)

if executor_cls is None:
Expand Down

0 comments on commit 54e40e1

Please sign in to comment.