OLD | NEW |
1 # Copyright (C) 2011 Google Inc. All rights reserved. | 1 # Copyright (C) 2011 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 self.assertNotEqual(temp_home_dir, '/home/user') | 109 self.assertNotEqual(temp_home_dir, '/home/user') |
110 self.assertTrue(port.host.filesystem.isdir(temp_home_dir)) | 110 self.assertTrue(port.host.filesystem.isdir(temp_home_dir)) |
111 self.assertTrue(port.host.filesystem.isfile(port.host.filesystem.join(te
mp_home_dir, '.Xauthority'))) | 111 self.assertTrue(port.host.filesystem.isfile(port.host.filesystem.join(te
mp_home_dir, '.Xauthority'))) |
112 | 112 |
113 # Clean up; HOME should be reset and the temp dir should be cleaned up. | 113 # Clean up; HOME should be reset and the temp dir should be cleaned up. |
114 port.clean_up_test_run() | 114 port.clean_up_test_run() |
115 self.assertEqual(port.host.environ['HOME'], '/home/user') | 115 self.assertEqual(port.host.environ['HOME'], '/home/user') |
116 self.assertFalse(port.host.filesystem.exists(temp_home_dir)) | 116 self.assertFalse(port.host.filesystem.exists(temp_home_dir)) |
117 | 117 |
118 def test_setup_test_run_starts_xvfb(self): | 118 def test_setup_test_run_starts_xvfb(self): |
| 119 def run_command_fake(args): |
| 120 if args[0] == 'xdpyinfo': |
| 121 if '-display' in args: |
| 122 return 1 |
| 123 return 0 |
| 124 |
119 port = self.make_port() | 125 port = self.make_port() |
120 port.host.executive = MockExecutive(exit_code=1) | 126 port.host.executive = MockExecutive( |
| 127 run_command_fn=run_command_fake) |
121 port.setup_test_run() | 128 port.setup_test_run() |
122 self.assertEqual( | 129 self.assertEqual( |
123 port.host.executive.calls, | 130 port.host.executive.calls, |
124 [ | 131 [ |
125 ['xdpyinfo', '-display', ':99'], | 132 ['xdpyinfo', '-display', ':99'], |
126 ['Xvfb', ':99', '-screen', '0', '1280x800x24', '-ac', '-dpi', '9
6'], | 133 ['Xvfb', ':99', '-screen', '0', '1280x800x24', '-ac', '-dpi', '9
6'], |
| 134 ['xdpyinfo'], |
127 ]) | 135 ]) |
128 env = port.setup_environ_for_server() | 136 env = port.setup_environ_for_server() |
129 self.assertEqual(env['DISPLAY'], ':99') | 137 self.assertEqual(env['DISPLAY'], ':99') |
130 | 138 |
131 def test_setup_test_runs_finds_free_display(self): | 139 def test_setup_test_runs_finds_free_display(self): |
| 140 def run_command_fake(args): |
| 141 if args[0] == 'xdpyinfo': |
| 142 if '-display' in args: |
| 143 if ':102' in args: |
| 144 return 1 |
| 145 return 0 |
| 146 |
132 port = self.make_port() | 147 port = self.make_port() |
133 port.host.executive = MockExecutive( | 148 port.host.executive = MockExecutive( |
134 run_command_fn=lambda args: 1 if ':102' in args else 0) | 149 run_command_fn=run_command_fake) |
135 port.setup_test_run() | 150 port.setup_test_run() |
136 self.assertEqual( | 151 self.assertEqual( |
137 port.host.executive.calls, | 152 port.host.executive.calls, |
138 [ | 153 [ |
139 ['xdpyinfo', '-display', ':99'], | 154 ['xdpyinfo', '-display', ':99'], |
140 ['xdpyinfo', '-display', ':100'], | 155 ['xdpyinfo', '-display', ':100'], |
141 ['xdpyinfo', '-display', ':101'], | 156 ['xdpyinfo', '-display', ':101'], |
142 ['xdpyinfo', '-display', ':102'], | 157 ['xdpyinfo', '-display', ':102'], |
143 ['Xvfb', ':102', '-screen', '0', '1280x800x24', '-ac', '-dpi', '
96'], | 158 ['Xvfb', ':102', '-screen', '0', '1280x800x24', '-ac', '-dpi', '
96'], |
| 159 ['xdpyinfo'], |
144 ]) | 160 ]) |
145 env = port.setup_environ_for_server() | 161 env = port.setup_environ_for_server() |
146 self.assertEqual(env['DISPLAY'], ':102') | 162 self.assertEqual(env['DISPLAY'], ':102') |
| 163 |
| 164 def test_setup_test_runs_multiple_checks_when_slow_to_start(self): |
| 165 count = [0] |
| 166 |
| 167 def run_command_fake(args): |
| 168 if args[0] == 'xdpyinfo': |
| 169 if '-display' in args: |
| 170 return 1 |
| 171 if count[0] < 3: |
| 172 count[0] += 1 |
| 173 return 1 |
| 174 return 0 |
| 175 |
| 176 port = self.make_port() |
| 177 port.host.executive = MockExecutive( |
| 178 run_command_fn=run_command_fake) |
| 179 port.setup_test_run() |
| 180 self.assertEqual( |
| 181 port.host.executive.calls, |
| 182 [ |
| 183 ['xdpyinfo', '-display', ':99'], |
| 184 ['Xvfb', ':99', '-screen', '0', '1280x800x24', '-ac', '-dpi', '9
6'], |
| 185 ['xdpyinfo'], |
| 186 ['xdpyinfo'], |
| 187 ['xdpyinfo'], |
| 188 ['xdpyinfo'], |
| 189 ]) |
| 190 env = port.setup_environ_for_server() |
| 191 self.assertEqual(env['DISPLAY'], ':99') |
| 192 |
| 193 def test_setup_test_runs_eventually_failes_on_failure(self): |
| 194 def run_command_fake(args): |
| 195 if args[0] == 'xdpyinfo': |
| 196 return 1 |
| 197 return 0 |
| 198 |
| 199 host = MockSystemHost(os_name=self.os_name, os_version=self.os_version) |
| 200 port = self.make_port(host=host) |
| 201 port.host.executive = MockExecutive( |
| 202 run_command_fn=run_command_fake) |
| 203 port.setup_test_run() |
| 204 self.assertEqual( |
| 205 port.host.executive.calls, |
| 206 [ |
| 207 ['xdpyinfo', '-display', ':99'], |
| 208 ['Xvfb', ':99', '-screen', '0', '1280x800x24', '-ac', '-dpi', '9
6'], |
| 209 ] + [['xdpyinfo']] * 51) |
| 210 env = port.setup_environ_for_server() |
| 211 self.assertEqual(env['DISPLAY'], ':99') |
OLD | NEW |