Index: client/site_tests/power_Resume/power_Resume.py |
diff --git a/client/site_tests/power_Resume/power_Resume.py b/client/site_tests/power_Resume/power_Resume.py |
index 30cb2ae6ebf545c8eefef4cd9f67ed71179ba301..fe74b15cfbb726bc8281293ce83a06cf23f7709c 100644 |
--- a/client/site_tests/power_Resume/power_Resume.py |
+++ b/client/site_tests/power_Resume/power_Resume.py |
@@ -12,11 +12,25 @@ class power_Resume(test.test): |
def _get_last_msg_time(self, msg): |
- data = commands.getoutput( |
- "grep -a '%s' /var/log/messages | tail -n 1" % msg) |
+ cmd = "grep -a '%s' /var/log/messages | tail -n 1" % msg |
+ # The order in which processes are un-frozen is indeterminate |
+ # and therfore this test may get resumed before the system has gotten |
+ # a chance to finalize writes to logfile. Sleep a bit to take care of |
+ # this race. |
+ count = 0 |
+ data = commands.getoutput(cmd) |
+ while len(data) == 0 and count < 5: |
+ count +=1 |
+ time.sleep(1) |
+ data = commands.getoutput(cmd) |
+ |
+ if count == 5: |
+ raise error.TestError("Failed to find log message: " + msg) |
+ |
match = re.search(r' \[\s*([0-9.]+)\] ', data) |
if match is None: |
- raise error.TestError('Failed to find log message: ' + msg) |
+ raise error.TestError('Failed to find timestamp for log message: ' |
+ + msg) |
msg_time = float(match.group(1)) |
logging.debug("Last message '%s' time = %f" % (msg, msg_time)) |
@@ -98,19 +112,6 @@ class power_Resume(test.test): |
end_suspend_time = self._get_end_suspend_time() |
end_resume_time = self._get_end_resume_time() |
- # The order in which processes are un-frozen is indeterminate |
- # and therfore this test may get resumed before the system has gotten |
- # a chance to write the end resume message. Sleep for a short time |
- # to take care of this race. |
- count = 0 |
- while end_resume_time < start_suspend_time and count < 5: |
- count += 1 |
- time.sleep(1) |
- end_resume_time = self._get_end_resume_time() |
- |
- if count == 5: |
- raise error.TestError('Failed to find end resume time') |
- |
# Calculate the suspend/resume times |
total_resume_time = self._get_hwclock_seconds() - alarm_time |
suspend_time = end_suspend_time - start_suspend_time |