Test: Add FP test cases

1. Enable FP support for test framework.
2. Adding FP service partition for FPU test.
3. Adding test cases in TFM_SP_SECURE_TEST_PARTITION partition to
   verify FP context protection.
4. Separate qcbor, t_cose for SPE and NSPE.

Note:
   FPU is used by SPE only, NSPE is not allowed to use FPU at current
   stage.

Change-Id: I703cac5b3fc8e8c0840babb7af16fa346b5d2c95
Signed-off-by: Feder Liang <Feder.Liang@arm.com>
diff --git a/test/config/check_config.cmake b/test/config/check_config.cmake
index 41f2c0b..171f6d2 100644
--- a/test/config/check_config.cmake
+++ b/test/config/check_config.cmake
@@ -34,6 +34,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_FPU is set as ${TEST_S_FPU}")
 
 message(STATUS "---------- Display TEST Configuration - stop ---------------")
 
@@ -47,6 +48,8 @@
 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_SPE_FP STREQUAL "0" AND TEST_S_FPU)
+tfm_invalid_config(TFM_LIB_MODEL AND TEST_S_FPU)
 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 4a38da7..b2a8575 100644
--- a/test/config/default_s_test_config.cmake
+++ b/test/config/default_s_test_config.cmake
@@ -19,3 +19,4 @@
 set(TEST_S_PLATFORM         ON        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              ON        CACHE BOOL      "Whether to build S regression IPC 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 7f3deee..1bfacae 100644
--- a/test/config/default_test_config.cmake
+++ b/test/config/default_test_config.cmake
@@ -70,6 +70,10 @@
 
 set(ATTEST_TEST_GET_PUBLIC_KEY          OFF         CACHE BOOL      "Require to retrieve Initial Attestation public in runtime for test purpose")
 
+############################################ FPU Tests #########################
+
+set(TEST_S_FPU                          OFF         CACHE BOOL      "Whether to build S regression FPU tests")
+
 ################################## Extra test suites ###########################
 
 set(EXTRA_NS_TEST_SUITES_PATHS          ""          CACHE PATH      "List of extra non-secure test suites directories. An extra test suite folder contains source code, CMakeLists.txt and cmake configuration file")
diff --git a/test/config/set_config.cmake b/test/config/set_config.cmake
index 75f6477..57f2117 100644
--- a/test/config/set_config.cmake
+++ b/test/config/set_config.cmake
@@ -67,6 +67,10 @@
     set(TEST_NS_MANAGE_NSID     OFF        CACHE BOOL      "Whether to build NS regression NSID management tests")
 endif()
 
+if (CONFIG_TFM_SPE_FP STREQUAL "0")
+    set(TEST_S_FPU              OFF        CACHE BOOL      "Whether to build S regression FPU tests")
+endif()
+
 ########################## Test framework sync #################################
 
 get_cmake_property(CACHE_VARS CACHE_VARIABLES)