Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py (101666 => 101667)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py 2011-12-01 15:22:08 UTC (rev 101666)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py 2011-12-01 15:44:59 UTC (rev 101667)
@@ -106,7 +106,7 @@
class AbstractWorker(message_broker.BrokerClient):
- def __init__(self, worker_connection, worker_number, options):
+ def __init__(self, worker_connection, worker_number, results_directory, options):
"""The constructor should be used to do any simple initialization
necessary, but should not do anything that creates data structures
that cannot be Pickled or sent across processes (like opening
@@ -123,6 +123,7 @@
self._options = options
self._worker_number = worker_number
self._name = 'worker/%d' % worker_number
+ self._results_directory = results_directory
def run(self, port):
"""Callback for the worker to start executing. Typically does any
@@ -151,7 +152,7 @@
self._options = options
self._worker_class = worker_class
- def start_worker(self, worker_number):
+ def start_worker(self, worker_number, results_directory):
raise NotImplementedError
@@ -161,9 +162,9 @@
self._port = port
self._inline_worker = None
- def start_worker(self, worker_number):
+ def start_worker(self, worker_number, results_directory):
self._inline_worker = _InlineWorkerConnection(self._broker, self._port,
- self._client, self._worker_class, worker_number)
+ self._client, self._worker_class, worker_number, results_directory)
return self._inline_worker
def run_message_loop(self, delay_secs=None):
@@ -182,16 +183,16 @@
_ManagerConnection.__init__(self, broker, options, client, worker_class)
self._platform_name = port.real_name()
- def start_worker(self, worker_number):
+ def start_worker(self, worker_number, results_directory):
worker_connection = _MultiProcessWorkerConnection(self._broker, self._platform_name,
- self._worker_class, worker_number, self._options)
+ self._worker_class, worker_number, results_directory, self._options)
worker_connection.start()
return worker_connection
class _WorkerConnection(message_broker.BrokerConnection):
- def __init__(self, broker, worker_class, worker_number, options):
- self._client = worker_class(self, worker_number, options)
+ def __init__(self, broker, worker_class, worker_number, results_directory, options):
+ self._client = worker_class(self, worker_number, results_directory, options)
self.name = self._client.name()
message_broker.BrokerConnection.__init__(self, broker, self._client,
ANY_WORKER_TOPIC, MANAGER_TOPIC)
@@ -210,8 +211,8 @@
class _InlineWorkerConnection(_WorkerConnection):
- def __init__(self, broker, port, manager_client, worker_class, worker_number):
- _WorkerConnection.__init__(self, broker, worker_class, worker_number, port.options)
+ def __init__(self, broker, port, manager_client, worker_class, worker_number, results_directory):
+ _WorkerConnection.__init__(self, broker, worker_class, worker_number, results_directory, port.options)
self._alive = False
self._port = port
self._manager_client = manager_client
@@ -272,8 +273,8 @@
class _MultiProcessWorkerConnection(_WorkerConnection):
- def __init__(self, broker, platform_name, worker_class, worker_number, options):
- _WorkerConnection.__init__(self, broker, worker_class, worker_number, options)
+ def __init__(self, broker, platform_name, worker_class, worker_number, results_directory, options):
+ _WorkerConnection.__init__(self, broker, worker_class, worker_number, results_directory, options)
self._proc = _Process(self, platform_name, options, self._client)
def cancel(self):
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py (101666 => 101667)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py 2011-12-01 15:22:08 UTC (rev 101666)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py 2011-12-01 15:44:59 UTC (rev 101667)
@@ -67,7 +67,7 @@
class _TestWorker(manager_worker_broker.AbstractWorker):
- def __init__(self, broker_connection, worker_number, options):
+ def __init__(self, broker_connection, worker_number, results_directory, options):
self._broker_connection = broker_connection
self._options = options
self._worker_number = worker_number
@@ -172,7 +172,7 @@
def test_cancel(self):
self.make_broker()
- worker = self._broker.start_worker(0)
+ worker = self._broker.start_worker(0, None)
worker.cancel()
self._broker.post_message('test', 1, 'hello, world')
worker.join(0.5)
@@ -180,7 +180,7 @@
def test_done(self):
self.make_broker()
- worker = self._broker.start_worker(0)
+ worker = self._broker.start_worker(0, None)
self._broker.post_message('test', 1, 'hello, world')
self._broker.post_message('stop')
self._broker.run_message_loop()
@@ -192,7 +192,7 @@
def test_unknown_message(self):
self.make_broker()
- worker = self._broker.start_worker(0)
+ worker = self._broker.start_worker(0, None)
self._broker.post_message('unknown')
self._broker.run_message_loop()
worker.join(0.5)
@@ -234,13 +234,13 @@
# signature we expect.
broker = make_broker(self, 'inline')
obj = manager_worker_broker._ManagerConnection(broker._broker, None, self, None)
- self.assertRaises(NotImplementedError, obj.start_worker, 0)
+ self.assertRaises(NotImplementedError, obj.start_worker, 0, None)
def test_workerconnection_is_abstract(self):
# Test that all the base class methods are abstract and have the
# signature we expect.
broker = make_broker(self, 'inline')
- obj = manager_worker_broker._WorkerConnection(broker._broker, _TestWorker, 0, None)
+ obj = manager_worker_broker._WorkerConnection(broker._broker, _TestWorker, 0, None, None)
self.assertRaises(NotImplementedError, obj.cancel)
self.assertRaises(NotImplementedError, obj.is_alive)
self.assertRaises(NotImplementedError, obj.join, None)
Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py (101666 => 101667)
--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py 2011-12-01 15:22:08 UTC (rev 101666)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/worker.py 2011-12-01 15:44:59 UTC (rev 101667)
@@ -43,8 +43,8 @@
class Worker(manager_worker_broker.AbstractWorker):
- def __init__(self, worker_connection, worker_number, options):
- manager_worker_broker.AbstractWorker.__init__(self, worker_connection, worker_number, options)
+ def __init__(self, worker_connection, worker_number, results_directory, options):
+ manager_worker_broker.AbstractWorker.__init__(self, worker_connection, worker_number, results_directory, options)
self._done = False
self._canceled = False
self._port = None
@@ -68,7 +68,7 @@
self._filesystem = port.filesystem
self._batch_count = 0
self._batch_size = self._options.batch_size or 0
- tests_run_filename = self._filesystem.join(port.results_directory(), "tests_run%d.txt" % self._worker_number)
+ tests_run_filename = self._filesystem.join(self._results_directory, "tests_run%d.txt" % self._worker_number)
self._tests_run_file = self._filesystem.open_text_file_for_writing(tests_run_filename)
def cancel(self):