aboutsummaryrefslogtreecommitdiff
path: root/tftf/tests/runtime_services/secure_service/test_ffa_features.c
diff options
context:
space:
mode:
Diffstat (limited to 'tftf/tests/runtime_services/secure_service/test_ffa_features.c')
-rw-r--r--tftf/tests/runtime_services/secure_service/test_ffa_features.c54
1 files changed, 11 insertions, 43 deletions
diff --git a/tftf/tests/runtime_services/secure_service/test_ffa_features.c b/tftf/tests/runtime_services/secure_service/test_ffa_features.c
index 7d67bf8e..beee5d23 100644
--- a/tftf/tests/runtime_services/secure_service/test_ffa_features.c
+++ b/tftf/tests/runtime_services/secure_service/test_ffa_features.c
@@ -1,46 +1,13 @@
/*
- * Copyright (c) 2020, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
-#include <ffa_helpers.h>
+#include <spm_common.h>
#include <test_helpers.h>
#include <tftf_lib.h>
-struct feature_test {
- const char *test_name;
- unsigned int feature;
- u_register_t 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_result_t test_ffa_features(void)
{
SKIP_TEST_IF_FFA_VERSION_LESS_THAN(1, 0);
@@ -52,23 +19,24 @@ test_result_t test_ffa_features(void)
}
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);
for (i = 0U; i < test_target_size; i++) {
- ffa_ret = ffa_features(test_target[i].feature);
- if (ffa_ret.ret0 != test_target[i].expected_ret) {
- tftf_testcase_printf("%s returned %lx, expected %lx\n",
- test_target[i].test_name,
+ ffa_ret = ffa_features(ffa_feature_test_target[i].feature);
+ if (ffa_ret.ret0 != ffa_feature_test_target[i].expected_ret) {
+ tftf_testcase_printf("%s returned %lx, expected %x\n",
+ ffa_feature_test_target[i].test_name,
ffa_ret.ret0,
- test_target[i].expected_ret);
+ ffa_feature_test_target[i].expected_ret);
return TEST_RESULT_FAIL;
}
- if ((test_target[i].expected_ret == (u_register_t)FFA_ERROR) &&
+ if ((ffa_feature_test_target[i].expected_ret == (u_register_t)FFA_ERROR) &&
(ffa_ret.ret2 != (u_register_t)FFA_ERROR_NOT_SUPPORTED)) {
tftf_testcase_printf("%s failed for the wrong reason: "
"returned %lx, expected %lx\n",
- test_target[i].test_name,
+ ffa_feature_test_target[i].test_name,
ffa_ret.ret2,
(u_register_t)FFA_ERROR_NOT_SUPPORTED);
return TEST_RESULT_FAIL;