in src/umockcallrecorder.c [751:788]
int umockcallrecorder_fail_call(UMOCKCALLRECORDER_HANDLE umock_call_recorder, size_t index)
{
int result;
/* Codes_SRS_UMOCKCALLRECORDER_01_049: [ If umock_call_recorder is NULL, umockcallrecorder_fail_call shall return a non-zero value. ]*/
if ((umock_call_recorder == NULL) ||
/* Codes_SRS_UMOCKCALLRECORDER_01_050: [ If index is invalid, umockcallrecorder_fail_call shall return a non-zero value. ]*/
(index >= umock_call_recorder->expected_call_count))
{
result = MU_FAILURE;
UMOCK_LOG("umockcallrecorder_fail_call: NULL Invalid arguments, umock_call_recorder = %p, index = %zu",
umock_call_recorder, index);
}
else
{
/* Codes_SRS_UMOCKCALLRECORDER_01_089: [ If a lock was created for the call recorder, umockcallrecorder_fail_call acquire the lock in exclusive mode. ]*/
internal_lock_acquire_exclusive_if_needed(umock_call_recorder);
{
/* Codes_SRS_UMOCKCALLRECORDER_01_047: [ umockcallrecorder_fail_call shall mark an expected call as to be failed by calling umockcall_set_fail_call with a 1 value for fail_call. ]*/
if (umockcall_set_fail_call(umock_call_recorder->expected_calls[index].umockcall, 1) != 0)
{
/* Codes_SRS_UMOCKCALLRECORDER_01_051: [ If umockcall_set_fail_call fails, umockcallrecorder_fail_call shall return a non-zero value. ]*/
result = MU_FAILURE;
UMOCK_LOG("umockcallrecorder_fail_call: umockcall_set_fail_call failed.");
}
else
{
/* Codes_SRS_UMOCKCALLRECORDER_01_048: [ On success, umockcallrecorder_fail_call shall return 0. ]*/
result = 0;
}
/* Codes_SRS_UMOCKCALLRECORDER_01_090: [ If a lock was created for the call recorder, umockcallrecorder_fail_call shall release the exclusive lock. ]*/
internal_lock_release_exclusive_if_needed(umock_call_recorder);
}
}
return result;
}