forked from 3rd-party/fff
Merge pull request #35 from alvarez86/return_val_history
Return val history
This commit is contained in:
22
README.md
22
README.md
@@ -221,7 +221,6 @@ TEST_F(FFFTestSuite, calls_in_correct_order)
|
||||
|
||||
They are reset by calling `FFF_RESET_HISTORY();`
|
||||
|
||||
|
||||
## Default Argument History
|
||||
|
||||
The framework will by default store the arguments for the last ten calls made
|
||||
@@ -371,6 +370,27 @@ The fake will call your custom functions in the order specified by the SET_CUSTO
|
||||
macro. When the last custom fake is reached the fake will keep calling the last custom
|
||||
fake in the sequence. This macro works much like the SET_RETURN_SEQ macro.
|
||||
|
||||
## Return value history
|
||||
Say you have two functions f1 and f2. f2 must be called to release some resource
|
||||
allocated by f1, but only in the cases where f1 returns zero. f1 could be
|
||||
pthread_mutex_trylock and f2 could be pthread_mutex_unlock. <tt>fff</tt> will
|
||||
save the history of returned values so this can be easily checked, even when
|
||||
you use a sequence of custom fakes. Here's a simple example:
|
||||
|
||||
TEST_F(FFFTestSuite, return_value_sequence_saved_in_history)
|
||||
{
|
||||
long myReturnVals[3] = { 3, 7, 9 };
|
||||
SET_RETURN_SEQ(longfunc0, myReturnVals, 3);
|
||||
longfunc0();
|
||||
longfunc0();
|
||||
longfunc0();
|
||||
ASSERT_EQ(myReturnVals[0], longfunc0_fake.return_val_history[0]);
|
||||
ASSERT_EQ(myReturnVals[1], longfunc0_fake.return_val_history[1]);
|
||||
ASSERT_EQ(myReturnVals[2], longfunc0_fake.return_val_history[2]);
|
||||
}
|
||||
|
||||
You access the returned values in the <tt>return_val_history</tt> field.
|
||||
|
||||
## Variadic Functions
|
||||
|
||||
You can fake variadic functions using the macros <tt>FAKE_VALUE_FUNC_VARARG</tt>
|
||||
|
||||
28
fakegen.rb
28
fakegen.rb
@@ -37,8 +37,10 @@ def output_internal_helper_macros
|
||||
define_reset_fake_macro
|
||||
define_declare_arg_helper
|
||||
define_declare_all_func_common_helper
|
||||
define_declare_return_value_history
|
||||
define_save_arg_helper
|
||||
define_room_for_more_history
|
||||
define_save_ret_history_helper
|
||||
define_save_arg_history_helper
|
||||
define_history_dropped_helper
|
||||
define_value_function_variables_helper
|
||||
@@ -88,12 +90,25 @@ def define_declare_all_func_common_helper
|
||||
putd " unsigned int arg_histories_dropped; \\"
|
||||
end
|
||||
|
||||
def define_declare_return_value_history
|
||||
putd ""
|
||||
putd "#define DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \\"
|
||||
putd " RETURN_TYPE return_val_history[FFF_ARG_HISTORY_LEN];"
|
||||
end
|
||||
|
||||
def define_save_arg_helper
|
||||
putd ""
|
||||
putd "#define SAVE_ARG(FUNCNAME, n) \\"
|
||||
putd " memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n));"
|
||||
end
|
||||
|
||||
def define_save_ret_history_helper
|
||||
putd ""
|
||||
putd "#define SAVE_RET_HISTORY(FUNCNAME, RETVAL) \\"
|
||||
putd " if ((FUNCNAME##_fake.call_count - 1) < FFF_ARG_HISTORY_LEN) \\"
|
||||
putd " memcpy((void *)&FUNCNAME##_fake.return_val_history[FUNCNAME##_fake.call_count - 1], (const void *) &RETVAL, sizeof(RETVAL)); \\"
|
||||
end
|
||||
|
||||
def define_room_for_more_history
|
||||
putd ""
|
||||
putd "#define ROOM_FOR_MORE_HISTORY(FUNCNAME) \\"
|
||||
@@ -139,10 +154,13 @@ def define_return_fake_result_helper
|
||||
putd "#define RETURN_FAKE_RESULT(FUNCNAME) \\"
|
||||
putd " if (FUNCNAME##_fake.return_val_seq_len){ /* then its a sequence */ \\"
|
||||
putd " if(FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \\"
|
||||
putd " SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx]) \\"
|
||||
putd " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \\"
|
||||
putd " } \\"
|
||||
putd " SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]) \\"
|
||||
putd " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */ \\"
|
||||
putd " } \\"
|
||||
putd " SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val) \\"
|
||||
putd " return FUNCNAME##_fake.return_val; \\"
|
||||
end
|
||||
|
||||
@@ -261,6 +279,7 @@ def output_variables(arg_count, has_varargs, is_value_function)
|
||||
}
|
||||
putd "DECLARE_ALL_FUNC_COMMON \\"
|
||||
putd "DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \\" unless not is_value_function
|
||||
putd "DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \\" unless not is_value_function
|
||||
putd "DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \\"
|
||||
output_custom_function_signature(arg_count, has_varargs, is_value_function)
|
||||
output_custom_function_array(arg_count, has_varargs, is_value_function)
|
||||
@@ -331,15 +350,22 @@ def output_function_body(arg_count, has_varargs, is_value_function)
|
||||
putd " #{custom_fake_call}\\"
|
||||
end
|
||||
putd " va_end(ap);\\"
|
||||
putd " SAVE_RET_HISTORY(FUNCNAME, ret); \\" unless not is_value_function
|
||||
putd " return ret;\\" if is_value_function
|
||||
putd "}\\"
|
||||
else
|
||||
return_type = is_value_function ? "return " : ""
|
||||
putd "if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \\"
|
||||
putd " if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \\"
|
||||
putd " #{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](#{arg_list(arg_count)}); \\"
|
||||
putd " RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](#{arg_list(arg_count)}); \\" unless not is_value_function
|
||||
putd " SAVE_RET_HISTORY(FUNCNAME, ret); \\" unless not is_value_function
|
||||
putd " return ret; \\" unless not is_value_function
|
||||
putd " #{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](#{arg_list(arg_count)}); \\" unless is_value_function
|
||||
putd " } \\"
|
||||
putd " else{ \\"
|
||||
putd " RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](#{arg_list(arg_count)}); \\" unless not is_value_function
|
||||
putd " SAVE_RET_HISTORY(FUNCNAME, ret); \\" unless not is_value_function
|
||||
putd " return ret; \\" unless not is_value_function
|
||||
putd " #{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](#{arg_list(arg_count)}); \\"
|
||||
putd " } \\"
|
||||
putd "} \\"
|
||||
|
||||
216
fff.h
216
fff.h
@@ -59,12 +59,19 @@ SOFTWARE.
|
||||
unsigned int arg_history_len;\
|
||||
unsigned int arg_histories_dropped; \
|
||||
|
||||
#define DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
RETURN_TYPE return_val_history[FFF_ARG_HISTORY_LEN];
|
||||
|
||||
#define SAVE_ARG(FUNCNAME, n) \
|
||||
memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n));
|
||||
|
||||
#define ROOM_FOR_MORE_HISTORY(FUNCNAME) \
|
||||
FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN
|
||||
|
||||
#define SAVE_RET_HISTORY(FUNCNAME, RETVAL) \
|
||||
if ((FUNCNAME##_fake.call_count - 1) < FFF_ARG_HISTORY_LEN) \
|
||||
memcpy((void *)&FUNCNAME##_fake.return_val_history[FUNCNAME##_fake.call_count - 1], (const void *) &RETVAL, sizeof(RETVAL)); \
|
||||
|
||||
#define SAVE_ARG_HISTORY(FUNCNAME, ARGN) \
|
||||
memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN));
|
||||
|
||||
@@ -87,10 +94,13 @@ SOFTWARE.
|
||||
#define RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
if (FUNCNAME##_fake.return_val_seq_len){ /* then its a sequence */ \
|
||||
if(FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) { \
|
||||
SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx]) \
|
||||
return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \
|
||||
} \
|
||||
SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]) \
|
||||
return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */ \
|
||||
} \
|
||||
SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val) \
|
||||
return FUNCNAME##_fake.return_val; \
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -1646,6 +1656,7 @@ FFF_END_EXTERN_C \
|
||||
typedef struct FUNCNAME##_Fake { \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(void); \
|
||||
RETURN_TYPE(**custom_fake_seq)(void); \
|
||||
@@ -1668,9 +1679,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](); \
|
||||
} \
|
||||
} \
|
||||
@@ -1691,6 +1707,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0); \
|
||||
@@ -1715,9 +1732,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0); \
|
||||
} \
|
||||
} \
|
||||
@@ -1739,6 +1761,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1); \
|
||||
@@ -1765,9 +1788,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1); \
|
||||
} \
|
||||
} \
|
||||
@@ -1790,6 +1818,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \
|
||||
@@ -1818,9 +1847,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2); \
|
||||
} \
|
||||
} \
|
||||
@@ -1844,6 +1878,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \
|
||||
@@ -1874,9 +1909,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3); \
|
||||
} \
|
||||
} \
|
||||
@@ -1901,6 +1941,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \
|
||||
@@ -1933,9 +1974,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4); \
|
||||
} \
|
||||
} \
|
||||
@@ -1961,6 +2007,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \
|
||||
@@ -1995,9 +2042,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5); \
|
||||
} \
|
||||
} \
|
||||
@@ -2024,6 +2076,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \
|
||||
@@ -2060,9 +2113,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6); \
|
||||
} \
|
||||
} \
|
||||
@@ -2090,6 +2148,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \
|
||||
@@ -2128,9 +2187,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \
|
||||
} \
|
||||
} \
|
||||
@@ -2159,6 +2223,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8); \
|
||||
@@ -2199,9 +2264,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \
|
||||
} \
|
||||
} \
|
||||
@@ -2231,6 +2301,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9); \
|
||||
@@ -2273,9 +2344,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \
|
||||
} \
|
||||
} \
|
||||
@@ -2306,6 +2382,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10); \
|
||||
@@ -2350,9 +2427,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \
|
||||
} \
|
||||
} \
|
||||
@@ -2384,6 +2466,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11); \
|
||||
@@ -2430,9 +2513,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \
|
||||
} \
|
||||
} \
|
||||
@@ -2465,6 +2553,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12); \
|
||||
@@ -2513,9 +2602,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \
|
||||
} \
|
||||
} \
|
||||
@@ -2549,6 +2643,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13); \
|
||||
@@ -2599,9 +2694,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \
|
||||
} \
|
||||
} \
|
||||
@@ -2636,6 +2736,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14); \
|
||||
@@ -2688,9 +2789,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \
|
||||
} \
|
||||
} \
|
||||
@@ -2726,6 +2832,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15); \
|
||||
@@ -2780,9 +2887,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \
|
||||
} \
|
||||
} \
|
||||
@@ -2819,6 +2931,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16); \
|
||||
@@ -2875,9 +2988,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \
|
||||
} \
|
||||
} \
|
||||
@@ -2915,6 +3033,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17); \
|
||||
@@ -2973,9 +3092,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \
|
||||
} \
|
||||
} \
|
||||
@@ -3014,6 +3138,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18); \
|
||||
@@ -3074,9 +3199,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \
|
||||
} \
|
||||
} \
|
||||
@@ -3116,6 +3246,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG19_TYPE, 19, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, ARG19_TYPE arg19); \
|
||||
@@ -3178,9 +3309,14 @@ FFF_END_EXTERN_C \
|
||||
REGISTER_CALL(FUNCNAME); \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \
|
||||
if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){ \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
} \
|
||||
else{ \
|
||||
RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret; \
|
||||
return FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \
|
||||
} \
|
||||
} \
|
||||
@@ -4512,6 +4648,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG0_TYPE, 0, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, va_list ap); \
|
||||
@@ -4540,6 +4677,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg0);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4559,6 +4697,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG1_TYPE, 1, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \
|
||||
@@ -4589,6 +4728,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg1);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4609,6 +4749,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG2_TYPE, 2, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \
|
||||
@@ -4641,6 +4782,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg2);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4662,6 +4804,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG3_TYPE, 3, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \
|
||||
@@ -4696,6 +4839,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg3);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4718,6 +4862,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG4_TYPE, 4, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \
|
||||
@@ -4754,6 +4899,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg4);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4777,6 +4923,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG5_TYPE, 5, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \
|
||||
@@ -4815,6 +4962,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg5);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4839,6 +4987,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG6_TYPE, 6, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, va_list ap); \
|
||||
@@ -4879,6 +5028,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg6);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4904,6 +5054,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG7_TYPE, 7, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, va_list ap); \
|
||||
@@ -4946,6 +5097,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg7);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -4972,6 +5124,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG8_TYPE, 8, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, va_list ap); \
|
||||
@@ -5016,6 +5169,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg8);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5043,6 +5197,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG9_TYPE, 9, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, va_list ap); \
|
||||
@@ -5089,6 +5244,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg9);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5117,6 +5273,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG10_TYPE, 10, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, va_list ap); \
|
||||
@@ -5165,6 +5322,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg10);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5194,6 +5352,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG11_TYPE, 11, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, va_list ap); \
|
||||
@@ -5244,6 +5403,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg11);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5274,6 +5434,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG12_TYPE, 12, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, va_list ap); \
|
||||
@@ -5326,6 +5487,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg12);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5357,6 +5519,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG13_TYPE, 13, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, va_list ap); \
|
||||
@@ -5411,6 +5574,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg13);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5443,6 +5607,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG14_TYPE, 14, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, va_list ap); \
|
||||
@@ -5499,6 +5664,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg14);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5532,6 +5698,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG15_TYPE, 15, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, va_list ap); \
|
||||
@@ -5590,6 +5757,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg15);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5624,6 +5792,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG16_TYPE, 16, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, va_list ap); \
|
||||
@@ -5684,6 +5853,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg16);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5719,6 +5889,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG17_TYPE, 17, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, va_list ap); \
|
||||
@@ -5781,6 +5952,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg17);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
@@ -5817,6 +5989,7 @@ FFF_END_EXTERN_C \
|
||||
DECLARE_ARG(ARG18_TYPE, 18, FUNCNAME) \
|
||||
DECLARE_ALL_FUNC_COMMON \
|
||||
DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \
|
||||
DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE) \
|
||||
DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \
|
||||
RETURN_TYPE(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, va_list ap); \
|
||||
RETURN_TYPE(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ARG8_TYPE arg8, ARG9_TYPE arg9, ARG10_TYPE arg10, ARG11_TYPE arg11, ARG12_TYPE arg12, ARG13_TYPE arg13, ARG14_TYPE arg14, ARG15_TYPE arg15, ARG16_TYPE arg16, ARG17_TYPE arg17, ARG18_TYPE arg18, va_list ap); \
|
||||
@@ -5881,6 +6054,7 @@ FFF_END_EXTERN_C \
|
||||
va_start(ap, arg18);\
|
||||
ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, ap);\
|
||||
va_end(ap);\
|
||||
SAVE_RET_HISTORY(FUNCNAME, ret); \
|
||||
return ret;\
|
||||
}\
|
||||
RETURN_FAKE_RESULT(FUNCNAME) \
|
||||
|
||||
@@ -257,6 +257,64 @@ TEST_F(FFFTestSuite, custom_fake_sequence_not_exausthed)
|
||||
ASSERT_EQ('z', a);
|
||||
}
|
||||
|
||||
TEST_F(FFFTestSuite, return_value_sequence_saved_in_history)
|
||||
{
|
||||
long myReturnVals[3] = { 3, 7, 9 };
|
||||
SET_RETURN_SEQ(longfunc0, myReturnVals, 3);
|
||||
longfunc0();
|
||||
longfunc0();
|
||||
longfunc0();
|
||||
ASSERT_EQ(myReturnVals[0], longfunc0_fake.return_val_history[0]);
|
||||
ASSERT_EQ(myReturnVals[1], longfunc0_fake.return_val_history[1]);
|
||||
ASSERT_EQ(myReturnVals[2], longfunc0_fake.return_val_history[2]);
|
||||
}
|
||||
|
||||
TEST_F(FFFTestSuite, return_value_saved_in_history)
|
||||
{
|
||||
long i;
|
||||
|
||||
for (i = 0; i < FFF_ARG_HISTORY_LEN; i++)
|
||||
{
|
||||
longfunc0_fake.return_val = i + 1;
|
||||
longfunc0();
|
||||
}
|
||||
|
||||
for (i = 0; i < FFF_ARG_HISTORY_LEN; i++)
|
||||
{
|
||||
ASSERT_EQ(longfunc0_fake.return_val_history[i], i + 1);
|
||||
}
|
||||
}
|
||||
long custom_longfunc1()
|
||||
{
|
||||
return 42;
|
||||
}
|
||||
|
||||
long custom_longfunc2()
|
||||
{
|
||||
return 15;
|
||||
}
|
||||
|
||||
long custom_longfunc3()
|
||||
{
|
||||
return 7;
|
||||
}
|
||||
|
||||
TEST_F(FFFTestSuite, custom_fake_seq_return_values_saved_in_history)
|
||||
{
|
||||
long (*custom_fakes[])(void) = {custom_longfunc1,
|
||||
custom_longfunc2,
|
||||
custom_longfunc3};
|
||||
SET_CUSTOM_FAKE_SEQ(longfunc0, custom_fakes, 3);
|
||||
|
||||
longfunc0();
|
||||
longfunc0();
|
||||
longfunc0();
|
||||
|
||||
ASSERT_EQ(42, longfunc0_fake.return_val_history[0]);
|
||||
ASSERT_EQ(15, longfunc0_fake.return_val_history[1]);
|
||||
ASSERT_EQ(7, longfunc0_fake.return_val_history[2]);
|
||||
}
|
||||
|
||||
TEST_F(FFFTestSuite, custom_fake_sequence_exhausted)
|
||||
{
|
||||
void (*custom_fakes[])(char *) = {voidfunc1outparam_custom_fake1,
|
||||
|
||||
Reference in New Issue
Block a user