diff --git a/spm/cactus/cactus.mk b/spm/cactus/cactus.mk
index 4b3f0bd..4a9cfcc 100644
--- a/spm/cactus/cactus.mk
+++ b/spm/cactus/cactus.mk
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2018-2020, Arm Limited. All rights reserved.
+# Copyright (c) 2018-2021, Arm Limited. All rights reserved.
 #
 # SPDX-License-Identifier: BSD-3-Clause
 #
@@ -46,6 +46,7 @@
 	tftf/framework/debug.c				\
 	tftf/framework/${ARCH}/asm_debug.S		\
 	tftf/tests/runtime_services/secure_service/ffa_helpers.c \
+	tftf/tests/runtime_services/secure_service/spm_common.c	\
 	tftf/framework/${ARCH}/exceptions.S		\
 	tftf/framework/${ARCH}/exception_report.c
 
diff --git a/spm/cactus/cactus_ffa_tests.c b/spm/cactus/cactus_ffa_tests.c
index 5863456..a5acc56 100644
--- a/spm/cactus/cactus_ffa_tests.c
+++ b/spm/cactus/cactus_ffa_tests.c
@@ -1,16 +1,17 @@
 /*
- * Copyright (c) 2018-2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2021, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
 #include <assert.h>
 #include <debug.h>
 #include <errno.h>
-#include <cactus_platform_def.h>
+
 #include <cactus_def.h>
+#include <cactus_platform_def.h>
 #include <ffa_endpoints.h>
-#include <ffa_helpers.h>
 #include <sp_helpers.h>
+#include <spm_common.h>
 
 #include <lib/libc/string.h>
 #include <lib/xlat_tables/xlat_tables_v2.h>
@@ -24,39 +25,6 @@
 static const uint32_t tertiary_uuid[4] = TERTIARY_UUID;
 static const uint32_t null_uuid[4] = {0};
 
-struct feature_test {
-	const char *test_name;
-	unsigned int feature;
-	unsigned int expected_ret;
-};
-
-static const struct feature_test test_target[] = {
-	{"FFA_ERROR_32 check", FFA_ERROR, FFA_SUCCESS_SMC32},
-	{"FFA_SUCCESS_32 check", FFA_SUCCESS_SMC32, FFA_SUCCESS_SMC32},
-	{"FFA_INTERRUPT_32 check", FFA_INTERRUPT, FFA_SUCCESS_SMC32},
-	{"FFA_VERSION_32 check", FFA_VERSION, FFA_SUCCESS_SMC32},
-	{"FFA_FEATURES_32 check", FFA_FEATURES, FFA_SUCCESS_SMC32},
-	{"FFA_RX_RELEASE_32 check", FFA_RX_RELEASE, FFA_SUCCESS_SMC32},
-	{"FFA_RXTX_MAP_32 check", FFA_RXTX_MAP_SMC32, FFA_ERROR},
-	{"FFA_RXTX_MAP_64 check", FFA_RXTX_MAP_SMC64, FFA_SUCCESS_SMC32},
-	{"FFA_RXTX_UNMAP_32 check", FFA_RXTX_UNMAP, FFA_ERROR},
-	{"FFA_PARTITION_INFO_GET_32 check", FFA_PARTITION_INFO_GET, FFA_SUCCESS_SMC32},
-	{"FFA_ID_GET_32 check", FFA_ID_GET, FFA_SUCCESS_SMC32},
-	{"FFA_MSG_POLL_32 check", FFA_MSG_POLL, FFA_SUCCESS_SMC32},
-	{"FFA_MSG_WAIT_32 check", FFA_MSG_WAIT, FFA_SUCCESS_SMC32},
-	{"FFA_YIELD_32 check", FFA_MSG_YIELD, FFA_SUCCESS_SMC32},
-	{"FFA_RUN_32 check", FFA_MSG_RUN, FFA_SUCCESS_SMC32},
-	{"FFA_MSG_SEND_32 check", FFA_MSG_SEND, FFA_SUCCESS_SMC32},
-	{"FFA_MEM_DONATE_32 check", FFA_MEM_DONATE_SMC32, FFA_SUCCESS_SMC32},
-	{"FFA_MEM_LEND_32 check", FFA_MEM_LEND_SMC32, FFA_SUCCESS_SMC32},
-	{"FFA_MEM_SHARE_32 check", FFA_MEM_SHARE_SMC32, FFA_SUCCESS_SMC32},
-	{"FFA_MEM_RETRIEVE_REQ_32 check", FFA_MEM_RETRIEVE_REQ_SMC32, FFA_SUCCESS_SMC32},
-	{"FFA_MEM_RETRIEVE_RESP_32 check", FFA_MEM_RETRIEVE_RESP, FFA_SUCCESS_SMC32},
-	{"FFA_MEM_RELINQUISH_32 check", FFA_MEM_RELINQUISH, FFA_SUCCESS_SMC32},
-	{"FFA_MEM_RECLAIM_32 check", FFA_MEM_RECLAIM, FFA_SUCCESS_SMC32},
-	{"Check non-existent command", 0xFFFF, FFA_ERROR}
-};
-
 /*
  * Test FFA_FEATURES interface.
  */
@@ -64,21 +32,23 @@
 {
 	const char *test_features = "FFA Features interface";
 	smc_ret_values ffa_ret;
+	const struct ffa_features_test *ffa_feature_test_target;
 	unsigned int i, test_target_size =
-		sizeof(test_target) / sizeof(struct feature_test);
+		get_ffa_feature_test_target(&ffa_feature_test_target);
+
 
 	announce_test_section_start(test_features);
 
 	for (i = 0U; i < test_target_size; i++) {
-		announce_test_start(test_target[i].test_name);
+		announce_test_start(ffa_feature_test_target[i].test_name);
 
-		ffa_ret = ffa_features(test_target[i].feature);
-		expect(ffa_ret.ret0, test_target[i].expected_ret);
-		if (test_target[i].expected_ret == FFA_ERROR) {
+		ffa_ret = ffa_features(ffa_feature_test_target[i].feature);
+		expect(ffa_ret.ret0, ffa_feature_test_target[i].expected_ret);
+		if (ffa_feature_test_target[i].expected_ret == FFA_ERROR) {
 			expect(ffa_ret.ret2, FFA_ERROR_NOT_SUPPORTED);
 		}
 
-		announce_test_end(test_target[i].test_name);
+		announce_test_end(ffa_feature_test_target[i].test_name);
 	}
 
 	announce_test_section_end(test_features);
diff --git a/spm/cactus/cactus_main.c b/spm/cactus/cactus_main.c
index e1bfd1f..1d81988 100644
--- a/spm/cactus/cactus_main.c
+++ b/spm/cactus/cactus_main.c
@@ -1,30 +1,29 @@
 /*
- * Copyright (c) 2018-2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2018-2021, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
 
 #include <assert.h>
 #include <errno.h>
-
-#include "cactus.h"
-#include "cactus_def.h"
-#include <cactus_platform_def.h>
-#include "cactus_tests.h"
 #include <debug.h>
+
+#include <cactus_platform_def.h>
+#include <cactus_test_cmds.h>
 #include <drivers/arm/pl011.h>
 #include <drivers/console.h>
-#include <ffa_helpers.h>
 #include <lib/aarch64/arch_helpers.h>
 #include <lib/xlat_tables/xlat_mmu_helpers.h>
 #include <lib/xlat_tables/xlat_tables_v2.h>
+#include <plat_arm.h>
+#include <plat/common/platform.h>
+#include <platform_def.h>
 #include <sp_helpers.h>
 #include <std_svc.h>
-#include <plat/common/platform.h>
-#include <plat_arm.h>
-#include <platform_def.h>
 
-#include <cactus_test_cmds.h>
+#include "cactus_def.h"
+#include "cactus_tests.h"
+#include "cactus.h"
 
 /* Host machine information injected by the build system in the ELF file. */
 extern const char build_message[];
diff --git a/spm/cactus/cactus_tests.h b/spm/cactus/cactus_tests.h
index fd229bf..8e838cc 100644
--- a/spm/cactus/cactus_tests.h
+++ b/spm/cactus/cactus_tests.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2017-2021, Arm Limited. All rights reserved.
  *
  * SPDX-License-Identifier: BSD-3-Clause
  */
@@ -7,7 +7,7 @@
 #ifndef CACTUS_TESTS_H
 #define CACTUS_TESTS_H
 
-#include <ffa_helpers.h>
+#include <spm_common.h>
 
 /*
  * Test functions
