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)