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

Side by Side Diff: client/cros/login.py

Issue 5740004: Move site_chrome_test, site_logging, site_log_reader, site_crash_test into cros dir. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git@master
Patch Set: patch Created 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import errno, logging, os, re, signal, subprocess, time 5 import errno, logging, os, re, signal, subprocess, time
6 import common 6 import common
7 import constants as chromeos_constants, cryptohome, ui 7 import constants as chromeos_constants, cros_logging, cryptohome, ui
8 from autotest_lib.client.bin import test, utils, site_log_reader 8 from autotest_lib.client.bin import utils
9 from autotest_lib.client.common_lib import error 9 from autotest_lib.client.common_lib import error
10 10
11 11
12 _DEFAULT_TIMEOUT = 30 12 _DEFAULT_TIMEOUT = 30
13 13
14 14
15 class TimeoutError(error.TestError): 15 class TimeoutError(error.TestError):
16 """Error raised when we time out while waiting on a condition.""" 16 """Error raised when we time out while waiting on a condition."""
17 pass 17 pass
18 18
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 (username, password)) 131 (username, password))
132 132
133 if not __get_session_manager_pid(): 133 if not __get_session_manager_pid():
134 raise UnexpectedCondition("Session manager is not running") 134 raise UnexpectedCondition("Session manager is not running")
135 135
136 if logged_in(): 136 if logged_in():
137 raise UnexpectedCondition("Already logged in") 137 raise UnexpectedCondition("Already logged in")
138 138
139 # Mark /var/log/messages now; we'll run through all subsequent log messages 139 # Mark /var/log/messages now; we'll run through all subsequent log messages
140 # if we couldn't log in to see if the browser crashed. 140 # if we couldn't log in to see if the browser crashed.
141 log_reader = site_log_reader.LogReader() 141 log_reader = cros_logging.LogReader()
142 log_reader.set_start_by_current() 142 log_reader.set_start_by_current()
143 143
144 ax = ui.get_autox() 144 ax = ui.get_autox()
145 # navigate to login screen 145 # navigate to login screen
146 ax.send_hotkey("Ctrl+Alt+L") 146 ax.send_hotkey("Ctrl+Alt+L")
147 # escape out of any login screen menus (e.g., the network selection menu) 147 # escape out of any login screen menus (e.g., the network selection menu)
148 ax.send_hotkey("Escape") 148 ax.send_hotkey("Escape")
149 time.sleep(0.5) 149 time.sleep(0.5)
150 if (username): 150 if (username):
151 # focus username 151 # focus username
(...skipping 26 matching lines...) Expand all
178 TimeoutError: logout didn't complete before timeout 178 TimeoutError: logout didn't complete before timeout
179 UnexpectedCondition: user is not logged in 179 UnexpectedCondition: user is not logged in
180 """ 180 """
181 if not logged_in(): 181 if not logged_in():
182 raise UnexpectedCondition('Already logged out') 182 raise UnexpectedCondition('Already logged out')
183 183
184 oldpid = __get_session_manager_pid() 184 oldpid = __get_session_manager_pid()
185 185
186 # Mark /var/log/messages now; we'll run through all subsequent log messages 186 # Mark /var/log/messages now; we'll run through all subsequent log messages
187 # if we couldn't TERM and restart the session manager. 187 # if we couldn't TERM and restart the session manager.
188 log_reader = site_log_reader.LogReader() 188
189 log_reader = cros_logging.LogReader()
189 log_reader.set_start_by_current() 190 log_reader.set_start_by_current()
190 191
191 # Gracefully exiting the session manager causes the user's session to end. 192 # Gracefully exiting the session manager causes the user's session to end.
192 utils.system('pkill -TERM -o ^%s$' % chromeos_constants.SESSION_MANAGER) 193 utils.system('pkill -TERM -o ^%s$' % chromeos_constants.SESSION_MANAGER)
193 194
194 wait_for_condition( 195 wait_for_condition(
195 condition=lambda: __session_manager_restarted(oldpid), 196 condition=lambda: __session_manager_restarted(oldpid),
196 timeout_msg='Timed out waiting for logout', 197 timeout_msg='Timed out waiting for logout',
197 timeout=timeout, 198 timeout=timeout,
198 process='session_manager', 199 process='session_manager',
199 log_reader=log_reader, 200 log_reader=log_reader,
200 crash_msg='session_manager crashed while shutting down.') 201 crash_msg='session_manager crashed while shutting down.')
201 202
202 203
203 def wait_for_browser(timeout=_DEFAULT_TIMEOUT): 204 def wait_for_browser(timeout=_DEFAULT_TIMEOUT):
204 """Wait until a Chrome process is running. 205 """Wait until a Chrome process is running.
205 206
206 Args: 207 Args:
207 timeout: float number of seconds to wait 208 timeout: float number of seconds to wait
208 209
209 Raises: 210 Raises:
210 TimeoutError: Chrome didn't start before timeout 211 TimeoutError: Chrome didn't start before timeout
211 """ 212 """
212 # Mark /var/log/messages now; we'll run through all subsequent log messages 213 # Mark /var/log/messages now; we'll run through all subsequent log messages
213 # if we couldn't start chrome to see if the browser crashed. 214 # if we couldn't start chrome to see if the browser crashed.
214 log_reader = site_log_reader.LogReader() 215 log_reader = cros_logging.LogReader()
215 log_reader.set_start_by_current() 216 log_reader.set_start_by_current()
216 wait_for_condition( 217 wait_for_condition(
217 lambda: os.system('pgrep ^%s$' % chromeos_constants.BROWSER) == 0, 218 lambda: os.system('pgrep ^%s$' % chromeos_constants.BROWSER) == 0,
218 timeout_msg='Timed out waiting for Chrome to start', 219 timeout_msg='Timed out waiting for Chrome to start',
219 timeout=timeout, 220 timeout=timeout,
220 process='chrome', 221 process='chrome',
221 log_reader=log_reader, 222 log_reader=log_reader,
222 crash_msg='Chrome crashed while starting up.') 223 crash_msg='Chrome crashed while starting up.')
223 224
224 225
225 def wait_for_cryptohome(timeout=_DEFAULT_TIMEOUT): 226 def wait_for_cryptohome(timeout=_DEFAULT_TIMEOUT):
226 """Wait until cryptohome is mounted. 227 """Wait until cryptohome is mounted.
227 228
228 Args: 229 Args:
229 timeout: float number of seconds to wait 230 timeout: float number of seconds to wait
230 231
231 Raises: 232 Raises:
232 TimeoutError: cryptohome wasn't mounted before timeout 233 TimeoutError: cryptohome wasn't mounted before timeout
233 """ 234 """
234 # Mark /var/log/messages now; we'll run through all subsequent log messages 235 # Mark /var/log/messages now; we'll run through all subsequent log messages
235 # if we couldn't get the browser up to see if the browser crashed. 236 # if we couldn't get the browser up to see if the browser crashed.
236 log_reader = site_log_reader.LogReader() 237 log_reader = cros_logging.LogReader()
237 log_reader.set_start_by_current() 238 log_reader.set_start_by_current()
238 wait_for_condition( 239 wait_for_condition(
239 condition=lambda: cryptohome.is_mounted(), 240 condition=lambda: cryptohome.is_mounted(),
240 timeout_msg='Timed out waiting for cryptohome to be mounted', 241 timeout_msg='Timed out waiting for cryptohome to be mounted',
241 timeout=timeout, 242 timeout=timeout,
242 process='cryptohomed', 243 process='cryptohomed',
243 log_reader=log_reader, 244 log_reader=log_reader,
244 crash_msg='cryptohomed crashed during mount attempt') 245 crash_msg='cryptohomed crashed during mount attempt')
245 246
246 247
247 def wait_for_login_prompt(timeout=_DEFAULT_TIMEOUT): 248 def wait_for_login_prompt(timeout=_DEFAULT_TIMEOUT):
248 """Wait the login prompt is on screen and ready 249 """Wait the login prompt is on screen and ready
249 250
250 Args: 251 Args:
251 timeout: float number of seconds to wait 252 timeout: float number of seconds to wait
252 253
253 Raises: 254 Raises:
254 TimeoutError: Login prompt didn't get up before timeout 255 TimeoutError: Login prompt didn't get up before timeout
255 """ 256 """
256 # Mark /var/log/messages now; we'll run through all subsequent log messages 257 # Mark /var/log/messages now; we'll run through all subsequent log messages
257 # if we couldn't get the browser up to see if the browser crashed. 258 # if we couldn't get the browser up to see if the browser crashed.
258 log_reader = site_log_reader.LogReader() 259 log_reader = cros_logging.LogReader()
259 log_reader.set_start_by_current() 260 log_reader.set_start_by_current()
260 wait_for_condition( 261 wait_for_condition(
261 condition=lambda: os.access( 262 condition=lambda: os.access(
262 chromeos_constants.LOGIN_PROMPT_READY_MAGIC_FILE, os.F_OK), 263 chromeos_constants.LOGIN_PROMPT_READY_MAGIC_FILE, os.F_OK),
263 timeout_msg='Timed out waiting for login prompt', 264 timeout_msg='Timed out waiting for login prompt',
264 timeout=timeout, 265 timeout=timeout,
265 process='chrome', 266 process='chrome',
266 log_reader=log_reader, 267 log_reader=log_reader,
267 crash_msg='Chrome crashed before the login prompt.') 268 crash_msg='Chrome crashed before the login prompt.')
268 269
(...skipping 17 matching lines...) Expand all
286 """Wait until the initial Chrome window is mapped. 287 """Wait until the initial Chrome window is mapped.
287 288
288 Args: 289 Args:
289 timeout: float number of seconds to wait 290 timeout: float number of seconds to wait
290 291
291 Raises: 292 Raises:
292 TimeoutError: Chrome window wasn't mapped before timeout 293 TimeoutError: Chrome window wasn't mapped before timeout
293 """ 294 """
294 # Mark /var/log/messages now; we'll run through all subsequent log messages 295 # Mark /var/log/messages now; we'll run through all subsequent log messages
295 # if we couldn't get the browser up to see if the browser crashed. 296 # if we couldn't get the browser up to see if the browser crashed.
296 log_reader = site_log_reader.LogReader() 297 log_reader = cros_logging.LogReader()
297 log_reader.set_start_by_current() 298 log_reader.set_start_by_current()
298 wait_for_condition( 299 wait_for_condition(
299 lambda: os.access( 300 lambda: os.access(
300 chromeos_constants.CHROME_WINDOW_MAPPED_MAGIC_FILE, os.F_OK), 301 chromeos_constants.CHROME_WINDOW_MAPPED_MAGIC_FILE, os.F_OK),
301 'Timed out waiting for initial Chrome window', 302 'Timed out waiting for initial Chrome window',
302 timeout=timeout, 303 timeout=timeout,
303 process='chrome', 304 process='chrome',
304 log_reader=log_reader, 305 log_reader=log_reader,
305 crash_msg='Chrome crashed before first tab rendered.') 306 crash_msg='Chrome crashed before first tab rendered.')
306 307
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 except (IOError, OSError) as error: 368 except (IOError, OSError) as error:
368 logging.error(error) 369 logging.error(error)
369 370
370 # Restart the UI. 371 # Restart the UI.
371 nuke_login_manager() 372 nuke_login_manager()
372 utils.poll_for_condition( 373 utils.poll_for_condition(
373 lambda: __session_manager_restarted(oldpid), 374 lambda: __session_manager_restarted(oldpid),
374 TimeoutError('Timed out waiting for logout'), 375 TimeoutError('Timed out waiting for logout'),
375 timeout) 376 timeout)
376 wait_for_login_prompt() 377 wait_for_login_prompt()
OLDNEW
« no previous file with comments | « client/cros/cros_ui_test.py ('k') | client/site_tests/audiovideo_PlaybackRecordSemiAuto/audiovideo_PlaybackRecordSemiAuto.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698