Add LAVA test for Level3 on AN521

The Level3 cases run on LAVA, but artifacts not archieved well.

Signed-off-by: Karl Zhang <karl.zhang@arm.com>
Change-Id: Ida2d64c98f1d478bdf97739e286fc752fbb93fa2
diff --git a/jenkins/ci.jpl b/jenkins/ci.jpl
index fbb7726..13f927d 100644
--- a/jenkins/ci.jpl
+++ b/jenkins/ci.jpl
@@ -69,6 +69,15 @@
       build_params["PROFILE"]         == "N.A") {
         params += string(name: "PROJ_CONFIG", value: "ConfigCoreIPCTfmLevel2")
       }
+  else if (build_params["BL2"]        == "True"  && \
+      build_params["NS"]              == "True"  && \
+      build_params["PSA_API"]         == "True"  && \
+      build_params["ISOLATION_LEVEL"] == "3"     && \
+      build_params["TEST_REGRESSION"] == "False" && \
+      build_params["TEST_PSA_API"]    == "OFF"   && \
+      build_params["PROFILE"]         == "N.A") {
+        params += string(name: "PROJ_CONFIG", value: "ConfigCoreIPCTfmLevel3")
+      }
   else if (build_params["BL2"]        == "True"          && \
       build_params["NS"]              == "True"          && \
       build_params["PSA_API"]         == "False"         && \
@@ -114,6 +123,15 @@
       build_params["PROFILE"]         == "N.A") {
         params += string(name: "PROJ_CONFIG", value: "ConfigRegressionIPCTfmLevel2")
       }
+  else if (build_params["BL2"]        == "True"  && \
+      build_params["NS"]              == "True"  && \
+      build_params["PSA_API"]         == "True"  && \
+      build_params["ISOLATION_LEVEL"] == "3"     && \
+      build_params["TEST_REGRESSION"] == "True"  && \
+      build_params["TEST_PSA_API"]    == "OFF"   && \
+      build_params["PROFILE"]         == "N.A") {
+        params += string(name: "PROJ_CONFIG", value: "ConfigRegressionIPCTfmLevel3")
+      }
   else if (build_params["BL2"]        == "True"          && \
       build_params["NS"]              == "True"          && \
       build_params["PSA_API"]         == "False"         && \
@@ -159,6 +177,15 @@
       build_params["PROFILE"]         == "N.A") {
         params += string(name: "PROJ_CONFIG", value: "ConfigPsaApiTestIPCTfmLevel2")
       }
+  else if (build_params["BL2"]        == "True"  && \
+      build_params["NS"]              == "True"  && \
+      build_params["PSA_API"]         == "True"  && \
+      build_params["ISOLATION_LEVEL"] == "3"     && \
+      build_params["TEST_REGRESSION"] == "False" && \
+      build_params["TEST_PSA_API"]    != "OFF"   && \
+      build_params["PROFILE"]         == "N.A") {
+        params += string(name: "PROJ_CONFIG", value: "ConfigPsaApiTestIPCTfmLevel3")
+      }
   else {
     params += string(name: "PROJ_CONFIG", value: "ConfigDefault")
   }
diff --git a/lava_helper/lava_helper_configs.py b/lava_helper/lava_helper_configs.py
index a902442..50ae0f1 100644
--- a/lava_helper/lava_helper_configs.py
+++ b/lava_helper/lava_helper_configs.py
@@ -467,6 +467,59 @@
                 }
             ]  # Monitors
         },  # Regression
+        'RegressionIPCTfmLevel3': {
+            "binaries": {
+                "firmware": "mcuboot.axf",
+                "bootloader": "tfm_s_ns_signed.bin"
+            },
+            "monitors": [
+                {
+                    'name': 'Secure_Test_Suites_Summary',
+                    'start': 'Secure test suites summary',
+                    'end': 'End of Secure test suites',
+                    'pattern': r"Test suite '(?P<"
+                               r"test_case_id>[^\n]+)' has (.*) "
+                               r"(?P<result>PASSED|FAILED)",
+                    'fixup': {"pass": "PASSED", "fail": "FAILED"},
+                    'required': [
+                        ("psa_protected_storage_"
+                           "s_interface_tests_tfm_sst_test_2xxx_"),
+                        "sst_reliability_tests_tfm_sst_test_3xxx_",
+                        "sst_rollback_protection_tests_tfm_sst_test_4xxx_",
+                        ("psa_internal_trusted_storage_"
+                           "s_interface_tests_tfm_its_test_2xxx_"),
+                        "its_reliability_tests_tfm_its_test_3xxx_",
+                        ("audit_"
+                         "logging_secure_interface_test_tfm_audit_test_1xxx_"),
+                        "crypto_secure_interface_tests_tfm_crypto_test_5xxx_",
+                        ("initial_attestation_service_"
+                         "secure_interface_tests_tfm_attest_test_1xxx_"),
+                    ]
+                },
+                {
+                    'name': 'Non_Secure_Test_Suites_Summary',
+                    'start': 'Non-secure test suites summary',
+                    'end': r'End of Non-secure test suites',
+                    'pattern': r"Test suite '(?P<"
+                               r"test_case_id>[^\n]+)' has (.*) "
+                               r"(?P<result>PASSED|FAILED)",
+                    'fixup': {"pass": "PASSED", "fail": "FAILED"},
+                    'required': [
+                        ("psa_protected_storage"
+                         "_ns_interface_tests_tfm_sst_test_1xxx_"),
+                        ("psa_internal_trusted_storage"
+                         "_ns_interface_tests_tfm_its_test_1xxx_"),
+                        ("auditlog_"
+                         "non_secure_interface_test_tfm_audit_test_1xxx_"),
+                        ("crypto_"
+                         "non_secure_interface_test_tfm_crypto_test_6xxx_"),
+                        ("initial_attestation_service_"
+                         "non_secure_interface_tests_tfm_attest_test_2xxx_"),
+                        "core_non_secure_positive_tests_tfm_core_test_1xxx_"
+                    ]
+                }
+            ]  # Monitors
+        },  # Regression
         'CoreIPC': {
             "binaries": {
                 "firmware": "mcuboot.axf",
@@ -699,6 +752,59 @@
                 }
             ]  # Monitors
         },  # RegressionIPCTfmLevel2
+        'RegressionIPCTfmLevel3': {
+            "binaries": {
+                "firmware": "tfm_s.axf",
+                "bootloader": "tfm_ns.bin"
+            },
+            "monitors": [
+                {
+                    'name': 'Secure_Test_Suites_Summary',
+                    'start': 'Secure test suites summary',
+                    'end': 'End of Secure test suites',
+                    'pattern': r"Test suite '(?P<"
+                               r"test_case_id>[^\n]+)' has (.*) "
+                               r"(?P<result>PASSED|FAILED)",
+                    'fixup': {"pass": "PASSED", "fail": "FAILED"},
+                    'required': [
+                        ("psa_protected_storage_"
+                           "s_interface_tests_tfm_sst_test_2xxx_"),
+                        "sst_reliability_tests_tfm_sst_test_3xxx_",
+                        "sst_rollback_protection_tests_tfm_sst_test_4xxx_",
+                        ("psa_internal_trusted_storage_"
+                           "s_interface_tests_tfm_its_test_2xxx_"),
+                        "its_reliability_tests_tfm_its_test_3xxx_",
+                        ("audit_"
+                         "logging_secure_interface_test_tfm_audit_test_1xxx_"),
+                        "crypto_secure_interface_tests_tfm_crypto_test_5xxx_",
+                        ("initial_attestation_service_"
+                         "secure_interface_tests_tfm_attest_test_1xxx_"),
+                    ]
+                },
+                {
+                    'name': 'Non_Secure_Test_Suites_Summary',
+                    'start': 'Non-secure test suites summary',
+                    'end': r'End of Non-secure test suites',
+                    'pattern': r"Test suite '(?P<"
+                               r"test_case_id>[^\n]+)' has (.*) "
+                               r"(?P<result>PASSED|FAILED)",
+                    'fixup': {"pass": "PASSED", "fail": "FAILED"},
+                    'required': [
+                        ("psa_protected_storage"
+                         "_ns_interface_tests_tfm_sst_test_1xxx_"),
+                        ("psa_internal_trusted_storage"
+                         "_ns_interface_tests_tfm_its_test_1xxx_"),
+                        ("auditlog_"
+                         "non_secure_interface_test_tfm_audit_test_1xxx_"),
+                        ("crypto_"
+                         "non_secure_interface_test_tfm_crypto_test_6xxx_"),
+                        ("initial_attestation_service_"
+                         "non_secure_interface_tests_tfm_attest_test_2xxx_"),
+                        "core_non_secure_positive_tests_tfm_core_test_1xxx_"
+                    ]
+                }
+            ]  # Monitors
+        },  # RegressionIPCTfmLevel3
         'CoreIPC': {
             "binaries": {
                 "firmware": "tfm_s.axf",