diff --git a/README.md b/README.md index e38d3df..45a83ed 100644 --- a/README.md +++ b/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,44 @@ 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. fff 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 return_val_history field. + +## Variadic Functions + +You can fake variadic functions using the macros FAKE_VALUE_FUNC_VARARG +and FAKE_VOID_FUNC_VARARG. For instance: + + FAKE_VALUE_FUNC_VARARG(int, fprintf, FILE *, const char*, ...); + +In order to access the variadic parameters from a custom fake function, declare a +va_list parameter. For instance, a custom fake for fprintf() +could call the real fprintf() like this: + + int fprintf_custom(FILE *stream, const char *format, va_list ap) { + if (fprintf0_fake.return_val < 0) // should we fail? + return fprintf0_fake.return_val; + return vfprintf(stream, format, ap); + } + ## How do I fake a function that returns a value by reference? The basic mechanism that FFF provides you in this case is the custom_fake field described in the *Custom Return Value Delegate* example above. diff --git a/fakegen.rb b/fakegen.rb index 59d4ea2..e21387f 100644 --- a/fakegen.rb +++ b/fakegen.rb @@ -11,16 +11,20 @@ $MAX_CALL_HISTORY = 50 def include_dependencies putd "#include " putd "#include /* For memset and memcpy */" - putd "" + puts end def output_constants putd "#define FFF_MAX_ARGS (#{$MAX_ARGS}u)" putd "#ifndef FFF_ARG_HISTORY_LEN" - putd " #define FFF_ARG_HISTORY_LEN (#{$DEFAULT_ARG_HISTORY}u)" + indent { + putd "#define FFF_ARG_HISTORY_LEN (#{$DEFAULT_ARG_HISTORY}u)" + } putd "#endif" putd "#ifndef FFF_CALL_HISTORY_LEN" - putd " #define FFF_CALL_HISTORY_LEN (#{$MAX_CALL_HISTORY}u)" + indent { + putd "#define FFF_CALL_HISTORY_LEN (#{$MAX_CALL_HISTORY}u)" + } putd "#endif" end @@ -37,8 +41,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 @@ -49,121 +55,181 @@ def output_internal_helper_macros define_reset_fake_helper putd "/* -- END INTERNAL HELPER MACROS -- */" - putd "" + puts end def define_return_sequence_helper - putd "#define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \\" - putd " FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \\" - putd " FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN;" + putd_backslash "#define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN)" + indent { + putd_backslash "FUNCNAME##_fake.return_val_seq = ARRAY_POINTER;" + putd "FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN;" + } end def define_custom_fake_sequence_helper - putd "#define SET_CUSTOM_FAKE_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \\" - putd " FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \\" - putd " FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN;" + putd_backslash "#define SET_CUSTOM_FAKE_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN)" + indent { + putd_backslash "FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER;" + putd "FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN;" + } end def define_reset_fake_macro - putd "" + puts putd "/* Defining a function to reset a fake function */" - putd "#define RESET_FAKE(FUNCNAME) { \\" - putd " FUNCNAME##_reset(); \\" - putd "} \\" - putd "" + putd_backslash "#define RESET_FAKE(FUNCNAME) {" + indent { + putd_backslash "FUNCNAME##_reset();" + } + putd_backslash "}" + puts end def define_declare_arg_helper - putd "" - putd "#define DECLARE_ARG(type, n, FUNCNAME) \\" - putd " type arg##n##_val; \\" - putd " type arg##n##_history[FFF_ARG_HISTORY_LEN];" + puts + putd_backslash "#define DECLARE_ARG(type, n, FUNCNAME)" + indent { + putd_backslash "type arg##n##_val;" + putd "type arg##n##_history[FFF_ARG_HISTORY_LEN];" + } end def define_declare_all_func_common_helper + puts + putd_backslash "#define DECLARE_ALL_FUNC_COMMON" + indent { + putd_backslash "unsigned int call_count;" + putd_backslash "unsigned int arg_history_len;" + putd_backslash "unsigned int arg_histories_dropped;" + } +end + +def define_declare_return_value_history putd "" - putd "#define DECLARE_ALL_FUNC_COMMON \\" - putd " unsigned int call_count; \\" - putd " unsigned int arg_history_len;\\" - putd " unsigned int arg_histories_dropped; \\" + putd_backslash "#define DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE)" + indent { + putd "RETURN_TYPE return_val_history[FFF_ARG_HISTORY_LEN];" + } end def define_save_arg_helper + puts + putd_backslash "#define SAVE_ARG(FUNCNAME, n)" + indent { + 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_ARG(FUNCNAME, n) \\" - putd " memcpy((void*)&FUNCNAME##_fake.arg##n##_val, (void*)&arg##n, sizeof(arg##n));" + putd_backslash "#define SAVE_RET_HISTORY(FUNCNAME, RETVAL)" + indent { + putd_backslash "if ((FUNCNAME##_fake.call_count - 1) < FFF_ARG_HISTORY_LEN)" + indent { + putd_backslash "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) \\" - putd " FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN" + puts + putd_backslash "#define ROOM_FOR_MORE_HISTORY(FUNCNAME)" + indent { + putd "FUNCNAME##_fake.call_count < FFF_ARG_HISTORY_LEN" + } end def define_save_arg_history_helper - putd "" - putd "#define SAVE_ARG_HISTORY(FUNCNAME, ARGN) \\" - putd " memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN));" + puts + putd_backslash "#define SAVE_ARG_HISTORY(FUNCNAME, ARGN)" + indent { + putd "memcpy((void*)&FUNCNAME##_fake.arg##ARGN##_history[FUNCNAME##_fake.call_count], (void*)&arg##ARGN, sizeof(arg##ARGN));" + } end def define_history_dropped_helper - putd "" - putd "#define HISTORY_DROPPED(FUNCNAME) \\" - putd " FUNCNAME##_fake.arg_histories_dropped++" + puts + putd_backslash "#define HISTORY_DROPPED(FUNCNAME)" + indent { + putd "FUNCNAME##_fake.arg_histories_dropped++" + } end def define_value_function_variables_helper - putd "" - putd "#define DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \\" - putd " RETURN_TYPE return_val; \\" - putd " int return_val_seq_len; \\" - putd " int return_val_seq_idx; \\" - putd " RETURN_TYPE * return_val_seq; \\" + puts + putd_backslash "#define DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE)" + indent { + putd_backslash "RETURN_TYPE return_val;" + putd_backslash "int return_val_seq_len;" + putd_backslash "int return_val_seq_idx;" + putd_backslash "RETURN_TYPE * return_val_seq;" + } end def define_custom_fake_seq_variables_helper - putd "" - putd "#define DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \\" - putd " int custom_fake_seq_len; \\" - putd " int custom_fake_seq_idx; \\" + puts + putd_backslash "#define DECLARE_CUSTOM_FAKE_SEQ_VARIABLES" + indent { + putd_backslash "int custom_fake_seq_len;" + putd_backslash "int custom_fake_seq_idx;" + } end def define_increment_call_count_helper - putd "" - putd "#define INCREMENT_CALL_COUNT(FUNCNAME) \\" - putd " FUNCNAME##_fake.call_count++" + puts + putd_backslash "#define INCREMENT_CALL_COUNT(FUNCNAME)" + indent { + putd "FUNCNAME##_fake.call_count++" + } end def define_return_fake_result_helper - putd "" - 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 " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++]; \\" - putd " } \\" - putd " return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */ \\" - putd " } \\" - putd " return FUNCNAME##_fake.return_val; \\" + puts + putd_backslash "#define RETURN_FAKE_RESULT(FUNCNAME)" + indent { + putd_backslash "if (FUNCNAME##_fake.return_val_seq_len){ /* then its a sequence */" + indent { + putd_backslash "if(FUNCNAME##_fake.return_val_seq_idx < FUNCNAME##_fake.return_val_seq_len) {" + indent { + putd_backslash "SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx])" + putd_backslash "return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_idx++];" + } + putd_backslash "}" + putd_backslash "SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1])" + putd_backslash "return FUNCNAME##_fake.return_val_seq[FUNCNAME##_fake.return_val_seq_len-1]; /* return last element */" + } + putd_backslash "}" + putd_backslash "SAVE_RET_HISTORY(FUNCNAME, FUNCNAME##_fake.return_val)" + putd_backslash "return FUNCNAME##_fake.return_val;" + } end def define_extern_c_helper - putd "" + puts putd "#ifdef __cplusplus" - putd " #define FFF_EXTERN_C extern \"C\"{" - putd " #define FFF_END_EXTERN_C } " + indent { + putd "#define FFF_EXTERN_C extern \"C\"{" + putd "#define FFF_END_EXTERN_C } " + } putd "#else /* ansi c */" - putd " #define FFF_EXTERN_C " - putd " #define FFF_END_EXTERN_C " + indent { + putd "#define FFF_EXTERN_C " + putd "#define FFF_END_EXTERN_C " + } putd "#endif /* cpp/ansi c */" end def define_reset_fake_helper - putd "" - putd "#define DEFINE_RESET_FUNCTION(FUNCNAME) \\" - putd " void FUNCNAME##_reset(void){ \\" - putd " memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\" - putd " FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\" - putd " }" + puts + putd_backslash "#define DEFINE_RESET_FUNCTION(FUNCNAME)" + indent { + putd_backslash "void FUNCNAME##_reset(void){" + indent { + putd_backslash "memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake));" + putd_backslash "FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;" + } + putd "}" + } end # ------ End Helper macros ------ # @@ -174,6 +240,11 @@ def putd(str) puts str end +#multiline putd which adds a \ at the end of the generated macro +def putd_backslash str + putd(str + " \\") +end + def pushd $current_depth = $current_depth + 4 end @@ -182,6 +253,12 @@ def popd $current_depth = $current_depth - 4 end +def indent + pushd + yield + popd +end + def output_macro(arg_count, has_varargs, is_value_function) vararg_name = has_varargs ? "_VARARG" : "" @@ -191,36 +268,36 @@ def output_macro(arg_count, has_varargs, is_value_function) saved_arg_count = arg_count - (has_varargs ? 1 : 0) return_type = is_value_function ? "RETURN_TYPE" : "" - putd "" + puts output_macro_header(declare_macro_name, saved_arg_count, has_varargs, return_type) - pushd + indent { extern_c { # define argument capture variables output_variables(saved_arg_count, has_varargs, is_value_function) } - popd - - putd "" + } + + puts output_macro_header(define_macro_name, saved_arg_count, has_varargs, return_type) - pushd + indent { extern_c { - putd "FUNCNAME##_Fake FUNCNAME##_fake;\\" - putd function_signature(saved_arg_count, has_varargs, is_value_function) + "{ \\" - pushd + putd_backslash "FUNCNAME##_Fake FUNCNAME##_fake;" + putd_backslash function_signature(saved_arg_count, has_varargs, is_value_function) + "{" + indent { output_function_body(saved_arg_count, has_varargs, is_value_function) - popd - putd "} \\" - putd "DEFINE_RESET_FUNCTION(FUNCNAME) \\" + } + putd_backslash "}" + putd_backslash "DEFINE_RESET_FUNCTION(FUNCNAME)" } - popd - - putd "" - + } + + puts + output_macro_header(fake_macro_name, saved_arg_count, has_varargs, return_type) - pushd + indent { putd macro_signature_for(declare_macro_name, saved_arg_count, has_varargs, return_type) putd macro_signature_for(define_macro_name, saved_arg_count, has_varargs, return_type) - putd "" - popd + puts + } end def output_macro_header(macro_name, arg_count, has_varargs, return_type) @@ -232,7 +309,7 @@ def output_macro_name(macro_name, arg_count, has_varargs, return_type) putd "#define " + macro_signature_for(macro_name, arg_count, has_varargs, return_type) end -# #macro_name(RETURN_TYPE, FUNCNAME, ARG0,...) +# #macro_name(RETURN_TYPE, FUNCNAME, ARG0,...) \ def macro_signature_for(macro_name, arg_count, has_varargs, return_type) parameter_list = "#{macro_name}(" if return_type != "" @@ -250,23 +327,21 @@ def macro_signature_for(macro_name, arg_count, has_varargs, return_type) parameter_list end -def output_argument_capture_variables(argN) - putd " DECLARE_ARG(ARG#{argN}_TYPE, #{argN}, FUNCNAME) \\" -end - def output_variables(arg_count, has_varargs, is_value_function) in_struct{ - arg_count.times { |argN| - putd "DECLARE_ARG(ARG#{argN}_TYPE, #{argN}, FUNCNAME) \\" + arg_count.times { |argN| + putd_backslash "DECLARE_ARG(ARG#{argN}_TYPE, #{argN}, FUNCNAME)" } - putd "DECLARE_ALL_FUNC_COMMON \\" - putd "DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE) \\" unless not is_value_function - putd "DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \\" + putd_backslash "DECLARE_ALL_FUNC_COMMON" + putd_backslash "DECLARE_VALUE_FUNCTION_VARIABLES(RETURN_TYPE)" unless not is_value_function + putd_backslash "DECLARE_RETURN_VALUE_HISTORY(RETURN_TYPE)" unless not is_value_function + putd_backslash "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) } - putd "extern FUNCNAME##_Fake FUNCNAME##_fake;\\" - putd "void FUNCNAME##_reset(void); \\" + putd_backslash "extern FUNCNAME##_Fake FUNCNAME##_fake;" + putd_backslash "void FUNCNAME##_reset(void);" + putd_backslash function_signature(arg_count, has_varargs, is_value_function) + ";" end #example: ARG0_TYPE arg0, ARG1_TYPE arg1 @@ -289,15 +364,15 @@ end def output_custom_function_signature(arg_count, has_varargs, is_value_function) return_type = is_value_function ? "RETURN_TYPE" : "void" ap_list = has_varargs ? ", va_list ap" : "" - signature = "(*custom_fake)(#{arg_val_list(arg_count)}#{ap_list}); \\" - putd return_type + signature + signature = "(*custom_fake)(#{arg_val_list(arg_count)}#{ap_list});" + putd_backslash return_type + signature end def output_custom_function_array(arg_count, has_varargs, is_value_function) return_type = is_value_function ? "RETURN_TYPE" : "void" ap_list = has_varargs ? ", va_list ap" : "" - custom_array = "(**custom_fake_seq)(#{arg_val_list(arg_count)}#{ap_list}); \\" - putd return_type + custom_array + custom_array = "(**custom_fake_seq)(#{arg_val_list(arg_count)}#{ap_list});" + putd_backslash return_type + custom_array end # example: RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1) @@ -308,100 +383,124 @@ def function_signature(arg_count, has_varargs, is_value_function) end def output_function_body(arg_count, has_varargs, is_value_function) - arg_count.times { |i| putd "SAVE_ARG(FUNCNAME, #{i}); \\" } - putd "if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\\" - arg_count.times { |i| putd " SAVE_ARG_HISTORY(FUNCNAME, #{i}); \\" } - putd "}\\" - putd "else{\\" - putd " HISTORY_DROPPED(FUNCNAME);\\" - putd "}\\" - putd "INCREMENT_CALL_COUNT(FUNCNAME); \\" - putd "REGISTER_CALL(FUNCNAME); \\" + arg_count.times { |i| putd_backslash "SAVE_ARG(FUNCNAME, #{i});" } + putd_backslash "if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){" + indent { + arg_count.times { |i| putd_backslash "SAVE_ARG_HISTORY(FUNCNAME, #{i});" } + } + putd_backslash "}" + putd_backslash "else{" + indent { + putd_backslash "HISTORY_DROPPED(FUNCNAME);" + } + putd_backslash "}" + putd_backslash "INCREMENT_CALL_COUNT(FUNCNAME);" + putd_backslash "REGISTER_CALL(FUNCNAME);" if has_varargs - putd "if(FUNCNAME##_fake.custom_fake){\\" - putd " RETURN_TYPE ret;\\" if is_value_function - putd " va_list ap;\\" - putd " va_start(ap, arg#{arg_count-1});\\" + putd_backslash "if(FUNCNAME##_fake.custom_fake){" + indent { + putd_backslash "RETURN_TYPE ret;" if is_value_function + putd_backslash "va_list ap;" + putd_backslash "va_start(ap, arg#{arg_count-1});" + } custom_fake_call = "FUNCNAME##_fake.custom_fake(#{arg_list(arg_count)}, ap);" - if is_value_function - putd " ret = #{custom_fake_call}\\" - else - putd " #{custom_fake_call}\\" - end - putd " va_end(ap);\\" - putd " return ret;\\" if is_value_function - putd "}\\" + indent { + if is_value_function + putd_backslash "ret = #{custom_fake_call}" + else + putd_backslash "#{custom_fake_call}" + end + putd_backslash "va_end(ap);" + putd_backslash "SAVE_RET_HISTORY(FUNCNAME, ret);" unless not is_value_function + putd_backslash "return ret;" if is_value_function + } + putd_backslash "}" 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 " } \\" - putd " else{ \\" - putd " #{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](#{arg_list(arg_count)}); \\" - putd " } \\" - putd "} \\" - putd "if (FUNCNAME##_fake.custom_fake) #{return_type}FUNCNAME##_fake.custom_fake(#{arg_list(arg_count)}); \\" + putd_backslash "if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */" + indent { + putd_backslash "if (FUNCNAME##_fake.custom_fake_seq_idx < FUNCNAME##_fake.custom_fake_seq_len){" + indent { + putd_backslash "RETURN_TYPE ret = FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](#{arg_list(arg_count)});" unless not is_value_function + putd_backslash "SAVE_RET_HISTORY(FUNCNAME, ret);" unless not is_value_function + putd_backslash "return ret;" unless not is_value_function + putd_backslash "#{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_idx++](#{arg_list(arg_count)});" unless is_value_function + } + putd_backslash "}" + putd_backslash "else{" + indent { + putd_backslash "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_backslash "SAVE_RET_HISTORY(FUNCNAME, ret);" unless not is_value_function + putd_backslash "return ret;" unless not is_value_function + putd_backslash "#{return_type}FUNCNAME##_fake.custom_fake_seq[FUNCNAME##_fake.custom_fake_seq_len-1](#{arg_list(arg_count)});" + } + putd_backslash "}" + } + putd_backslash "}" + putd_backslash "if (FUNCNAME##_fake.custom_fake) #{return_type}FUNCNAME##_fake.custom_fake(#{arg_list(arg_count)});" end - putd "RETURN_FAKE_RESULT(FUNCNAME) \\" if is_value_function -end - -def output_reset_function(arg_count, is_value_function) - putd "void FUNCNAME##_reset(void){ \\" - putd " memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \\" - putd " FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\\" - putd "} \\" + putd_backslash "RETURN_FAKE_RESULT(FUNCNAME)" if is_value_function end def define_fff_globals putd "typedef void (*fff_function_t)(void);" putd "typedef struct { " - putd " fff_function_t call_history[FFF_CALL_HISTORY_LEN];" - putd " unsigned int call_history_idx;" + indent { + putd "fff_function_t call_history[FFF_CALL_HISTORY_LEN];" + putd "unsigned int call_history_idx;" + } putd "} fff_globals_t;" - putd "" - putd "FFF_EXTERN_C \\" + puts + putd_backslash "FFF_EXTERN_C" putd "extern fff_globals_t fff;" - putd "FFF_END_EXTERN_C \\" - putd "" - putd "#define DEFINE_FFF_GLOBALS \\" - putd " FFF_EXTERN_C \\" - putd " fff_globals_t fff; \\" - putd " FFF_END_EXTERN_C" - putd "" + putd_backslash "FFF_END_EXTERN_C" + puts + putd_backslash "#define DEFINE_FFF_GLOBALS" + indent { + putd_backslash "FFF_EXTERN_C" + indent { + putd_backslash "fff_globals_t fff;" + } + putd "FFF_END_EXTERN_C" + } + puts putd "#define FFF_RESET_HISTORY() fff.call_history_idx = 0;" - putd "" - putd "#define REGISTER_CALL(function) \\" - putd " if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \\" - putd " fff.call_history[fff.call_history_idx++] = (fff_function_t)function;" + puts + putd_backslash "#define REGISTER_CALL(function)" + indent { + putd_backslash "if(fff.call_history_idx < FFF_CALL_HISTORY_LEN)" + indent { + putd "fff.call_history[fff.call_history_idx++] = (fff_function_t)function;" + } + } end def extern_c - putd "FFF_EXTERN_C \\" - pushd + putd_backslash "FFF_EXTERN_C" + indent { yield - popd - putd "FFF_END_EXTERN_C \\" + } + putd_backslash "FFF_END_EXTERN_C" end def in_struct - putd "typedef struct FUNCNAME##_Fake { \\" - pushd - yield - popd - putd "} FUNCNAME##_Fake;\\" + putd_backslash "typedef struct FUNCNAME##_Fake {" + indent { + yield + } + putd_backslash "} FUNCNAME##_Fake;" end def include_guard putd "#ifndef FAKE_FUNCTIONS" putd "#define FAKE_FUNCTIONS" - putd "" + puts yield - putd "" + puts putd "#endif /* FAKE_FUNCTIONS */" end diff --git a/fff.h b/fff.h index 28d6b79..230144e 100644 --- a/fff.h +++ b/fff.h @@ -34,15 +34,15 @@ SOFTWARE. #define FFF_ARG_HISTORY_LEN (50u) #endif #ifndef FFF_CALL_HISTORY_LEN - #define FFF_CALL_HISTORY_LEN (50u) + #define FFF_CALL_HISTORY_LEN (50u) #endif /* -- INTERNAL HELPER MACROS -- */ #define SET_RETURN_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ - FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \ - FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN; + FUNCNAME##_fake.return_val_seq = ARRAY_POINTER; \ + FUNCNAME##_fake.return_val_seq_len = ARRAY_LEN; #define SET_CUSTOM_FAKE_SEQ(FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ - FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \ - FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN; + FUNCNAME##_fake.custom_fake_seq = ARRAY_POINTER; \ + FUNCNAME##_fake.custom_fake_seq_len = ARRAY_LEN; /* Defining a function to reset a fake function */ #define RESET_FAKE(FUNCNAME) { \ @@ -56,14 +56,21 @@ SOFTWARE. #define DECLARE_ALL_FUNC_COMMON \ unsigned int call_count; \ - unsigned int arg_history_len;\ + 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 + 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,29 +94,32 @@ 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 #define FFF_EXTERN_C extern "C"{ - #define FFF_END_EXTERN_C } + #define FFF_END_EXTERN_C } #else /* ansi c */ - #define FFF_EXTERN_C - #define FFF_END_EXTERN_C + #define FFF_EXTERN_C + #define FFF_END_EXTERN_C #endif /* cpp/ansi c */ #define DEFINE_RESET_FUNCTION(FUNCNAME) \ void FUNCNAME##_reset(void){ \ memset(&FUNCNAME##_fake, 0, sizeof(FUNCNAME##_fake)); \ - FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN;\ + FUNCNAME##_fake.arg_history_len = FFF_ARG_HISTORY_LEN; \ } /* -- END INTERNAL HELPER MACROS -- */ typedef void (*fff_function_t)(void); -typedef struct { +typedef struct { fff_function_t call_history[FFF_CALL_HISTORY_LEN]; unsigned int call_history_idx; } fff_globals_t; @@ -126,8 +136,8 @@ FFF_END_EXTERN_C \ #define FFF_RESET_HISTORY() fff.call_history_idx = 0; #define REGISTER_CALL(function) \ - if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \ - fff.call_history[fff.call_history_idx++] = (fff_function_t)function; + if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \ + fff.call_history[fff.call_history_idx++] = (fff_function_t)function; #define DECLARE_FAKE_VOID_FUNC0(FUNCNAME) \ FFF_EXTERN_C \ @@ -136,20 +146,21 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(void); \ void(**custom_fake_seq)(void); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(void); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC0(FUNCNAME) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(void){ \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -168,7 +179,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC0(FUNCNAME) \ DECLARE_FAKE_VOID_FUNC0(FUNCNAME) \ DEFINE_FAKE_VOID_FUNC0(FUNCNAME) \ - + #define DECLARE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ FFF_EXTERN_C \ @@ -178,22 +189,23 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0); \ void(**custom_fake_seq)(ARG0_TYPE arg0); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0){ \ SAVE_ARG(FUNCNAME, 0); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -212,7 +224,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ DECLARE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ DEFINE_FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ FFF_EXTERN_C \ @@ -223,24 +235,25 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -259,7 +272,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DECLARE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DEFINE_FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ FFF_EXTERN_C \ @@ -271,26 +284,27 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -309,7 +323,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DECLARE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DEFINE_FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ FFF_EXTERN_C \ @@ -322,28 +336,29 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -362,7 +377,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DECLARE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DEFINE_FAKE_VOID_FUNC4(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ FFF_EXTERN_C \ @@ -376,30 +391,31 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -418,7 +434,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DECLARE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DEFINE_FAKE_VOID_FUNC5(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ FFF_EXTERN_C \ @@ -433,14 +449,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -448,17 +465,17 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -477,7 +494,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DECLARE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DEFINE_FAKE_VOID_FUNC6(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ FFF_EXTERN_C \ @@ -493,14 +510,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -509,7 +527,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -517,10 +535,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -539,7 +557,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DECLARE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DEFINE_FAKE_VOID_FUNC7(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ FFF_EXTERN_C \ @@ -556,14 +574,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -573,7 +592,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -582,10 +601,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -604,7 +623,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DECLARE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DEFINE_FAKE_VOID_FUNC8(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ FFF_EXTERN_C \ @@ -622,14 +641,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -640,7 +660,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -650,10 +670,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -672,7 +692,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DECLARE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DEFINE_FAKE_VOID_FUNC9(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ FFF_EXTERN_C \ @@ -691,14 +711,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -710,7 +731,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -721,10 +742,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -743,7 +764,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DECLARE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DEFINE_FAKE_VOID_FUNC10(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ FFF_EXTERN_C \ @@ -763,14 +784,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -783,7 +805,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -795,10 +817,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -817,7 +839,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DECLARE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DEFINE_FAKE_VOID_FUNC11(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ FFF_EXTERN_C \ @@ -838,14 +860,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -859,7 +882,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -872,10 +895,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -894,7 +917,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DECLARE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DEFINE_FAKE_VOID_FUNC12(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ FFF_EXTERN_C \ @@ -916,14 +939,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -938,7 +962,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -952,10 +976,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -974,7 +998,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DECLARE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DEFINE_FAKE_VOID_FUNC13(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ FFF_EXTERN_C \ @@ -997,14 +1021,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1020,7 +1045,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -1035,10 +1060,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -1057,7 +1082,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DECLARE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DEFINE_FAKE_VOID_FUNC14(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ FFF_EXTERN_C \ @@ -1081,14 +1106,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1105,7 +1131,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -1121,10 +1147,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -1143,7 +1169,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DECLARE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DEFINE_FAKE_VOID_FUNC15(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ FFF_EXTERN_C \ @@ -1168,14 +1194,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1193,7 +1220,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -1210,10 +1237,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -1232,7 +1259,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DECLARE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DEFINE_FAKE_VOID_FUNC16(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ FFF_EXTERN_C \ @@ -1258,14 +1285,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1284,7 +1312,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -1302,10 +1330,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -1324,7 +1352,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DECLARE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DEFINE_FAKE_VOID_FUNC17(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ FFF_EXTERN_C \ @@ -1351,14 +1379,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1378,7 +1407,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -1397,10 +1426,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -1419,7 +1448,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DECLARE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DEFINE_FAKE_VOID_FUNC18(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ FFF_EXTERN_C \ @@ -1447,14 +1476,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1475,7 +1505,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ SAVE_ARG(FUNCNAME, 18); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -1495,10 +1525,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ SAVE_ARG_HISTORY(FUNCNAME, 18); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -1517,7 +1547,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DECLARE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DEFINE_FAKE_VOID_FUNC19(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ FFF_EXTERN_C \ @@ -1546,14 +1576,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1575,7 +1606,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 17); \ SAVE_ARG(FUNCNAME, 18); \ SAVE_ARG(FUNCNAME, 19); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -1596,10 +1627,10 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ SAVE_ARG_HISTORY(FUNCNAME, 18); \ SAVE_ARG_HISTORY(FUNCNAME, 19); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ if (FUNCNAME##_fake.custom_fake_seq_len){ /* a sequence of custom fakes */ \ @@ -1618,42 +1649,49 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DECLARE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DEFINE_FAKE_VOID_FUNC20(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ FFF_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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(void); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(void){ \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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](); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -1661,7 +1699,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ DECLARE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ DEFINE_FAKE_VALUE_FUNC0(RETURN_TYPE, FUNCNAME) \ - + #define DECLARE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ FFF_EXTERN_C \ @@ -1669,37 +1707,44 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0){ \ SAVE_ARG(FUNCNAME, 0); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -1707,7 +1752,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ DECLARE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ DEFINE_FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ FFF_EXTERN_C \ @@ -1716,39 +1761,46 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -1756,7 +1808,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DECLARE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ DEFINE_FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ FFF_EXTERN_C \ @@ -1766,41 +1818,48 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -1808,7 +1867,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DECLARE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ DEFINE_FAKE_VALUE_FUNC3(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ FFF_EXTERN_C \ @@ -1819,43 +1878,50 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -1863,7 +1929,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DECLARE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ DEFINE_FAKE_VALUE_FUNC4(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ FFF_EXTERN_C \ @@ -1875,45 +1941,52 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -1921,7 +1994,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DECLARE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ DEFINE_FAKE_VALUE_FUNC5(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ FFF_EXTERN_C \ @@ -1934,17 +2007,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -1952,29 +2027,34 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -1982,7 +2062,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DECLARE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ DEFINE_FAKE_VALUE_FUNC6(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ FFF_EXTERN_C \ @@ -1996,17 +2076,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2015,7 +2097,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2023,22 +2105,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2046,7 +2133,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DECLARE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ DEFINE_FAKE_VALUE_FUNC7(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ FFF_EXTERN_C \ @@ -2061,17 +2148,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2081,7 +2170,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2090,22 +2179,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2113,7 +2207,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DECLARE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ DEFINE_FAKE_VALUE_FUNC8(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ FFF_EXTERN_C \ @@ -2129,17 +2223,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2150,7 +2246,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2160,22 +2256,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2183,7 +2284,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DECLARE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ DEFINE_FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ FFF_EXTERN_C \ @@ -2200,17 +2301,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2222,7 +2325,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2233,22 +2336,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2256,7 +2364,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DECLARE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ DEFINE_FAKE_VALUE_FUNC10(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ FFF_EXTERN_C \ @@ -2274,17 +2382,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2297,7 +2407,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2309,22 +2419,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2332,7 +2447,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DECLARE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ DEFINE_FAKE_VALUE_FUNC11(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ FFF_EXTERN_C \ @@ -2351,17 +2466,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2375,7 +2492,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2388,22 +2505,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2411,7 +2533,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DECLARE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ DEFINE_FAKE_VALUE_FUNC12(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ FFF_EXTERN_C \ @@ -2431,17 +2553,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2456,7 +2580,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2470,22 +2594,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2493,7 +2622,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DECLARE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ DEFINE_FAKE_VALUE_FUNC13(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ FFF_EXTERN_C \ @@ -2514,17 +2643,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2540,7 +2671,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2555,22 +2686,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2578,7 +2714,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DECLARE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ DEFINE_FAKE_VALUE_FUNC14(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ FFF_EXTERN_C \ @@ -2600,17 +2736,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2627,7 +2765,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2643,22 +2781,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2666,7 +2809,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DECLARE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ DEFINE_FAKE_VALUE_FUNC15(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ FFF_EXTERN_C \ @@ -2689,17 +2832,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2717,7 +2862,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2734,22 +2879,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2757,7 +2907,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DECLARE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ DEFINE_FAKE_VALUE_FUNC16(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ FFF_EXTERN_C \ @@ -2781,17 +2931,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2810,7 +2962,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2828,22 +2980,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2851,7 +3008,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DECLARE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ DEFINE_FAKE_VALUE_FUNC17(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ FFF_EXTERN_C \ @@ -2876,17 +3033,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -2906,7 +3065,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -2925,22 +3084,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -2948,7 +3112,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DECLARE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ DEFINE_FAKE_VALUE_FUNC18(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ FFF_EXTERN_C \ @@ -2974,17 +3138,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3005,7 +3171,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ SAVE_ARG(FUNCNAME, 18); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3025,22 +3191,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ SAVE_ARG_HISTORY(FUNCNAME, 18); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3048,7 +3219,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DECLARE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ DEFINE_FAKE_VALUE_FUNC19(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE) \ - + #define DECLARE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ FFF_EXTERN_C \ @@ -3075,17 +3246,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3107,7 +3280,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 17); \ SAVE_ARG(FUNCNAME, 18); \ SAVE_ARG(FUNCNAME, 19); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3128,22 +3301,27 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ SAVE_ARG_HISTORY(FUNCNAME, 18); \ SAVE_ARG_HISTORY(FUNCNAME, 19); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ 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); \ } \ } \ if (FUNCNAME##_fake.custom_fake) return FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19); \ - RETURN_FAKE_RESULT(FUNCNAME) \ + RETURN_FAKE_RESULT(FUNCNAME) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3151,7 +3329,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DECLARE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ DEFINE_FAKE_VALUE_FUNC20(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ARG19_TYPE) \ - + #define DECLARE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ FFF_EXTERN_C \ @@ -3161,30 +3339,31 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, va_list ap); \ void(**custom_fake_seq)(ARG0_TYPE arg0, va_list ap); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ...){ \ SAVE_ARG(FUNCNAME, 0); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg0);\ - FUNCNAME##_fake.custom_fake(arg0, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg0); \ + FUNCNAME##_fake.custom_fake(arg0, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3192,7 +3371,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC2_VARARG(FUNCNAME, ARG0_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ FFF_EXTERN_C \ @@ -3203,32 +3382,33 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, va_list ap); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg1);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg1); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3236,7 +3416,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC3_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ FFF_EXTERN_C \ @@ -3248,34 +3428,35 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, va_list ap); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg2);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg2); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3283,7 +3464,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC4_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ FFF_EXTERN_C \ @@ -3296,36 +3477,37 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, va_list ap); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg3);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg3); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3333,7 +3515,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC5_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ FFF_EXTERN_C \ @@ -3347,38 +3529,39 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, va_list ap); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg4);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg4); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3386,7 +3569,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC6_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ FFF_EXTERN_C \ @@ -3401,14 +3584,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*custom_fake)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \ void(**custom_fake_seq)(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, va_list ap); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3416,25 +3600,25 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg5);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg5); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3442,7 +3626,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC7_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ FFF_EXTERN_C \ @@ -3458,14 +3642,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3474,7 +3659,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3482,18 +3667,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg6);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg6); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3501,7 +3686,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC8_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ FFF_EXTERN_C \ @@ -3518,14 +3703,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3535,7 +3721,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3544,18 +3730,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg7);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg7); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3563,7 +3749,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC9_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ FFF_EXTERN_C \ @@ -3581,14 +3767,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3599,7 +3786,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3609,18 +3796,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg8);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg8); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3628,7 +3815,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC10_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ FFF_EXTERN_C \ @@ -3647,14 +3834,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3666,7 +3854,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3677,18 +3865,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg9);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg9); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3696,7 +3884,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC11_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ FFF_EXTERN_C \ @@ -3716,14 +3904,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3736,7 +3925,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3748,18 +3937,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg10);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg10); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3767,7 +3956,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC12_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ FFF_EXTERN_C \ @@ -3788,14 +3977,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3809,7 +3999,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3822,18 +4012,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg11);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg11); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3841,7 +4031,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC13_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FFF_EXTERN_C \ @@ -3863,14 +4053,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3885,7 +4076,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3899,18 +4090,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg12);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg12); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3918,7 +4109,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC14_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ FFF_EXTERN_C \ @@ -3941,14 +4132,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -3964,7 +4156,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -3979,18 +4171,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg13);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg13); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -3998,7 +4190,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC15_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ FFF_EXTERN_C \ @@ -4022,14 +4214,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4046,7 +4239,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4062,18 +4255,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg14);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg14); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4081,7 +4274,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC16_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ FFF_EXTERN_C \ @@ -4106,14 +4299,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4131,7 +4325,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4148,18 +4342,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg15);\ - FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap);\ - va_end(ap);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg15); \ + FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, ap); \ + va_end(ap); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4167,7 +4361,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC17_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ FFF_EXTERN_C \ @@ -4193,14 +4387,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4219,7 +4414,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4237,18 +4432,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg16);\ - 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);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg16); \ + 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); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4256,7 +4451,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC18_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ FFF_EXTERN_C \ @@ -4283,14 +4478,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4310,7 +4506,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4329,18 +4525,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg17);\ - 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);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg17); \ + 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); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4348,7 +4544,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC19_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ - + #define DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FFF_EXTERN_C \ @@ -4376,14 +4572,15 @@ FFF_END_EXTERN_C \ DECLARE_CUSTOM_FAKE_SEQ_VARIABLES \ void(*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); \ void(**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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + void FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4404,7 +4601,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ SAVE_ARG(FUNCNAME, 18); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4424,18 +4621,18 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ SAVE_ARG_HISTORY(FUNCNAME, 18); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - va_list ap;\ - va_start(ap, arg18);\ - 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);\ - }\ + if(FUNCNAME##_fake.custom_fake){ \ + va_list ap; \ + va_start(ap, arg18); \ + 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); \ + } \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4443,7 +4640,7 @@ FFF_END_EXTERN_C \ #define FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DECLARE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DEFINE_FAKE_VOID_FUNC20_VARARG(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ FFF_EXTERN_C \ @@ -4451,36 +4648,39 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ...){ \ SAVE_ARG(FUNCNAME, 0); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg0);\ - ret = FUNCNAME##_fake.custom_fake(arg0, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4488,7 +4688,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC2_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ FFF_EXTERN_C \ @@ -4497,38 +4697,41 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg1);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4536,7 +4739,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC3_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ FFF_EXTERN_C \ @@ -4546,40 +4749,43 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg2);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4587,7 +4793,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC4_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ FFF_EXTERN_C \ @@ -4598,42 +4804,45 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg3);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4641,7 +4850,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC5_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ FFF_EXTERN_C \ @@ -4653,44 +4862,47 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ SAVE_ARG(FUNCNAME, 2); \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg4);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4698,7 +4910,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC6_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ FFF_EXTERN_C \ @@ -4711,17 +4923,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4729,28 +4943,29 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 3); \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ SAVE_ARG_HISTORY(FUNCNAME, 3); \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg5);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4758,7 +4973,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC7_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ FFF_EXTERN_C \ @@ -4772,17 +4987,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4791,7 +5008,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 4); \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4799,21 +5016,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 4); \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg6);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4821,7 +5039,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC8_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ FFF_EXTERN_C \ @@ -4836,17 +5054,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6, ARG7_TYPE arg7, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4856,7 +5076,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 5); \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4865,21 +5085,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 5); \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg7);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4887,7 +5108,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC9_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ FFF_EXTERN_C \ @@ -4903,17 +5124,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4924,7 +5147,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 6); \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -4934,21 +5157,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 6); \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg8);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -4956,7 +5180,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC10_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ FFF_EXTERN_C \ @@ -4973,17 +5197,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -4995,7 +5221,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 7); \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5006,21 +5232,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 7); \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg9);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5028,7 +5255,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC11_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ FFF_EXTERN_C \ @@ -5046,17 +5273,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5069,7 +5298,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 8); \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5081,21 +5310,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 8); \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - va_start(ap, arg10);\ - ret = FUNCNAME##_fake.custom_fake(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, ap);\ - va_end(ap);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5103,7 +5333,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC12_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ FFF_EXTERN_C \ @@ -5122,17 +5352,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5146,7 +5378,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 9); \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5159,21 +5391,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 9); \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5181,7 +5414,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC13_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FFF_EXTERN_C \ @@ -5201,17 +5434,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5226,7 +5461,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 10); \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5240,21 +5475,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 10); \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5262,7 +5498,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC14_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ FFF_EXTERN_C \ @@ -5283,17 +5519,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5309,7 +5547,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 11); \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5324,21 +5562,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 11); \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5346,7 +5585,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC15_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ FFF_EXTERN_C \ @@ -5368,17 +5607,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5395,7 +5636,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 12); \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5411,21 +5652,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 12); \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5433,7 +5675,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC16_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ FFF_EXTERN_C \ @@ -5456,17 +5698,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5484,7 +5728,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 13); \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5501,21 +5745,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 13); \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5523,7 +5768,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC17_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ FFF_EXTERN_C \ @@ -5547,17 +5792,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5576,7 +5823,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 14); \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5594,21 +5841,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 14); \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5616,7 +5864,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC18_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ FFF_EXTERN_C \ @@ -5641,17 +5889,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5671,7 +5921,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 15); \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5690,21 +5940,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 15); \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5712,7 +5963,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC19_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ...) \ - + #define DECLARE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FFF_EXTERN_C \ @@ -5738,17 +5989,19 @@ 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); \ - } FUNCNAME##_Fake;\ - extern FUNCNAME##_Fake FUNCNAME##_fake;\ + } FUNCNAME##_Fake; \ + extern FUNCNAME##_Fake FUNCNAME##_fake; \ void FUNCNAME##_reset(void); \ + RETURN_TYPE FUNCNAME(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, ...); \ FFF_END_EXTERN_C \ #define DEFINE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ FFF_EXTERN_C \ - FUNCNAME##_Fake FUNCNAME##_fake;\ + FUNCNAME##_Fake FUNCNAME##_fake; \ RETURN_TYPE FUNCNAME(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, ...){ \ SAVE_ARG(FUNCNAME, 0); \ SAVE_ARG(FUNCNAME, 1); \ @@ -5769,7 +6022,7 @@ FFF_END_EXTERN_C \ SAVE_ARG(FUNCNAME, 16); \ SAVE_ARG(FUNCNAME, 17); \ SAVE_ARG(FUNCNAME, 18); \ - if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){\ + if(ROOM_FOR_MORE_HISTORY(FUNCNAME)){ \ SAVE_ARG_HISTORY(FUNCNAME, 0); \ SAVE_ARG_HISTORY(FUNCNAME, 1); \ SAVE_ARG_HISTORY(FUNCNAME, 2); \ @@ -5789,21 +6042,22 @@ FFF_END_EXTERN_C \ SAVE_ARG_HISTORY(FUNCNAME, 16); \ SAVE_ARG_HISTORY(FUNCNAME, 17); \ SAVE_ARG_HISTORY(FUNCNAME, 18); \ - }\ - else{\ - HISTORY_DROPPED(FUNCNAME);\ - }\ + } \ + else{ \ + HISTORY_DROPPED(FUNCNAME); \ + } \ INCREMENT_CALL_COUNT(FUNCNAME); \ REGISTER_CALL(FUNCNAME); \ - if(FUNCNAME##_fake.custom_fake){\ - RETURN_TYPE ret;\ - va_list ap;\ - 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);\ - return ret;\ - }\ - RETURN_FAKE_RESULT(FUNCNAME) \ + if(FUNCNAME##_fake.custom_fake){ \ + RETURN_TYPE ret; \ + va_list ap; \ + 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) \ } \ DEFINE_RESET_FUNCTION(FUNCNAME) \ FFF_END_EXTERN_C \ @@ -5811,7 +6065,7 @@ FFF_END_EXTERN_C \ #define FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DECLARE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ DEFINE_FAKE_VALUE_FUNC20_VARARG(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE, ARG9_TYPE, ARG10_TYPE, ARG11_TYPE, ARG12_TYPE, ARG13_TYPE, ARG14_TYPE, ARG15_TYPE, ARG16_TYPE, ARG17_TYPE, ARG18_TYPE, ...) \ - + /* MSVC expand macro fix */ #define EXPAND(x) x diff --git a/test/global_fakes.h b/test/global_fakes.h index 3d02d52..6c26f07 100644 --- a/test/global_fakes.h +++ b/test/global_fakes.h @@ -7,15 +7,6 @@ //// Imaginary production code header file /// -void voidfunc1(int); -void voidfunc2(char, char); -void voidfunc1outparam(char *); -long longfunc0(); -void voidfunc3var(const char *fmt, int argc, ...); -int valuefunc3var(const char *fmt, int argc, ...); -void voidfunc20(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); -int valuefunc20(int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); - enum MYBOOL { FALSE = 899, TRUE }; struct MyStruct { int x; @@ -37,7 +28,6 @@ DECLARE_FAKE_VOID_FUNC(voidfunc20, int, int, int, int, int, int, int, int, int, DECLARE_FAKE_VALUE_FUNC(int, valuefunc20, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int); #ifndef __cplusplus -int strlcpy3(char* const, const char* const, const size_t); DECLARE_FAKE_VALUE_FUNC(int, strlcpy3, char* const, const char* const, const size_t); #endif /* __cplusplus */ #endif /* GLOBAL_FAKES_H_ */ diff --git a/test/test_cases.include b/test/test_cases.include index 9ceed49..de84a5e 100644 --- a/test/test_cases.include +++ b/test/test_cases.include @@ -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, @@ -299,6 +357,11 @@ TEST_F(FFFTestSuite, use_void_vararg_fake_with_different_number_of_arguments) voidfunc3var("1 parameter", 1, 10); voidfunc3var("2 parameters", 2, 10, 20); voidfunc3var("3 parameters", 3, 10, 20, 30); + + ASSERT_EQ(voidfunc3var_fake.call_count, 4); + char msg[] = "3 parameters"; + ASSERT_EQ(strcmp(voidfunc3var_fake.arg0_val, msg), 0); + ASSERT_EQ(3, voidfunc3var_fake.arg1_val); } TEST_F(FFFTestSuite, use_value_vararg_fake_with_different_number_of_arguments) @@ -307,6 +370,11 @@ TEST_F(FFFTestSuite, use_value_vararg_fake_with_different_number_of_arguments) valuefunc3var("1 parameter", 1, 10); valuefunc3var("2 parameters", 2, 10, 20); valuefunc3var("3 parameters", 3, 10, 20, 30); + + ASSERT_EQ(valuefunc3var_fake.call_count, 4); + char msg[] = "3 parameters"; + ASSERT_EQ(strcmp(valuefunc3var_fake.arg0_val, msg), 0); + ASSERT_EQ(3, valuefunc3var_fake.arg1_val); } #endif /* __cplusplus */