Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(525)

Unified Diff: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py

Issue 2624093003: Remove the overridden _stop_running_server method in WPTServe. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..3bb32e246aad946d54e252395c61f4e87c6a71cc
--- /dev/null
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/servers/wptserve_unittest.py
@@ -0,0 +1,80 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import logging
+
+from webkitpy.common.system.log_testing import LoggingTestCase, LogTesting
+from webkitpy.common.host_mock import MockHost
+from webkitpy.layout_tests.port import test
+from webkitpy.layout_tests.servers.wptserve import WPTServe
+
+
+class TestWPTServe(LoggingTestCase):
+
+ # pylint: disable=protected-access
+
+ def test_init_start_cmd(self):
+ test_port = test.TestPort(MockHost())
+ server = WPTServe(test_port, '/foo')
+ self.assertEqual(
+ server._start_cmd, # pylint: disable=protected-access
+ [
+ 'python',
+ '-u',
+ '/mock-checkout/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt/serve',
+ '--config',
+ '/mock-checkout/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty/wpt/wpt.config.json',
+ '--doc_root',
+ '/test.checkout/LayoutTests/imported/wpt'
+ ])
+
+ def test_init_env(self):
+ test_port = test.TestPort(MockHost())
+ server = WPTServe(test_port, '/foo')
+ self.assertEqual(
+ server._env, # pylint: disable=protected-access
+ {
+ 'MOCK_ENVIRON_COPY': '1',
+ 'PATH': '/bin:/mock/bin',
+ 'PYTHONPATH': '/mock-checkout/third_party/WebKit/Tools/Scripts/webkitpy/thirdparty'
+ })
+
+ def test_start_with_unkillable_zombie_process(self):
+ # Allow asserting about debug logs.
+ self._log = LogTesting.setUp(self, logging_level=logging.DEBUG)
+
+ host = MockHost()
+ test_port = test.TestPort(host)
+ host.filesystem.write_text_file('/log_file_dir/access_log', 'foo')
+ host.filesystem.write_text_file('/log_file_dir/error_log', 'foo')
+ host.filesystem.write_text_file('/tmp/pidfile', '7')
+
+ server = WPTServe(test_port, '/log_file_dir')
+ server._pid_file = '/tmp/pidfile'
+ server._spawn_process = lambda: 4
+ server._is_server_running_on_all_ports = lambda: True
+
+ # Simulate a process that never gets killed.
+ host.executive.check_running_pid = lambda _: True
+
+ server.start()
+ self.assertEqual(server._pid, 4)
+ self.assertIsNone(host.filesystem.files[server._pid_file])
+
+ # In this case, we'll try to kill the process repeatedly,
+ # then give up and just try to start a new process anyway.
+ logs = self.logMessages()
+ self.assertEqual(len(logs), 43)
+ self.assertEqual(
+ logs[:2],
+ [
+ 'DEBUG: stale wptserve pid file, pid 7\n',
+ 'DEBUG: pid 7 is running, killing it\n'
+ ])
+ self.assertEqual(
+ logs[-2:],
+ [
+ 'DEBUG: all ports are available\n',
+ 'DEBUG: wptserve successfully started (pid = 4)\n'
+ ])

Powered by Google App Engine
This is Rietveld 408576698