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

Unified Diff: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py

Issue 2837773002: webkitpy: Check xvfb with xdpyinfo after starting. (Closed)
Patch Set: Fixing tests Created 3 years, 8 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
« no previous file with comments | « third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py
index 9b6a25e55f438b7eb52381d4a3d731e2a2cf9052..9b96ae6bcf4cd0556fe96149d4518a1736d3cbcd 100644
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux_unittest.py
@@ -116,22 +116,37 @@ class LinuxPortTest(port_testcase.PortTestCase):
self.assertFalse(port.host.filesystem.exists(temp_home_dir))
def test_setup_test_run_starts_xvfb(self):
+ def run_command_fake(args):
+ if args[0] == 'xdpyinfo':
+ if '-display' in args:
+ return 1
+ return 0
+
port = self.make_port()
- port.host.executive = MockExecutive(exit_code=1)
+ port.host.executive = MockExecutive(
+ run_command_fn=run_command_fake)
port.setup_test_run()
self.assertEqual(
port.host.executive.calls,
[
['xdpyinfo', '-display', ':99'],
['Xvfb', ':99', '-screen', '0', '1280x800x24', '-ac', '-dpi', '96'],
+ ['xdpyinfo'],
])
env = port.setup_environ_for_server()
self.assertEqual(env['DISPLAY'], ':99')
def test_setup_test_runs_finds_free_display(self):
+ def run_command_fake(args):
+ if args[0] == 'xdpyinfo':
+ if '-display' in args:
+ if ':102' in args:
+ return 1
+ return 0
+
port = self.make_port()
port.host.executive = MockExecutive(
- run_command_fn=lambda args: 1 if ':102' in args else 0)
+ run_command_fn=run_command_fake)
port.setup_test_run()
self.assertEqual(
port.host.executive.calls,
@@ -141,6 +156,56 @@ class LinuxPortTest(port_testcase.PortTestCase):
['xdpyinfo', '-display', ':101'],
['xdpyinfo', '-display', ':102'],
['Xvfb', ':102', '-screen', '0', '1280x800x24', '-ac', '-dpi', '96'],
+ ['xdpyinfo'],
])
env = port.setup_environ_for_server()
self.assertEqual(env['DISPLAY'], ':102')
+
+ def test_setup_test_runs_multiple_checks_when_slow_to_start(self):
+ count = [0]
+
+ def run_command_fake(args):
+ if args[0] == 'xdpyinfo':
+ if '-display' in args:
+ return 1
+ if count[0] < 3:
+ count[0] += 1
+ return 1
+ return 0
+
+ port = self.make_port()
+ port.host.executive = MockExecutive(
+ run_command_fn=run_command_fake)
+ port.setup_test_run()
+ self.assertEqual(
+ port.host.executive.calls,
+ [
+ ['xdpyinfo', '-display', ':99'],
+ ['Xvfb', ':99', '-screen', '0', '1280x800x24', '-ac', '-dpi', '96'],
+ ['xdpyinfo'],
+ ['xdpyinfo'],
+ ['xdpyinfo'],
+ ['xdpyinfo'],
+ ])
+ env = port.setup_environ_for_server()
+ self.assertEqual(env['DISPLAY'], ':99')
+
+ def test_setup_test_runs_eventually_failes_on_failure(self):
+ def run_command_fake(args):
+ if args[0] == 'xdpyinfo':
+ return 1
+ return 0
+
+ host = MockSystemHost(os_name=self.os_name, os_version=self.os_version)
+ port = self.make_port(host=host)
+ port.host.executive = MockExecutive(
+ run_command_fn=run_command_fake)
+ port.setup_test_run()
+ self.assertEqual(
+ port.host.executive.calls,
+ [
+ ['xdpyinfo', '-display', ':99'],
+ ['Xvfb', ':99', '-screen', '0', '1280x800x24', '-ac', '-dpi', '96'],
+ ] + [['xdpyinfo']] * 51)
+ env = port.setup_environ_for_server()
+ self.assertEqual(env['DISPLAY'], ':99')
« no previous file with comments | « third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/linux.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698