Test: Add Secure SFN Backend test

This patch adds Secure SFN Backend test (PSA API tests):
- Adding a new TEST_S_SFN_BACKEND_TEST config and enable by default
  for TEST_S
- Adding Secure test source and CMakeLists

Change-Id: Ife229c2c7c5abbf84effc18b0951f6a4eb5acace
Signed-off-by: Kevin Peng <kevin.peng@arm.com>
diff --git a/test/config/check_config.cmake b/test/config/check_config.cmake
index 0c8d964..0b1c725 100644
--- a/test/config/check_config.cmake
+++ b/test/config/check_config.cmake
@@ -36,6 +36,7 @@
 message(STATUS "TEST_S_PLATFORM is set as ${TEST_S_PLATFORM}")
 message(STATUS "TEST_S_FWU is set as ${TEST_S_FWU}")
 message(STATUS "TEST_S_IPC is set as ${TEST_S_IPC}")
+message(STATUS "TEST_S_SFN_BACKEND is set as ${TEST_S_SFN_BACKEND}")
 message(STATUS "TEST_S_FPU is set as ${TEST_S_FPU}")
 
 message(STATUS "---------- Display TEST Configuration - stop ---------------")
@@ -49,10 +50,13 @@
 tfm_invalid_config((NOT TFM_PARTITION_PLATFORM AND NOT FORWARD_PROT_MSG) AND (TEST_NS_PLATFORM OR TEST_S_PLATFORM))
 tfm_invalid_config(NOT TFM_PARTITION_FIRMWARE_UPDATE AND (TEST_NS_FWU OR TEST_S_FWU))
 tfm_invalid_config(NOT TFM_PARTITION_AUDIT_LOG AND (TEST_NS_AUDIT OR TEST_S_AUDIT))
-tfm_invalid_config((TFM_LIB_MODEL) AND (TEST_NS_IPC OR TEST_S_IPC OR TEST_NS_SLIH_IRQ OR TEST_NS_FLIH_IRQ))
-tfm_invalid_config(CONFIG_TFM_SPM_BACKEND_SFN AND (TEST_NS_IPC OR TEST_S_IPC OR TEST_NS_CORE OR TEST_NS_SLIH_IRQ OR TEST_NS_FLIH_IRQ))
+
+tfm_invalid_config((TEST_NS_IPC OR TEST_S_IPC OR TEST_NS_SLIH_IRQ OR TEST_NS_FLIH_IRQ) AND (TFM_LIB_MODEL))
+tfm_invalid_config((TEST_NS_IPC OR TEST_S_IPC OR TEST_NS_CORE OR TEST_NS_SLIH_IRQ OR TEST_NS_FLIH_IRQ) AND CONFIG_TFM_SPM_BACKEND_SFN)
+tfm_invalid_config(TEST_S_SFN_BACKEND AND CONFIG_TFM_SPM_BACKEND_IPC)
+
 tfm_invalid_config(CONFIG_TFM_FP STREQUAL "soft" AND (TEST_S_FPU OR TEST_NS_FPU))
-tfm_invalid_config(TFM_LIB_MODEL AND (TEST_S_FPU OR TEST_NS_FPU))
+tfm_invalid_config(TFM_LIB_MODEL AND (TEST_S_FPU OR TEST_NS_FPU OR TEST_S_SFN_BACKEND))
 tfm_invalid_config((NOT TFM_MULTI_CORE_TOPOLOGY) AND TEST_NS_MULTI_CORE)
 tfm_invalid_config(TEST_NS_T_COSE AND SYMMETRIC_INITIAL_ATTESTATION)
 tfm_invalid_config((NOT TFM_NS_MANAGE_NSID) AND TEST_NS_MANAGE_NSID)
diff --git a/test/config/default_s_test_config.cmake b/test/config/default_s_test_config.cmake
index 05ad57a..dfb103c 100644
--- a/test/config/default_s_test_config.cmake
+++ b/test/config/default_s_test_config.cmake
@@ -20,4 +20,5 @@
 
 set(TEST_S_FWU              OFF       CACHE BOOL      "Whether to build S regression FWU tests")
 set(TEST_S_IPC              OFF       CACHE BOOL      "Whether to build S regression IPC tests")
+set(TEST_S_SFN_BACKEND      OFF       CACHE BOOL      "Whether to build S regression SFN tests")
 set(TEST_S_FPU              OFF       CACHE BOOL      "Whether to build S regression FPU tests")
diff --git a/test/config/default_test_config.cmake b/test/config/default_test_config.cmake
index dbc32dd..62ac4a0 100644
--- a/test/config/default_test_config.cmake
+++ b/test/config/default_test_config.cmake
@@ -43,6 +43,7 @@
 set(TEST_S_PLATFORM         OFF        CACHE BOOL      "Whether to build S regression Platform tests")
 set(TEST_S_FWU              OFF        CACHE BOOL      "Whether to build S regression FWU tests")
 set(TEST_S_IPC              OFF        CACHE BOOL      "Whether to build S regression IPC tests")
+set(TEST_S_SFN_BACKEND      OFF        CACHE BOOL      "Whether to build S regression SFN tests")
 
 ################################## PS Tests ####################################
 
diff --git a/test/config/set_config.cmake b/test/config/set_config.cmake
index 455406d..1fe94a8 100644
--- a/test/config/set_config.cmake
+++ b/test/config/set_config.cmake
@@ -132,6 +132,10 @@
     set(TEST_NS_SFN_BACKEND     ON        CACHE BOOL      "Whether to build NS regression SFN backend tests")
 endif()
 
+if (CONFIG_TFM_SPM_BACKEND_SFN AND TEST_S)
+    set(TEST_S_SFN_BACKEND      ON        CACHE BOOL      "Whether to build S regression SFN backend tests")
+endif()
+
 ######################### Library Model Specific Tests #########################
 if (TFM_LIB_MODEL AND TEST_NS)
     set(TEST_NS_CORE            ON        CACHE BOOL      "Whether to build NS regression Core tests")
@@ -160,6 +164,12 @@
     set(TFM_PARTITION_IPC_TEST  OFF)
 endif()
 
+if (TEST_NS_SFN_BACKEND OR TEST_S_SFN_BACKEND)
+    set(TFM_PARTITION_SFN_BACKEND_TEST  ON)
+else()
+    set(TFM_PARTITION_SFN_BACKEND_TEST  OFF)
+endif()
+
 if ((TEST_NS_ATTESTATION OR TEST_S_ATTESTATION)
     # This initial attestation test service provide a secure API to enable tests to
     # fetch Initial Attestation public key.