OLD | NEW |
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 logging, os, re, shutil | 5 import logging, os, re, shutil |
6 from autotest_lib.client.bin import site_log_reader, site_utils, test | 6 import common |
7 from autotest_lib.client.common_lib import error, utils | 7 import cros_logging |
| 8 from autotest_lib.client.bin import test, utils |
| 9 from autotest_lib.client.common_lib import error |
8 | 10 |
9 | 11 |
10 class CrashTest(test.test): | 12 class CrashTest(test.test): |
11 | 13 |
12 _CONSENT_FILE = '/home/chronos/Consent To Send Stats' | 14 _CONSENT_FILE = '/home/chronos/Consent To Send Stats' |
13 _CORE_PATTERN = '/proc/sys/kernel/core_pattern' | 15 _CORE_PATTERN = '/proc/sys/kernel/core_pattern' |
14 _CRASH_REPORTER_PATH = '/sbin/crash_reporter' | 16 _CRASH_REPORTER_PATH = '/sbin/crash_reporter' |
15 _CRASH_SENDER_PATH = '/sbin/crash_sender' | 17 _CRASH_SENDER_PATH = '/sbin/crash_sender' |
16 _CRASH_SENDER_RATE_DIR = '/var/lib/crash_sender' | 18 _CRASH_SENDER_RATE_DIR = '/var/lib/crash_sender' |
17 _CRASH_SENDER_RUN_PATH = '/var/run/crash_sender.pid' | 19 _CRASH_SENDER_RUN_PATH = '/var/run/crash_sender.pid' |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 'sleep_time': sleep_time, | 209 'sleep_time': sleep_time, |
208 'output': output} | 210 'output': output} |
209 | 211 |
210 | 212 |
211 def wait_for_sender_completion(self): | 213 def wait_for_sender_completion(self): |
212 """Wait for crash_sender to complete. | 214 """Wait for crash_sender to complete. |
213 | 215 |
214 Wait for no crash_sender's last message to be placed in the | 216 Wait for no crash_sender's last message to be placed in the |
215 system log before continuing and for the process to finish. | 217 system log before continuing and for the process to finish. |
216 Otherwise we might get only part of the output.""" | 218 Otherwise we might get only part of the output.""" |
217 site_utils.poll_for_condition( | 219 utils.poll_for_condition( |
218 lambda: self._log_reader.can_find('crash_sender done.'), | 220 lambda: self._log_reader.can_find('crash_sender done.'), |
219 timeout=60, | 221 timeout=60, |
220 exception=error.TestError( | 222 exception=error.TestError( |
221 'Timeout waiting for crash_sender to emit done: ' + | 223 'Timeout waiting for crash_sender to emit done: ' + |
222 self._log_reader.get_logs())) | 224 self._log_reader.get_logs())) |
223 site_utils.poll_for_condition( | 225 utils.poll_for_condition( |
224 lambda: utils.system('pgrep crash_sender', | 226 lambda: utils.system('pgrep crash_sender', |
225 ignore_status=True) != 0, | 227 ignore_status=True) != 0, |
226 timeout=60, | 228 timeout=60, |
227 exception=error.TestError( | 229 exception=error.TestError( |
228 'Timeout waiting for crash_sender to finish: ' + | 230 'Timeout waiting for crash_sender to finish: ' + |
229 self._log_reader.get_logs())) | 231 self._log_reader.get_logs())) |
230 | 232 |
231 | 233 |
232 def _call_sender_one_crash(self, | 234 def _call_sender_one_crash(self, |
233 send_success=True, | 235 send_success=True, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 def enable_crash_filtering(self, name): | 302 def enable_crash_filtering(self, name): |
301 self._replace_crash_reporter_filter_in('--filter_in=' + name) | 303 self._replace_crash_reporter_filter_in('--filter_in=' + name) |
302 | 304 |
303 | 305 |
304 def disable_crash_filtering(self): | 306 def disable_crash_filtering(self): |
305 self._replace_crash_reporter_filter_in('') | 307 self._replace_crash_reporter_filter_in('') |
306 | 308 |
307 | 309 |
308 def initialize(self): | 310 def initialize(self): |
309 test.test.initialize(self) | 311 test.test.initialize(self) |
310 self._log_reader = site_log_reader.LogReader() | 312 self._log_reader = cros_logging.LogReader() |
311 self._leave_crash_sending = True | 313 self._leave_crash_sending = True |
312 self._automatic_consent_saving = True | 314 self._automatic_consent_saving = True |
313 self.enable_crash_filtering('none') | 315 self.enable_crash_filtering('none') |
314 | 316 |
315 | 317 |
316 def cleanup(self): | 318 def cleanup(self): |
317 self._reset_rate_limiting() | 319 self._reset_rate_limiting() |
318 self._clear_spooled_crashes() | 320 self._clear_spooled_crashes() |
319 self._set_system_sending(self._leave_crash_sending) | 321 self._set_system_sending(self._leave_crash_sending) |
320 self._set_sending_mock(mock_enabled=False) | 322 self._set_sending_mock(mock_enabled=False) |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
354 self._initialize_crash_reporter() | 356 self._initialize_crash_reporter() |
355 # Disable crash_sender from running, kill off any running ones, but | 357 # Disable crash_sender from running, kill off any running ones, but |
356 # set environment so crash_sender may run as a child process. | 358 # set environment so crash_sender may run as a child process. |
357 self._set_system_sending(False) | 359 self._set_system_sending(False) |
358 self._set_child_sending(True) | 360 self._set_child_sending(True) |
359 self._kill_running_sender() | 361 self._kill_running_sender() |
360 self._reset_rate_limiting() | 362 self._reset_rate_limiting() |
361 if clear_spool_first: | 363 if clear_spool_first: |
362 self._clear_spooled_crashes() | 364 self._clear_spooled_crashes() |
363 getattr(self, '_test_' + test_name)() | 365 getattr(self, '_test_' + test_name)() |
OLD | NEW |