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 7ab1a2a..b59373a 100644 --- a/fff.h +++ b/fff.h @@ -39,15 +39,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) { \ @@ -61,14 +61,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)); @@ -92,29 +99,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; @@ -131,8 +141,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 \ @@ -141,20 +151,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 */ \ @@ -173,7 +184,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 \ @@ -183,22 +194,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 */ \ @@ -217,7 +229,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 \ @@ -228,24 +240,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 */ \ @@ -264,7 +277,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 \ @@ -276,26 +289,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 */ \ @@ -314,7 +328,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 \ @@ -327,28 +341,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 */ \ @@ -367,7 +382,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 \ @@ -381,30 +396,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 */ \ @@ -423,7 +439,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 \ @@ -438,14 +454,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); \ @@ -453,17 +470,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 */ \ @@ -482,7 +499,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 \ @@ -498,14 +515,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); \ @@ -514,7 +532,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); \ @@ -522,10 +540,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 */ \ @@ -544,7 +562,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 \ @@ -561,14 +579,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); \ @@ -578,7 +597,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); \ @@ -587,10 +606,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 */ \ @@ -609,7 +628,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 \ @@ -627,14 +646,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); \ @@ -645,7 +665,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); \ @@ -655,10 +675,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 */ \ @@ -677,7 +697,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 \ @@ -696,14 +716,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); \ @@ -715,7 +736,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); \ @@ -726,10 +747,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 */ \ @@ -748,7 +769,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 \ @@ -768,14 +789,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); \ @@ -788,7 +810,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); \ @@ -800,10 +822,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 */ \ @@ -822,7 +844,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 \ @@ -843,14 +865,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); \ @@ -864,7 +887,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); \ @@ -877,10 +900,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 */ \ @@ -899,7 +922,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 \ @@ -921,14 +944,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); \ @@ -943,7 +967,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); \ @@ -957,10 +981,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 */ \ @@ -979,7 +1003,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 \ @@ -1002,14 +1026,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); \ @@ -1025,7 +1050,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); \ @@ -1040,10 +1065,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 */ \ @@ -1062,7 +1087,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 \ @@ -1086,14 +1111,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); \ @@ -1110,7 +1136,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); \ @@ -1126,10 +1152,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 */ \ @@ -1148,7 +1174,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 \ @@ -1173,14 +1199,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); \ @@ -1198,7 +1225,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); \ @@ -1215,10 +1242,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 */ \ @@ -1237,7 +1264,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 \ @@ -1263,14 +1290,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); \ @@ -1289,7 +1317,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); \ @@ -1307,10 +1335,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 */ \ @@ -1329,7 +1357,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 \ @@ -1356,14 +1384,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); \ @@ -1383,7 +1412,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); \ @@ -1402,10 +1431,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 */ \ @@ -1424,7 +1453,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 \ @@ -1452,14 +1481,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); \ @@ -1480,7 +1510,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); \ @@ -1500,10 +1530,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 */ \ @@ -1522,7 +1552,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 \ @@ -1551,14 +1581,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); \ @@ -1580,7 +1611,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); \ @@ -1601,10 +1632,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 */ \ @@ -1623,42 +1654,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 \ @@ -1666,7 +1704,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 \ @@ -1674,37 +1712,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 \ @@ -1712,7 +1757,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 \ @@ -1721,39 +1766,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 \ @@ -1761,7 +1813,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 \ @@ -1771,41 +1823,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 \ @@ -1813,7 +1872,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 \ @@ -1824,43 +1883,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 \ @@ -1868,7 +1934,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 \ @@ -1880,45 +1946,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 \ @@ -1926,7 +1999,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 \ @@ -1939,17 +2012,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); \ @@ -1957,29 +2032,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 \ @@ -1987,7 +2067,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 \ @@ -2001,17 +2081,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); \ @@ -2020,7 +2102,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); \ @@ -2028,22 +2110,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 \ @@ -2051,7 +2138,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 \ @@ -2066,17 +2153,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); \ @@ -2086,7 +2175,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); \ @@ -2095,22 +2184,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 \ @@ -2118,7 +2212,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 \ @@ -2134,17 +2228,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); \ @@ -2155,7 +2251,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); \ @@ -2165,22 +2261,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 \ @@ -2188,7 +2289,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 \ @@ -2205,17 +2306,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); \ @@ -2227,7 +2330,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); \ @@ -2238,22 +2341,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 \ @@ -2261,7 +2369,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 \ @@ -2279,17 +2387,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); \ @@ -2302,7 +2412,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); \ @@ -2314,22 +2424,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 \ @@ -2337,7 +2452,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 \ @@ -2356,17 +2471,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); \ @@ -2380,7 +2497,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); \ @@ -2393,22 +2510,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 \ @@ -2416,7 +2538,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 \ @@ -2436,17 +2558,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); \ @@ -2461,7 +2585,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); \ @@ -2475,22 +2599,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 \ @@ -2498,7 +2627,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 \ @@ -2519,17 +2648,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); \ @@ -2545,7 +2676,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); \ @@ -2560,22 +2691,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 \ @@ -2583,7 +2719,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 \ @@ -2605,17 +2741,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); \ @@ -2632,7 +2770,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); \ @@ -2648,22 +2786,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 \ @@ -2671,7 +2814,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 \ @@ -2694,17 +2837,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); \ @@ -2722,7 +2867,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); \ @@ -2739,22 +2884,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 \ @@ -2762,7 +2912,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 \ @@ -2786,17 +2936,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); \ @@ -2815,7 +2967,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); \ @@ -2833,22 +2985,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 \ @@ -2856,7 +3013,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 \ @@ -2881,17 +3038,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); \ @@ -2911,7 +3070,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); \ @@ -2930,22 +3089,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 \ @@ -2953,7 +3117,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 \ @@ -2979,17 +3143,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); \ @@ -3010,7 +3176,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); \ @@ -3030,22 +3196,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 \ @@ -3053,7 +3224,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 \ @@ -3080,17 +3251,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); \ @@ -3112,7 +3285,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); \ @@ -3133,22 +3306,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 \ @@ -3156,7 +3334,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 \ @@ -3166,30 +3344,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 \ @@ -3197,7 +3376,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 \ @@ -3208,32 +3387,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 \ @@ -3241,7 +3421,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 \ @@ -3253,34 +3433,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 \ @@ -3288,7 +3469,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 \ @@ -3301,36 +3482,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 \ @@ -3338,7 +3520,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 \ @@ -3352,38 +3534,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 \ @@ -3391,7 +3574,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 \ @@ -3406,14 +3589,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); \ @@ -3421,25 +3605,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 \ @@ -3447,7 +3631,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 \ @@ -3463,14 +3647,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); \ @@ -3479,7 +3664,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); \ @@ -3487,18 +3672,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 \ @@ -3506,7 +3691,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 \ @@ -3523,14 +3708,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); \ @@ -3540,7 +3726,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); \ @@ -3549,18 +3735,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 \ @@ -3568,7 +3754,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 \ @@ -3586,14 +3772,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); \ @@ -3604,7 +3791,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); \ @@ -3614,18 +3801,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 \ @@ -3633,7 +3820,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 \ @@ -3652,14 +3839,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); \ @@ -3671,7 +3859,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); \ @@ -3682,18 +3870,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 \ @@ -3701,7 +3889,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 \ @@ -3721,14 +3909,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); \ @@ -3741,7 +3930,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); \ @@ -3753,18 +3942,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 \ @@ -3772,7 +3961,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 \ @@ -3793,14 +3982,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); \ @@ -3814,7 +4004,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); \ @@ -3827,18 +4017,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 \ @@ -3846,7 +4036,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 \ @@ -3868,14 +4058,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); \ @@ -3890,7 +4081,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); \ @@ -3904,18 +4095,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 \ @@ -3923,7 +4114,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 \ @@ -3946,14 +4137,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); \ @@ -3969,7 +4161,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); \ @@ -3984,18 +4176,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 \ @@ -4003,7 +4195,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 \ @@ -4027,14 +4219,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); \ @@ -4051,7 +4244,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); \ @@ -4067,18 +4260,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 \ @@ -4086,7 +4279,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 \ @@ -4111,14 +4304,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); \ @@ -4136,7 +4330,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); \ @@ -4153,18 +4347,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 \ @@ -4172,7 +4366,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 \ @@ -4198,14 +4392,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); \ @@ -4224,7 +4419,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); \ @@ -4242,18 +4437,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 \ @@ -4261,7 +4456,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 \ @@ -4288,14 +4483,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); \ @@ -4315,7 +4511,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); \ @@ -4334,18 +4530,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 \ @@ -4353,7 +4549,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 \ @@ -4381,14 +4577,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); \ @@ -4409,7 +4606,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); \ @@ -4429,18 +4626,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 \ @@ -4448,7 +4645,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 \ @@ -4456,36 +4653,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 \ @@ -4493,7 +4693,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 \ @@ -4502,38 +4702,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 \ @@ -4541,7 +4744,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 \ @@ -4551,40 +4754,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 \ @@ -4592,7 +4798,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 \ @@ -4603,42 +4809,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 \ @@ -4646,7 +4855,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 \ @@ -4658,44 +4867,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 \ @@ -4703,7 +4915,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 \ @@ -4716,17 +4928,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); \ @@ -4734,28 +4948,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 \ @@ -4763,7 +4978,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 \ @@ -4777,17 +4992,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); \ @@ -4796,7 +5013,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); \ @@ -4804,21 +5021,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 \ @@ -4826,7 +5044,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 \ @@ -4841,17 +5059,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); \ @@ -4861,7 +5081,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); \ @@ -4870,21 +5090,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 \ @@ -4892,7 +5113,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 \ @@ -4908,17 +5129,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); \ @@ -4929,7 +5152,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); \ @@ -4939,21 +5162,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 \ @@ -4961,7 +5185,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 \ @@ -4978,17 +5202,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); \ @@ -5000,7 +5226,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); \ @@ -5011,21 +5237,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 \ @@ -5033,7 +5260,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 \ @@ -5051,17 +5278,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); \ @@ -5074,7 +5303,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); \ @@ -5086,21 +5315,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 \ @@ -5108,7 +5338,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 \ @@ -5127,17 +5357,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); \ @@ -5151,7 +5383,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); \ @@ -5164,21 +5396,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 \ @@ -5186,7 +5419,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 \ @@ -5206,17 +5439,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); \ @@ -5231,7 +5466,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); \ @@ -5245,21 +5480,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 \ @@ -5267,7 +5503,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 \ @@ -5288,17 +5524,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); \ @@ -5314,7 +5552,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); \ @@ -5329,21 +5567,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 \ @@ -5351,7 +5590,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 \ @@ -5373,17 +5612,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); \ @@ -5400,7 +5641,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); \ @@ -5416,21 +5657,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 \ @@ -5438,7 +5680,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 \ @@ -5461,17 +5703,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); \ @@ -5489,7 +5733,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); \ @@ -5506,21 +5750,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 \ @@ -5528,7 +5773,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 \ @@ -5552,17 +5797,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); \ @@ -5581,7 +5828,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); \ @@ -5599,21 +5846,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 \ @@ -5621,7 +5869,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 \ @@ -5646,17 +5894,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); \ @@ -5676,7 +5926,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); \ @@ -5695,21 +5945,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 \ @@ -5717,7 +5968,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 \ @@ -5743,17 +5994,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); \ @@ -5774,7 +6027,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); \ @@ -5794,21 +6047,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 \ @@ -5816,7 +6070,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 */