Make autoserv --collect_crashinfo only run when Autoserv actually failed (exit status nonzero) or was aborted.  I was being lazy and always running it, but it seems that introduced very annoying latency into job runs.

Signed-off-by: Steve Howard <showard@google.com>


git-svn-id: http://test.kernel.org/svn/autotest/trunk@3063 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/scheduler/monitor_db_unittest.py b/scheduler/monitor_db_unittest.py
index 5b6f80b..86602ed 100644
--- a/scheduler/monitor_db_unittest.py
+++ b/scheduler/monitor_db_unittest.py
@@ -1639,11 +1639,14 @@
         self.god.check_playback()
 
 
-    def _setup_gather_logs_expects(self, hqe_aborted=False):
+    def _setup_gather_logs_expects(self, autoserv_success=False,
+                                   hqe_aborted=False):
         self.god.stub_class(monitor_db, 'PidfileRunMonitor')
         self.god.stub_class(monitor_db, 'FinalReparseTask')
-        self._setup_post_job_task_expects(True, 'Gathering', hqe_aborted)
-        self._setup_post_job_run_monitor('.collect_crashinfo_execute')
+        self._setup_post_job_task_expects(autoserv_success, 'Gathering',
+                                          hqe_aborted)
+        if not autoserv_success or hqe_aborted:
+            self._setup_post_job_run_monitor('.collect_crashinfo_execute')
         self._expect_copy_results(monitor=self.pidfile_monitor,
                                   queue_entry=self.queue_entry)
         parse_task = monitor_db.FinalReparseTask.expect_new([self.queue_entry])
@@ -1668,6 +1671,15 @@
         self._run_gather_logs_task()
 
 
+    def test_gather_logs_task_successful_autoserv(self):
+        """When Autoserv exits successful, no collect_crashinfo stage runs."""
+        self._setup_gather_logs_expects(autoserv_success=True)
+        self.job.reboot_after = models.RebootAfter.NEVER
+        self.host.set_status.expect_call('Ready')
+
+        self._run_gather_logs_task()
+
+
     def _setup_gather_task_cleanup_expects(self):
         self.god.stub_class(monitor_db, 'CleanupTask')
         cleanup_task = monitor_db.CleanupTask.expect_new(host=self.host)