refactor(rme): add helper macro for RME tests

This change adds SKIP_TEST_IF_RME_NOT_SUPPORTED_OR_RMM_IS_TRP macro that
checks if FEAT_RME is present and RMM is not TRP.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I100e713d8f4fce2826e60909580079834585fddb
diff --git a/include/common/test_helpers.h b/include/common/test_helpers.h
index fdc5401..5af4d19 100644
--- a/include/common/test_helpers.h
+++ b/include/common/test_helpers.h
@@ -358,6 +358,33 @@
 		}								\
 	} while (false)
 
+#define SKIP_TEST_IF_RME_NOT_SUPPORTED_OR_RMM_IS_TRP()				\
+	do {									\
+		u_register_t retrmm;						\
+										\
+		if (!get_armv9_2_feat_rme_support()) {				\
+			tftf_testcase_printf("FEAT_RME not supported\n");	\
+			return TEST_RESULT_SKIPPED;				\
+		}								\
+										\
+		host_rmi_init_cmp_result();					\
+		retrmm = host_rmi_version();					\
+										\
+		VERBOSE("RMM version is: %lu.%lu\n",				\
+			RMI_ABI_VERSION_GET_MAJOR(retrmm),			\
+			RMI_ABI_VERSION_GET_MINOR(retrmm));			\
+										\
+		/*								\
+		 * TODO: Remove this once SMC_RMM_REALM_CREATE is implemented	\
+		 * in TRP. For the moment skip the test if RMM is TRP, TRP	\
+		 * version is always 0.						\
+		 */								\
+		if (retrmm == 0U) {						\
+			tftf_testcase_printf("RMM is TRP\n");			\
+			return TEST_RESULT_SKIPPED;				\
+		}								\
+	} while (false)
+
 /* Helper macro to verify if system suspend API is supported */
 #define is_psci_sys_susp_supported()	\
 		(tftf_get_psci_feature_info(SMC_PSCI_SYSTEM_SUSPEND)		\
diff --git a/tftf/tests/misc_tests/test_invalid_access.c b/tftf/tests/misc_tests/test_invalid_access.c
index 9cbd8f2..7325ace 100644
--- a/tftf/tests/misc_tests/test_invalid_access.c
+++ b/tftf/tests/misc_tests/test_invalid_access.c
@@ -230,25 +230,7 @@
 	test_result_t result = TEST_RESULT_FAIL;
 	static char rd[GRANULE_SIZE] __aligned(GRANULE_SIZE);
 
-	if (get_armv9_2_feat_rme_support() == 0U) {
-		return TEST_RESULT_SKIPPED;
-	}
-
-	host_rmi_init_cmp_result();
-
-	retrmm = host_rmi_version();
-
-	VERBOSE("RMM version is: %lu.%lu\n",
-			RMI_ABI_VERSION_GET_MAJOR(retrmm),
-			RMI_ABI_VERSION_GET_MINOR(retrmm));
-
-	/*
-	 * TODO: Remove this once SMC_RMM_REALM_CREATE is implemented in TRP
-	 * For the moment skip the test if RMM is TRP, TRP version is always null.
-	 */
-	if (retrmm == 0U) {
-		return TEST_RESULT_SKIPPED;
-	}
+	SKIP_TEST_IF_RME_NOT_SUPPORTED_OR_RMM_IS_TRP();
 
 	retrmm = host_rmi_granule_delegate((u_register_t)&rd[0]);
 	if (retrmm != 0UL) {
diff --git a/tftf/tests/runtime_services/realm_payload/host_realm_payload_tests.c b/tftf/tests/runtime_services/realm_payload/host_realm_payload_tests.c
index 55a333a..ae62336 100644
--- a/tftf/tests/runtime_services/realm_payload/host_realm_payload_tests.c
+++ b/tftf/tests/runtime_services/realm_payload/host_realm_payload_tests.c
@@ -12,6 +12,7 @@
 #include <irq.h>
 #include <drivers/arm/arm_gic.h>
 #include <drivers/arm/gic_v3.h>
+#include <test_helpers.h>
 
 #include <host_realm_helper.h>
 #include <host_realm_mem_layout.h>
@@ -28,26 +29,8 @@
 test_result_t host_test_realm_create_enter(void)
 {
 	bool ret1, ret2;
-	u_register_t retrmm;
 
-	if (get_armv9_2_feat_rme_support() == 0U) {
-		INFO("platform doesn't support RME\n");
-		return TEST_RESULT_SKIPPED;
-	}
-
-	host_rmi_init_cmp_result();
-
-	retrmm = host_rmi_version();
-	VERBOSE("RMM version is: %lu.%lu\n",
-			RMI_ABI_VERSION_GET_MAJOR(retrmm),
-			RMI_ABI_VERSION_GET_MINOR(retrmm));
-	/*
-	 * Skip the test if RMM is TRP, TRP version is always null.
-	 */
-	if (retrmm == 0UL) {
-		INFO("Test case not supported for TRP as RMM\n");
-		return TEST_RESULT_SKIPPED;
-	}
+	SKIP_TEST_IF_RME_NOT_SUPPORTED_OR_RMM_IS_TRP();
 
 	if (!host_create_realm_payload((u_register_t)REALM_IMAGE_BASE,
 			(u_register_t)PAGE_POOL_BASE,
@@ -135,27 +118,9 @@
 static test_result_t host_test_realm_pmuv3(uint8_t cmd)
 {
 	struct realm *realm_ptr;
-	u_register_t retrmm;
 	bool ret1, ret2;
 
-	if (get_armv9_2_feat_rme_support() == 0U) {
-		INFO("platform doesn't support RME\n");
-		return TEST_RESULT_SKIPPED;
-	}
-
-	host_rmi_init_cmp_result();
-
-	retrmm = host_rmi_version();
-	VERBOSE("RMM version is: %lu.%lu\n",
-			RMI_ABI_VERSION_GET_MAJOR(retrmm),
-			RMI_ABI_VERSION_GET_MINOR(retrmm));
-	/*
-	 * Skip the test if RMM is TRP, TRP version is always null.
-	 */
-	if (retrmm == 0UL) {
-		INFO("Test case not supported for TRP as RMM\n");
-		return TEST_RESULT_SKIPPED;
-	}
+	SKIP_TEST_IF_RME_NOT_SUPPORTED_OR_RMM_IS_TRP();
 
 	host_set_pmu_state();