Title: [120795] trunk/Tools
Revision
120795
Author
[email protected]
Date
2012-06-19 21:06:17 -0700 (Tue, 19 Jun 2012)

Log Message

NRWT spins up and down the WebSocket server when running a single HTTP test from the command line
https://bugs.webkit.org/show_bug.cgi?id=64489

Reviewed by Tony Chang.

This change changes NRWT so that we don't start the websocket
server if we aren't running websocket tests and don't start the
HTTP server if we aren't running http tests.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._websocket_tests):
(Manager.start_servers_with_lock):
(Manager.stop_servers_with_lock):
* Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:
(ManagerTest.test_servers_started):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (120794 => 120795)


--- trunk/Tools/ChangeLog	2012-06-20 04:01:29 UTC (rev 120794)
+++ trunk/Tools/ChangeLog	2012-06-20 04:06:17 UTC (rev 120795)
@@ -1,5 +1,23 @@
 2012-06-19  Dirk Pranke  <[email protected]>
 
+        NRWT spins up and down the WebSocket server when running a single HTTP test from the command line
+        https://bugs.webkit.org/show_bug.cgi?id=64489
+
+        Reviewed by Tony Chang.
+
+        This change changes NRWT so that we don't start the websocket
+        server if we aren't running websocket tests and don't start the
+        HTTP server if we aren't running http tests.
+        
+        * Scripts/webkitpy/layout_tests/controllers/manager.py:
+        (Manager._websocket_tests):
+        (Manager.start_servers_with_lock):
+        (Manager.stop_servers_with_lock):
+        * Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:
+        (ManagerTest.test_servers_started):
+
+2012-06-19  Dirk Pranke  <[email protected]>
+
         test-webkitpy: add a -p flag to pass through captured output to enable debugging
         https://bugs.webkit.org/show_bug.cgi?id=89158
 

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py (120794 => 120795)


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py	2012-06-20 04:01:29 UTC (rev 120794)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py	2012-06-20 04:06:17 UTC (rev 120795)
@@ -366,6 +366,9 @@
     def _http_tests(self):
         return set(test for test in self._test_files if self._is_http_test(test))
 
+    def _websocket_tests(self):
+        return set(test for test in self._test_files if self.WEBSOCKET_SUBDIR in test)
+
     def _is_perf_test(self, test):
         return self.PERF_SUBDIR == test or (self.PERF_SUBDIR + self._port.TEST_PATH_SEPARATOR) in test
 
@@ -762,7 +765,7 @@
 
         all_shards = locked_shards + unlocked_shards
         self._remaining_locked_shards = locked_shards
-        if locked_shards and self._options.http:
+        if self._options.http and (self._http_tests() or self._websocket_tests()):
             self.start_servers_with_lock()
 
         num_workers = min(num_workers, len(all_shards))
@@ -967,21 +970,24 @@
         return self._port.exit_code_from_summarized_results(unexpected_results)
 
     def start_servers_with_lock(self):
-        assert(self._options.http)
         self._printer.print_update('Acquiring http lock ...')
         self._port.acquire_http_lock()
-        self._printer.print_update('Starting HTTP server ...')
-        self._port.start_http_server()
-        self._printer.print_update('Starting WebSocket server ...')
-        self._port.start_websocket_server()
+        if self._http_tests():
+            self._printer.print_update('Starting HTTP server ...')
+            self._port.start_http_server()
+        if self._websocket_tests():
+            self._printer.print_update('Starting WebSocket server ...')
+            self._port.start_websocket_server()
         self._has_http_lock = True
 
     def stop_servers_with_lock(self):
         if self._has_http_lock:
-            self._printer.print_update('Stopping HTTP server ...')
-            self._port.stop_http_server()
-            self._printer.print_update('Stopping WebSocket server ...')
-            self._port.stop_websocket_server()
+            if self._http_tests():
+                self._printer.print_update('Stopping HTTP server ...')
+                self._port.stop_http_server()
+            if self._websocket_tests():
+                self._printer.print_update('Stopping WebSocket server ...')
+                self._port.stop_websocket_server()
             self._printer.print_update('Releasing server lock ...')
             self._port.release_http_lock()
             self._has_http_lock = False

Modified: trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_unittest.py (120794 => 120795)


--- trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_unittest.py	2012-06-20 04:01:29 UTC (rev 120794)
+++ trunk/Tools/Scripts/webkitpy/layout_tests/controllers/manager_unittest.py	2012-06-20 04:06:17 UTC (rev 120795)
@@ -342,7 +342,59 @@
         manager = get_manager_with_tests(tests)
         manager._look_for_new_crash_logs(rs, time.time())
 
+    def test_servers_started(self):
 
+        def start_http_server():
+            self.http_started = True
+
+        def start_websocket_server():
+            self.websocket_started = True
+
+        def stop_http_server():
+            self.http_stopped = True
+
+        def stop_websocket_server():
+            self.websocket_stopped = True
+
+        host = MockHost()
+        port = host.port_factory.get('test-mac-leopard')
+        port.start_http_server = start_http_server
+        port.start_websocket_server = start_websocket_server
+        port.stop_http_server = stop_http_server
+        port.stop_websocket_server = stop_websocket_server
+
+        self.http_started = self.http_stopped = self.websocket_started = self.websocket_stopped = False
+        manager = Manager(port=port, options=MockOptions(http=True), printer=Mock())
+        manager._test_files = ['http/tests/pass.txt']
+        manager.start_servers_with_lock()
+        self.assertEquals(self.http_started, True)
+        self.assertEquals(self.websocket_started, False)
+        manager.stop_servers_with_lock()
+        self.assertEquals(self.http_stopped, True)
+        self.assertEquals(self.websocket_stopped, False)
+
+        self.http_started = self.http_stopped = self.websocket_started = self.websocket_stopped = False
+        manager = Manager(port=port, options=MockOptions(http=True), printer=Mock())
+        manager._test_files = ['websocket/pass.txt']
+        manager.start_servers_with_lock()
+        self.assertEquals(self.http_started, True)
+        self.assertEquals(self.websocket_started, True)
+        manager.stop_servers_with_lock()
+        self.assertEquals(self.http_stopped, True)
+        self.assertEquals(self.websocket_stopped, True)
+
+        self.http_started = self.http_stopped = self.websocket_started = self.websocket_stopped = False
+        manager = Manager(port=port, options=MockOptions(http=True), printer=Mock())
+        manager._test_files = ['perf/foo/test.html']
+        manager.start_servers_with_lock()
+        self.assertEquals(self.http_started, False)
+        self.assertEquals(self.websocket_started, False)
+        manager.stop_servers_with_lock()
+        self.assertEquals(self.http_stopped, False)
+        self.assertEquals(self.websocket_stopped, False)
+
+
+
 class NaturalCompareTest(unittest.TestCase):
     def assert_cmp(self, x, y, result):
         self.assertEquals(cmp(natural_sort_key(x), natural_sort_key(y)), result)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to