Stainless green: Move waiting for interrupt to server test.

We are hitting a problem where the update is finished before we can
start the interruption. This is likely happening because we wait for
the progress to be reached in the client test and then then need to
wait for control to come back to the server test. By ending the client
test early we should have lots of time to wait for the progress in the
server test.

Add some extra info to other failures to help debug.

BUG=chromium:1087347
TEST=autoupdate_Interruptions

Change-Id: If2f891aa95020fc3de7710575ce770bf1caec4b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2219691
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Kyle Shimabukuro <kyleshima@chromium.org>
Commit-Queue: David Haddock <dhaddock@chromium.org>
(cherry picked from commit 5fbb073d8590534ab351f133c487d8d87e3cc95c)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2226547
Reviewed-by: David Haddock <dhaddock@chromium.org>
diff --git a/client/site_tests/autoupdate_LoginStartUpdateLogout/autoupdate_LoginStartUpdateLogout.py b/client/site_tests/autoupdate_LoginStartUpdateLogout/autoupdate_LoginStartUpdateLogout.py
index 94ba0e3..48c964e 100644
--- a/client/site_tests/autoupdate_LoginStartUpdateLogout/autoupdate_LoginStartUpdateLogout.py
+++ b/client/site_tests/autoupdate_LoginStartUpdateLogout/autoupdate_LoginStartUpdateLogout.py
@@ -8,7 +8,7 @@
 
 class autoupdate_LoginStartUpdateLogout(update_engine_test.UpdateEngineTest):
     """
-    Logs in, starts an update, waits for a while, then logs out.
+    Logs in, starts an update, then logs out.
 
     This test is used as part of the server test autoupdate_Interruptions.
 
@@ -18,22 +18,20 @@
     def run_once(self, update_url, progress_to_complete, full_payload=True,
                  interrupt_network=False):
         """
-        Login, start an update, wait for the update progress to reach the
-        given progress, and logout. If specified, this test will also
-        disconnect the internet upon reaching the target update progress,
+        Login, start an update, and logout. If specified, this test will also
+        disconnect the internet upon reaching a target update progress,
         wait a while, and reconnect the internet before logging out.
 
         @param update_url: The omaha url to call.
-        @param progress_to_complete: The update progress to wait for before
-                                     logging out. If interrupt_network is
+        @param progress_to_complete: If interrupt_network is
                                      True, the internet will be disconnected
                                      when the update reaches this progress.
                                      This should be a number between 0 and 1.
         @param full_payload: True for a full payload. False for delta.
         @param interrupt_network: True to cause a network interruption when
                                   update progress reaches
-                                  progress_to_complete. False to logout
-                                  normally after reaching that progress.
+                                  progress_to_complete. False to logout after
+                                  the update starts.
 
         """
         # Login as regular user. Start an update. Then Logout
@@ -51,5 +49,3 @@
                 if not self._update_continued_where_it_left_off(completed):
                     raise error.TestFail('The update did not continue where '
                                          'it left off after interruption.')
-            else:
-                self._wait_for_progress(progress_to_complete)
diff --git a/server/site_tests/autoupdate_Interruptions/autoupdate_Interruptions.py b/server/site_tests/autoupdate_Interruptions/autoupdate_Interruptions.py
index 31c6660..55b8708 100644
--- a/server/site_tests/autoupdate_Interruptions/autoupdate_Interruptions.py
+++ b/server/site_tests/autoupdate_Interruptions/autoupdate_Interruptions.py
@@ -54,8 +54,10 @@
 
         if interrupt in ['reboot', 'suspend']:
             if self._is_update_finished_downloading():
-                raise error.TestFail('Update finished before %s '
-                                     'interrupt started.' % interrupt)
+                raise error.TestFail(
+                    'Update finished before %s interrupt started. Interrupt '
+                    'was supposed to be at %f' % (interrupt, progress))
+            self._wait_for_progress(progress)
             completed = self._get_update_progress()
             if interrupt is 'reboot':
                 self._host.reboot()
@@ -67,7 +69,9 @@
                 self._suspend_then_resume()
 
             if self._is_update_engine_idle():
-                raise error.TestFail('The update was IDLE after interrupt.')
+                raise error.TestFail(
+                    'The update was IDLE after interrupt. Last error: %s' %
+                    self._get_last_error_string())
             if not self._update_continued_where_it_left_off(
                 completed, reboot_interrupt=interrupt is 'reboot'):
                 raise error.TestFail('The update did not continue where it '