ci/bare-metal: Re-open serial and everything after test phase timeout.
authorEmma Anholt <emma@anholt.net>
Thu, 21 Jul 2022 18:18:20 +0000 (11:18 -0700)
committerMarge Bot <emma+marge@anholt.net>
Thu, 4 Aug 2022 02:48:26 +0000 (02:48 +0000)
If we got a "Reached the end of the CPU serial log without finding a
result" because the test phase timed out, then the CPU serial would have
been closed as part of the timeout process, so we need to close the rest
and re-instantiate the servo run class.

fastboot and poe already re-instantiate the class on retry.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17689>

.gitlab-ci/bare-metal/cros_servo_run.py

index a5593c4..f67bc06 100755 (executable)
@@ -164,19 +164,16 @@ def main():
         '--test-timeout', type=int, help='Test phase timeout (minutes)', required=True)
     args = parser.parse_args()
 
-    servo = CrosServoRun(args.cpu, args.ec, args.test_timeout * 60)
-
     while True:
+        servo = CrosServoRun(args.cpu, args.ec, args.test_timeout * 60)
         retval = servo.run()
-        if retval != 2:
-            break
 
-    # power down the CPU on the device
-    servo.ec_write("power off\n")
+        # power down the CPU on the device
+        servo.ec_write("power off\n")
+        servo.close()
 
-    servo.close()
-
-    sys.exit(retval)
+        if retval != 2:
+            sys.exit(retval)
 
 
 if __name__ == '__main__':