autotest: Fix 2 more logging_CrashSender races and re-enable in smoke.
BUG=7765
TEST=Run logging_CrashSender 1000 consecutive times successfully on hardware
Change-Id: Idf896e19b06a297c29bc3c338aab625eeb4c7f4d
Review URL: http://codereview.chromium.org/3917003
diff --git a/client/bin/site_crash_test.py b/client/bin/site_crash_test.py
index f3887c3..df6ae36 100644
--- a/client/bin/site_crash_test.py
+++ b/client/bin/site_crash_test.py
@@ -186,6 +186,27 @@
'output': output}
+ def wait_for_sender_completion(self):
+ """Wait for crash_sender to complete.
+
+ Wait for no crash_sender's last message to be placed in the
+ system log before continuing and for the process to finish.
+ Otherwise we might get only part of the output."""
+ site_utils.poll_for_condition(
+ lambda: self._log_reader.can_find('crash_sender done.'),
+ timeout=60,
+ exception=error.TestError(
+ 'Timeout waiting for crash_sender to emit done: ' +
+ self._log_reader.get_logs()))
+ site_utils.poll_for_condition(
+ lambda: utils.system('pgrep crash_sender',
+ ignore_status=True) != 0,
+ timeout=60,
+ exception=error.TestError(
+ 'Timeout waiting for crash_sender to finish: ' +
+ self._log_reader.get_logs()))
+
+
def _call_sender_one_crash(self,
send_success=True,
reports_enabled=True,
@@ -215,16 +236,7 @@
script_output = utils.system_output(
'/bin/sh -c "%s" 2>&1' % self._CRASH_SENDER_PATH,
ignore_status=True)
- # Wait for up to 2s for no crash_sender to be running,
- # otherwise me might get only part of the output.
- site_utils.poll_for_condition(
- lambda: utils.system('pgrep crash_sender',
- ignore_status=True) != 0,
- timeout=2,
- exception=error.TestError(
- 'Timeout waiting for crash_sender to finish: ' +
- self._log_reader.get_logs()))
-
+ self.wait_for_sender_completion()
output = self._log_reader.get_logs()
logging.debug('Crash sender message output:\n' + output)
if script_output != '':