diff options
-rw-r--r-- | tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c | 26 | ||||
-rw-r--r-- | tftf/tests/tests-spm.xml | 3 |
2 files changed, 29 insertions, 0 deletions
diff --git a/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c b/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c index 7484cc7ca..aeeb19b10 100644 --- a/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c +++ b/tftf/tests/runtime_services/secure_service/test_ffa_direct_messaging.c @@ -145,3 +145,29 @@ test_result_t test_ffa_sp_to_sp_direct_messaging(void) return result; } + +test_result_t test_ffa_sp_to_sp_deadlock(void) +{ + smc_ret_values ret; + + /********************************************************************** + * Check SPMC has ffa_version and expected FFA endpoints are deployed. + **********************************************************************/ + CHECK_HAFNIUM_SPMC_TESTING_SETUP(1, 0, expected_sp_uuids); + + ret = CACTUS_REQ_DEADLOCK_SEND_CMD(HYP_ID, SP_ID(1), SP_ID(2), + SP_ID(3)); + + if (ret.ret0 != FFA_MSG_SEND_DIRECT_RESP_SMC32) { + ERROR("Failed to send message. error: %lx\n", + ret.ret2); + return TEST_RESULT_FAIL; + } + + if (CACTUS_GET_RESPONSE(ret) == CACTUS_ERROR) { + ERROR("cactus SP response is CACTUS_ERROR!\n"); + return TEST_RESULT_FAIL; + } + + return TEST_RESULT_SUCCESS; +} diff --git a/tftf/tests/tests-spm.xml b/tftf/tests/tests-spm.xml index d665b5a3a..14be8ca5a 100644 --- a/tftf/tests/tests-spm.xml +++ b/tftf/tests/tests-spm.xml @@ -39,6 +39,9 @@ <testcase name="FF-A Request SP-to-SP direct messaging" function="test_ffa_sp_to_sp_direct_messaging" /> + <testcase name="FF-A Request SP-to-SP direct messaging deadlock" + function="test_ffa_sp_to_sp_deadlock" /> + </testsuite> <testsuite name="FF-A Memory Sharing" |