firmware_Cr50RMAOpen: modify rma_auth responses

The responses change a bit in 0.4.8. Modify firmware_Cr50RMAOpen so it
accepts responses from 0.4.8 and from previous versions.

BUG=none
BRANCH=none
TEST=run on reef with TOT and 0.3.4

Change-Id: Ia6508665b76fd7eb6b67a160f05d00867626dd3d
Signed-off-by: Mary Ruthven <mruthven@google.com>
Reviewed-on: https://chromium-review.googlesource.com/1096365
Tested-by: Mary Ruthven <mruthven@chromium.org>
Reviewed-by: Kevin Shelton <kmshelton@chromium.org>
diff --git a/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py b/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
index 70597b6..3ce2f59 100644
--- a/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
+++ b/server/site_tests/firmware_Cr50RMAOpen/firmware_Cr50RMAOpen.py
@@ -31,7 +31,10 @@
     # Various Error Messages from the command line and AP RMA failures
     MISMATCH_CLI = 'Auth code does not match.'
     MISMATCH_AP = 'rma unlock failed, code 6'
-    LIMIT_CLI = 'RMA Auth error 0x504'
+    # Starting in 0.4.8 cr50 doesn't print "RMA Auth error 0x504". It doesn't
+    # print anything. Once prod and prepvt versions do this remove the error
+    # code from the test.
+    LIMIT_CLI = '(RMA Auth error 0x504|rma_auth\s+>)'
     LIMIT_AP = 'error 4'
     ERR_DISABLE_AP = 'error 7'
     DISABLE_WARNING = ('mux_client_request_session: read from master failed: '
@@ -138,13 +141,13 @@
         """
         cmd = 'rma_auth ' + ('disable' if disable else authcode)
         get_challenge = not (authcode or disable)
-        resp = 'rma_auth(.*)>'
+        resp = 'rma_auth(.*generated challenge:)?(.*)>'
         if expected_exit_status:
             resp = self.LIMIT_CLI if get_challenge else self.MISMATCH_CLI
 
         result = self.cr50.send_command_get_output(cmd, [resp])
         logging.info(result)
-        return (self.parse_challenge(result[0][1]) if get_challenge else
+        return (self.parse_challenge(result[0][-1]) if get_challenge else
                 result[0])