cheets_CTS/GTS: Offload also for WARN/FAIL jobs.

We use WARN as PASS with retries, so those result are also
valid inputs for APFE submission. FAIL results are also
useful for the CTS dashboard to track pass/fail history.

BUG=b:179211755
TEST=cheets_CTS_P.9.0_r14.arm.CtsUsbTests

Change-Id: Ice8d8c8e9a55ce3e074ac81c99228f3e7220e3cc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2672981
Commit-Queue: Kazuhiro Inaba <kinaba@chromium.org>
Commit-Queue: Rohit Makasana <rohitbm@chromium.org>
Tested-by: Kazuhiro Inaba <kinaba@chromium.org>
Auto-Submit: Kazuhiro Inaba <kinaba@chromium.org>
Reviewed-by: Rohit Makasana <rohitbm@chromium.org>
(cherry picked from commit d0a49057e5284c62f486f6ce4fb2e0e64f185d78)
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/2675800
Tested-by: Rohit Makasana <rohitbm@chromium.org>
diff --git a/server/cros/tradefed/tradefed_test.py b/server/cros/tradefed/tradefed_test.py
index d56c958..ab0de92 100644
--- a/server/cros/tradefed/tradefed_test.py
+++ b/server/cros/tradefed/tradefed_test.py
@@ -176,11 +176,6 @@
                 bundle)
         self._hard_reboot_on_failure = hard_reboot_on_failure
 
-    def postprocess(self):
-        """Postprocess: synchronous offloads and performance data"""
-        self._output_perf()
-        self._prepare_synchronous_offloads()
-
     def _output_perf(self):
         """Output performance values."""
         base = self._default_tradefed_base_dir()
@@ -229,6 +224,13 @@
 
     def cleanup(self):
         """Cleans up any dirtied state."""
+
+        # We also run a postprocess result and performance data
+        # offloading here so that WARN and FAIL runs also run the
+        # steps. postprocess() method only runs for PASSing jobs.
+        self._prepare_synchronous_offloads()
+        self._output_perf()
+
         try:
             # Clean up test data that may not be deletable on previous
             # ChromeOS versions. See b/170276268.