FAFT: Prevent unnecessary reboots in MiniOS related tests

In MiniOS related tests, we always perform a reboot as the first step of
cleanup(). This ensures that we could always boot back to the OS even if
the test failed during running it.

However, for the devices which was skipped and raised TestNA, it wastes
time for this unnecessary reboot and cleanup step. So we add an
additional check to prevent this in the cleanup() stage.

This applies for the following FAFT tests:
* firmware_MiniosPriority
* firmware_CorruptMinios
* firmware_CorruptBothMinios
* firmware_MiniosMenu

BUG=b:202217528
TEST=Add 'minios_enabled': false in fw-testing-configs/brya.json,
     run consolidate.py, run FAFT with the following command:
     /usr/bin/test_that --fast --no-retry --iterations 1 --board=brya
     $DUT_IP --autotest_dir $AUTOTEST_DIR
     firmware_MiniosPriority.minios_a firmware_MiniosPriority.minios_b
     firmware_CorruptMinios.minios_a firmware_CorruptMinios.minios_b
     firmware_CorruptBothMiniosAB
     firmware_MiniosMenu firmware_MiniosMenu.old
     and ensure that tests were skipped and DUT did not reboot

Change-Id: I76a20dd5bcb2af600cfdf182ce0aec41007049eb
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/3411690
Reviewed-by: Jae Hoon Kim <kimjae@chromium.org>
Tested-by: Hsuan Ting Chen <roccochen@chromium.org>
Auto-Submit: Hsuan Ting Chen <roccochen@chromium.org>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
Commit-Queue: Yu-Ping Wu <yupingso@chromium.org>
diff --git a/server/site_tests/firmware_CorruptBothMiniosAB/firmware_CorruptBothMiniosAB.py b/server/site_tests/firmware_CorruptBothMiniosAB/firmware_CorruptBothMiniosAB.py
index 09ebbef..ab1fedf 100644
--- a/server/site_tests/firmware_CorruptBothMiniosAB/firmware_CorruptBothMiniosAB.py
+++ b/server/site_tests/firmware_CorruptBothMiniosAB/firmware_CorruptBothMiniosAB.py
@@ -22,12 +22,14 @@
         super(firmware_CorruptBothMiniosAB,
               self).initialize(host, cmdline_args)
 
+        self.test_skipped = True
         if not self.menu_switcher:
             raise error.TestNAError('Test skipped for menuless UI')
         if not self.faft_config.chrome_ec:
             raise error.TestNAError('Cannot check power state without EC')
         if not self.faft_config.minios_enabled:
             raise error.TestNAError('MiniOS is not enabled for this board')
+        self.test_skipped = False
 
         self.backup_kernel(kernel_type='MINIOS')
 
@@ -37,11 +39,12 @@
         self.setup_usbkey(usbkey=True, host=True, used_for_recovery=True)
 
     def cleanup(self):
-        try:
-            self.switcher.trigger_minios_to_dev()
-            self.restore_kernel(kernel_type='MINIOS')
-        except Exception as e:
-            logging.error('Caught exception: %s', str(e))
+        if not self.test_skipped:
+            try:
+                self.switcher.trigger_minios_to_dev()
+                self.restore_kernel(kernel_type='MINIOS')
+            except Exception as e:
+                logging.error('Caught exception: %s', str(e))
         super(firmware_CorruptBothMiniosAB, self).cleanup()
 
     def run_once(self):
diff --git a/server/site_tests/firmware_CorruptMinios/firmware_CorruptMinios.py b/server/site_tests/firmware_CorruptMinios/firmware_CorruptMinios.py
index cd61e6d..7a966ce 100644
--- a/server/site_tests/firmware_CorruptMinios/firmware_CorruptMinios.py
+++ b/server/site_tests/firmware_CorruptMinios/firmware_CorruptMinios.py
@@ -21,12 +21,14 @@
     def initialize(self, host, cmdline_args, minios_section):
         super(firmware_CorruptMinios, self).initialize(host, cmdline_args)
 
+        self.test_skipped = True
         if not self.menu_switcher:
             raise error.TestNAError('Test skipped for menuless UI')
         if not self.faft_config.chrome_ec:
             raise error.TestNAError('Cannot check power state without EC')
         if not self.faft_config.minios_enabled:
             raise error.TestNAError('MiniOS is not enabled for this board')
+        self.test_skipped = False
 
         self.backup_kernel(kernel_type='MINIOS')
 
@@ -38,12 +40,14 @@
         self.restored_priority = self.faft_client.system.get_minios_priority()
 
     def cleanup(self):
-        try:
-            self.switcher.trigger_minios_to_dev()
-            self.restore_kernel(kernel_type='MINIOS')
-            self.faft_client.system.set_minios_priority(self.restored_priority)
-        except Exception as e:
-            logging.error('Caught exception: %s', str(e))
+        if not self.test_skipped:
+            try:
+                self.switcher.trigger_minios_to_dev()
+                self.restore_kernel(kernel_type='MINIOS')
+                self.faft_client.system.set_minios_priority(
+                        self.restored_priority)
+            except Exception as e:
+                logging.error('Caught exception: %s', str(e))
         super(firmware_CorruptMinios, self).cleanup()
 
     def run_once(self):
diff --git a/server/site_tests/firmware_MiniosMenu/firmware_MiniosMenu.py b/server/site_tests/firmware_MiniosMenu/firmware_MiniosMenu.py
index 89fd994..3a4ec37 100644
--- a/server/site_tests/firmware_MiniosMenu/firmware_MiniosMenu.py
+++ b/server/site_tests/firmware_MiniosMenu/firmware_MiniosMenu.py
@@ -20,12 +20,14 @@
     def initialize(self, host, cmdline_args, older_version):
         super(firmware_MiniosMenu, self).initialize(host, cmdline_args)
 
+        self.test_skipped = True
         if not self.menu_switcher:
             raise error.TestNAError('Test skipped for menuless UI')
         if not self.faft_config.chrome_ec:
             raise error.TestNAError('Cannot check power state without EC')
         if not self.faft_config.minios_enabled:
             raise error.TestNAError('MiniOS is not enabled for this board')
+        self.test_skipped = False
 
         self.host = host
         # SSH to MiniOS is only available in developer mode
@@ -34,10 +36,11 @@
         self.older_version = older_version
 
     def cleanup(self):
-        try:
-            self.switcher.trigger_minios_to_dev()
-        except Exception as e:
-            logging.error('Caught exception: %s', str(e))
+        if not self.test_skipped:
+            try:
+                self.switcher.trigger_minios_to_dev()
+            except Exception as e:
+                logging.error('Caught exception: %s', str(e))
         super(firmware_MiniosMenu, self).cleanup()
 
     def run_once(self):
diff --git a/server/site_tests/firmware_MiniosPriority/firmware_MiniosPriority.py b/server/site_tests/firmware_MiniosPriority/firmware_MiniosPriority.py
index eba0ca7..83d78e5 100644
--- a/server/site_tests/firmware_MiniosPriority/firmware_MiniosPriority.py
+++ b/server/site_tests/firmware_MiniosPriority/firmware_MiniosPriority.py
@@ -23,12 +23,14 @@
     def initialize(self, host, cmdline_args, minios_priority):
         super(firmware_MiniosPriority, self).initialize(host, cmdline_args)
 
+        self.test_skipped = True
         if not self.menu_switcher:
             raise error.TestNAError('Test skipped for menuless UI')
         if not self.faft_config.chrome_ec:
             raise error.TestNAError('Cannot check power state without EC')
         if not self.faft_config.minios_enabled:
             raise error.TestNAError('MiniOS is not enabled for this board')
+        self.test_skipped = False
 
         self.host = host
         # SSH to MiniOS is only available in developer mode
@@ -38,11 +40,13 @@
         self.restored_priority = self.faft_client.system.get_minios_priority()
 
     def cleanup(self):
-        try:
-            self.switcher.trigger_minios_to_dev()
-            self.faft_client.system.set_minios_priority(self.restored_priority)
-        except Exception as e:
-            logging.error('Caught exception: %s', str(e))
+        if not self.test_skipped:
+            try:
+                self.switcher.trigger_minios_to_dev()
+                self.faft_client.system.set_minios_priority(
+                        self.restored_priority)
+            except Exception as e:
+                logging.error('Caught exception: %s', str(e))
         super(firmware_MiniosPriority, self).cleanup()
 
     def run_once(self):