1
0
mirror of https://github.com/meekrosoft/fff synced 2026-01-23 00:15:59 +01:00

Add overrides for argument and call histories

This commit is contained in:
Mike Long
2011-03-23 09:49:00 +01:00
parent 7f0890916a
commit 01aebe40e0
6 changed files with 294 additions and 243 deletions

View File

@@ -218,7 +218,16 @@ function is called
## User Defined Argument History ## User Defined Argument History
Coming soon! If you wish to control how many calls to capture for argument history you can
overide the default by defining it before include the <tt>fff.h</tt> like this:
// Want to keep the argument history for 13 calls
#define FFF_ARG_HISTORY_LEN 13
// Want to keep the call sequence history for 17 function calls
#define FFF_CALL_HISTORY_LEN 17
#include "../fff.h"
## Function Return Value Sequences ## Function Return Value Sequences

3
buildandtest Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
ruby fakegen.rb > fff.h && make clean && make all && build/fff_test_c && build/fff_test_cpp

View File

@@ -9,9 +9,13 @@ $DEFAULT_ARG_HISTORY = 50
$MAX_CALL_HISTORY = 50 $MAX_CALL_HISTORY = 50
def output_constants def output_constants
puts "#define FFF_MAX_ARGS ((unsigned)#{$MAX_ARGS})" puts "#define FFF_MAX_ARGS (#{$MAX_ARGS}u)"
puts "#define FFF_ARG_HISTORY_LEN ((unsigned)#{$DEFAULT_ARG_HISTORY})" puts "#ifndef FFF_ARG_HISTORY_LEN"
puts "#define FFF_CALL_HISTORY_LEN ((unsigned)#{$MAX_CALL_HISTORY})" puts " #define FFF_ARG_HISTORY_LEN (#{$DEFAULT_ARG_HISTORY}u)"
puts "#endif"
puts "#ifndef FFF_CALL_HISTORY_LEN"
puts " #define FFF_CALL_HISTORY_LEN (#{$MAX_CALL_HISTORY}u)"
puts "#endif"
end end
def output_macro(args, is_value_function) def output_macro(args, is_value_function)
@@ -96,7 +100,7 @@ def output_argument_capture_variables(i)
# last argument # last argument
puts " static ARG#{i}_TYPE FUNCNAME##_arg#{i}_val; \\" puts " static ARG#{i}_TYPE FUNCNAME##_arg#{i}_val; \\"
# argument history array # argument history array
puts " static ARG#{i}_TYPE FUNCNAME##_arg#{i}_history[#{$DEFAULT_ARG_HISTORY}];\\" puts " static ARG#{i}_TYPE FUNCNAME##_arg#{i}_history[FFF_ARG_HISTORY_LEN];\\"
end end
def output_variables(arg_count, is_value_function) def output_variables(arg_count, is_value_function)
@@ -106,7 +110,7 @@ def output_variables(arg_count, is_value_function)
puts " static int FUNCNAME##_return_val_seq_idx = 0; \\" unless not is_value_function puts " static int FUNCNAME##_return_val_seq_idx = 0; \\" unless not is_value_function
puts " static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \\" unless not is_value_function puts " static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \\" unless not is_value_function
puts " static unsigned int FUNCNAME##_call_count = 0; \\" puts " static unsigned int FUNCNAME##_call_count = 0; \\"
puts " static unsigned int FUNCNAME##_arg_history_len = #{$DEFAULT_ARG_HISTORY};\\" puts " static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\\"
puts " static unsigned int FUNCNAME##_arg_histories_dropped = 0; \\" puts " static unsigned int FUNCNAME##_arg_histories_dropped = 0; \\"
end end
@@ -186,15 +190,14 @@ def define_reset_fake
end end
def define_call_history def define_call_history
puts "#define MAX_CALL_HISTORY #{$MAX_CALL_HISTORY}u" puts "static void * call_history[FFF_CALL_HISTORY_LEN];"
puts "static void * call_history[MAX_CALL_HISTORY];"
puts "static unsigned int call_history_idx;" puts "static unsigned int call_history_idx;"
puts "static void RESET_HISTORY() { " puts "static void RESET_HISTORY() { "
puts " call_history_idx = 0; " puts " call_history_idx = 0; "
puts "}" puts "}"
puts "#define REGISTER_CALL(function) \\" puts "#define REGISTER_CALL(function) \\"
puts " if(call_history_idx < MAX_CALL_HISTORY) call_history[call_history_idx++] = (void *)function;" puts " if(call_history_idx < FFF_CALL_HISTORY_LEN) call_history[call_history_idx++] = (void *)function;"
end end
def define_return_sequence def define_return_sequence
@@ -243,6 +246,6 @@ output_c_and_cpp{
define_return_sequence define_return_sequence
output_cpp_reset_code if $cpp_output output_cpp_reset_code if $cpp_output
output_cpp_static_initializer if $cpp_output output_cpp_static_initializer if $cpp_output
10.times {|arg_count| output_macro(arg_count, false)} $MAX_ARGS.times {|arg_count| output_macro(arg_count, false)}
10.times {|arg_count| output_macro(arg_count, true)} $MAX_ARGS.times {|arg_count| output_macro(arg_count, true)}
} }

470
fff.h
View File

@@ -2,23 +2,26 @@
#define FAKE_FUNCTIONS #define FAKE_FUNCTIONS
#ifdef __cplusplus #ifdef __cplusplus
#define FFF_MAX_ARGS ((unsigned)10) #define FFF_MAX_ARGS (10u)
#define FFF_ARG_HISTORY_LEN ((unsigned)50) #ifndef FFF_ARG_HISTORY_LEN
#define FFF_CALL_HISTORY_LEN ((unsigned)50) #define FFF_ARG_HISTORY_LEN (50u)
#endif
#ifndef FFF_CALL_HISTORY_LEN
#define FFF_CALL_HISTORY_LEN (50u)
#endif
/* Defining a function to reset a fake function */ /* Defining a function to reset a fake function */
#define RESET_FAKE(FUNCNAME) { \ #define RESET_FAKE(FUNCNAME) { \
FUNCNAME##_reset(); \ FUNCNAME##_reset(); \
} \ } \
#define MAX_CALL_HISTORY 50u static void * call_history[FFF_CALL_HISTORY_LEN];
static void * call_history[MAX_CALL_HISTORY];
static unsigned int call_history_idx; static unsigned int call_history_idx;
static void RESET_HISTORY() { static void RESET_HISTORY() {
call_history_idx = 0; call_history_idx = 0;
} }
#define REGISTER_CALL(function) \ #define REGISTER_CALL(function) \
if(call_history_idx < MAX_CALL_HISTORY) call_history[call_history_idx++] = (void *)function; if(call_history_idx < FFF_CALL_HISTORY_LEN) call_history[call_history_idx++] = (void *)function;
#define SET_RETURN_SEQ( FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ #define SET_RETURN_SEQ( FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \
FUNCNAME##_return_val_seq = ARRAY_POINTER; \ FUNCNAME##_return_val_seq = ARRAY_POINTER; \
FUNCNAME##_return_val_seq_len = ARRAY_LEN; FUNCNAME##_return_val_seq_len = ARRAY_LEN;
@@ -51,7 +54,7 @@ static StaticInitializer_##FUNCNAME staticInitializer_##FUNCNAME; \
#define FAKE_VOID_FUNC0(FUNCNAME) \ #define FAKE_VOID_FUNC0(FUNCNAME) \
extern "C"{ \ extern "C"{ \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(){ \ void FUNCNAME(){ \
if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\ if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\
@@ -71,9 +74,9 @@ STATIC_INIT(FUNCNAME) \
#define FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ #define FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0){ \ void FUNCNAME(ARG0_TYPE arg0){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -99,11 +102,11 @@ STATIC_INIT(FUNCNAME) \
#define FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ #define FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -135,13 +138,13 @@ STATIC_INIT(FUNCNAME) \
#define FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ #define FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -179,15 +182,15 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -231,17 +234,17 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -291,19 +294,19 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -359,21 +362,21 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -435,23 +438,23 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -519,25 +522,25 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static ARG8_TYPE FUNCNAME##_arg8_val; \ static ARG8_TYPE FUNCNAME##_arg8_val; \
static ARG8_TYPE FUNCNAME##_arg8_history[50];\ static ARG8_TYPE FUNCNAME##_arg8_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -615,7 +618,7 @@ extern "C"{ \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(){ \ RETURN_TYPE FUNCNAME(){ \
if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\ if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\
@@ -646,13 +649,13 @@ STATIC_INIT(FUNCNAME) \
#define FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ #define FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -689,15 +692,15 @@ STATIC_INIT(FUNCNAME) \
#define FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ #define FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -740,17 +743,17 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -799,19 +802,19 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -866,21 +869,21 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -941,23 +944,23 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1024,25 +1027,25 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1115,27 +1118,27 @@ STATIC_INIT(FUNCNAME) \
#define 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) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1214,29 +1217,29 @@ STATIC_INIT(FUNCNAME) \
#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 FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \
extern "C"{ \ extern "C"{ \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static ARG8_TYPE FUNCNAME##_arg8_val; \ static ARG8_TYPE FUNCNAME##_arg8_val; \
static ARG8_TYPE FUNCNAME##_arg8_history[50];\ static ARG8_TYPE FUNCNAME##_arg8_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1317,23 +1320,26 @@ extern "C"{ \
STATIC_INIT(FUNCNAME) \ STATIC_INIT(FUNCNAME) \
#else /* ansi c */ #else /* ansi c */
#define FFF_MAX_ARGS ((unsigned)10) #define FFF_MAX_ARGS (10u)
#define FFF_ARG_HISTORY_LEN ((unsigned)50) #ifndef FFF_ARG_HISTORY_LEN
#define FFF_CALL_HISTORY_LEN ((unsigned)50) #define FFF_ARG_HISTORY_LEN (50u)
#endif
#ifndef FFF_CALL_HISTORY_LEN
#define FFF_CALL_HISTORY_LEN (50u)
#endif
/* Defining a function to reset a fake function */ /* Defining a function to reset a fake function */
#define RESET_FAKE(FUNCNAME) { \ #define RESET_FAKE(FUNCNAME) { \
FUNCNAME##_reset(); \ FUNCNAME##_reset(); \
} \ } \
#define MAX_CALL_HISTORY 50u static void * call_history[FFF_CALL_HISTORY_LEN];
static void * call_history[MAX_CALL_HISTORY];
static unsigned int call_history_idx; static unsigned int call_history_idx;
static void RESET_HISTORY() { static void RESET_HISTORY() {
call_history_idx = 0; call_history_idx = 0;
} }
#define REGISTER_CALL(function) \ #define REGISTER_CALL(function) \
if(call_history_idx < MAX_CALL_HISTORY) call_history[call_history_idx++] = (void *)function; if(call_history_idx < FFF_CALL_HISTORY_LEN) call_history[call_history_idx++] = (void *)function;
#define SET_RETURN_SEQ( FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \ #define SET_RETURN_SEQ( FUNCNAME, ARRAY_POINTER, ARRAY_LEN) \
FUNCNAME##_return_val_seq = ARRAY_POINTER; \ FUNCNAME##_return_val_seq = ARRAY_POINTER; \
FUNCNAME##_return_val_seq_len = ARRAY_LEN; FUNCNAME##_return_val_seq_len = ARRAY_LEN;
@@ -1341,7 +1347,7 @@ static void RESET_HISTORY() {
/* Defining a void function with 0 parameters*/ /* Defining a void function with 0 parameters*/
#define FAKE_VOID_FUNC0(FUNCNAME) \ #define FAKE_VOID_FUNC0(FUNCNAME) \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(){ \ void FUNCNAME(){ \
if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\ if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\
@@ -1358,9 +1364,9 @@ static void RESET_HISTORY() {
/* Defining a void function with 1 parameters*/ /* Defining a void function with 1 parameters*/
#define FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \ #define FAKE_VOID_FUNC1(FUNCNAME, ARG0_TYPE) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0){ \ void FUNCNAME(ARG0_TYPE arg0){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1383,11 +1389,11 @@ static void RESET_HISTORY() {
/* Defining a void function with 2 parameters*/ /* Defining a void function with 2 parameters*/
#define FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ #define FAKE_VOID_FUNC2(FUNCNAME, ARG0_TYPE, ARG1_TYPE) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1416,13 +1422,13 @@ static void RESET_HISTORY() {
/* Defining a void function with 3 parameters*/ /* Defining a void function with 3 parameters*/
#define FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \ #define FAKE_VOID_FUNC3(FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1457,15 +1463,15 @@ static void RESET_HISTORY() {
/* Defining a void function with 4 parameters*/ /* Defining a void function with 4 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1506,17 +1512,17 @@ static void RESET_HISTORY() {
/* Defining a void function with 5 parameters*/ /* Defining a void function with 5 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1563,19 +1569,19 @@ static void RESET_HISTORY() {
/* Defining a void function with 6 parameters*/ /* Defining a void function with 6 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1628,21 +1634,21 @@ static void RESET_HISTORY() {
/* Defining a void function with 7 parameters*/ /* Defining a void function with 7 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ void FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1701,23 +1707,23 @@ static void RESET_HISTORY() {
/* Defining a void function with 8 parameters*/ /* Defining a void function with 8 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1782,25 +1788,25 @@ static void RESET_HISTORY() {
/* Defining a void function with 9 parameters*/ /* Defining a void function with 9 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static ARG8_TYPE FUNCNAME##_arg8_val; \ static ARG8_TYPE FUNCNAME##_arg8_val; \
static ARG8_TYPE FUNCNAME##_arg8_history[50];\ static ARG8_TYPE FUNCNAME##_arg8_history[FFF_ARG_HISTORY_LEN];\
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1875,7 +1881,7 @@ static void RESET_HISTORY() {
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(){ \ RETURN_TYPE FUNCNAME(){ \
if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\ if(FUNCNAME##_call_count >= FUNCNAME##_arg_history_len){\
@@ -1903,13 +1909,13 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 1 parameters*/ /* Defining a function returning a value with 1 parameters*/
#define FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \ #define FAKE_VALUE_FUNC1(RETURN_TYPE, FUNCNAME, ARG0_TYPE) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1943,15 +1949,15 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 2 parameters*/ /* Defining a function returning a value with 2 parameters*/
#define FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \ #define FAKE_VALUE_FUNC2(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -1991,17 +1997,17 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 3 parameters*/ /* Defining a function returning a value with 3 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -2047,19 +2053,19 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 4 parameters*/ /* Defining a function returning a value with 4 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -2111,21 +2117,21 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 5 parameters*/ /* Defining a function returning a value with 5 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -2183,23 +2189,23 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 6 parameters*/ /* Defining a function returning a value with 6 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -2263,25 +2269,25 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 7 parameters*/ /* Defining a function returning a value with 7 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \ RETURN_TYPE FUNCNAME(ARG0_TYPE arg0, ARG1_TYPE arg1, ARG2_TYPE arg2, ARG3_TYPE arg3, ARG4_TYPE arg4, ARG5_TYPE arg5, ARG6_TYPE arg6){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -2351,27 +2357,27 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 8 parameters*/ /* Defining a function returning a value with 8 parameters*/
#define 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) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \
@@ -2447,29 +2453,29 @@ static void RESET_HISTORY() {
/* Defining a function returning a value with 9 parameters*/ /* Defining a function returning a value with 9 parameters*/
#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 FAKE_VALUE_FUNC9(RETURN_TYPE, FUNCNAME, ARG0_TYPE, ARG1_TYPE, ARG2_TYPE, ARG3_TYPE, ARG4_TYPE, ARG5_TYPE, ARG6_TYPE, ARG7_TYPE, ARG8_TYPE) \
static ARG0_TYPE FUNCNAME##_arg0_val; \ static ARG0_TYPE FUNCNAME##_arg0_val; \
static ARG0_TYPE FUNCNAME##_arg0_history[50];\ static ARG0_TYPE FUNCNAME##_arg0_history[FFF_ARG_HISTORY_LEN];\
static ARG1_TYPE FUNCNAME##_arg1_val; \ static ARG1_TYPE FUNCNAME##_arg1_val; \
static ARG1_TYPE FUNCNAME##_arg1_history[50];\ static ARG1_TYPE FUNCNAME##_arg1_history[FFF_ARG_HISTORY_LEN];\
static ARG2_TYPE FUNCNAME##_arg2_val; \ static ARG2_TYPE FUNCNAME##_arg2_val; \
static ARG2_TYPE FUNCNAME##_arg2_history[50];\ static ARG2_TYPE FUNCNAME##_arg2_history[FFF_ARG_HISTORY_LEN];\
static ARG3_TYPE FUNCNAME##_arg3_val; \ static ARG3_TYPE FUNCNAME##_arg3_val; \
static ARG3_TYPE FUNCNAME##_arg3_history[50];\ static ARG3_TYPE FUNCNAME##_arg3_history[FFF_ARG_HISTORY_LEN];\
static ARG4_TYPE FUNCNAME##_arg4_val; \ static ARG4_TYPE FUNCNAME##_arg4_val; \
static ARG4_TYPE FUNCNAME##_arg4_history[50];\ static ARG4_TYPE FUNCNAME##_arg4_history[FFF_ARG_HISTORY_LEN];\
static ARG5_TYPE FUNCNAME##_arg5_val; \ static ARG5_TYPE FUNCNAME##_arg5_val; \
static ARG5_TYPE FUNCNAME##_arg5_history[50];\ static ARG5_TYPE FUNCNAME##_arg5_history[FFF_ARG_HISTORY_LEN];\
static ARG6_TYPE FUNCNAME##_arg6_val; \ static ARG6_TYPE FUNCNAME##_arg6_val; \
static ARG6_TYPE FUNCNAME##_arg6_history[50];\ static ARG6_TYPE FUNCNAME##_arg6_history[FFF_ARG_HISTORY_LEN];\
static ARG7_TYPE FUNCNAME##_arg7_val; \ static ARG7_TYPE FUNCNAME##_arg7_val; \
static ARG7_TYPE FUNCNAME##_arg7_history[50];\ static ARG7_TYPE FUNCNAME##_arg7_history[FFF_ARG_HISTORY_LEN];\
static ARG8_TYPE FUNCNAME##_arg8_val; \ static ARG8_TYPE FUNCNAME##_arg8_val; \
static ARG8_TYPE FUNCNAME##_arg8_history[50];\ static ARG8_TYPE FUNCNAME##_arg8_history[FFF_ARG_HISTORY_LEN];\
static RETURN_TYPE FUNCNAME##_return_val; \ static RETURN_TYPE FUNCNAME##_return_val; \
static int FUNCNAME##_return_val_seq_len = 0; \ static int FUNCNAME##_return_val_seq_len = 0; \
static int FUNCNAME##_return_val_seq_idx = 0; \ static int FUNCNAME##_return_val_seq_idx = 0; \
static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \ static RETURN_TYPE * FUNCNAME##_return_val_seq = 0; \
static unsigned int FUNCNAME##_call_count = 0; \ static unsigned int FUNCNAME##_call_count = 0; \
static unsigned int FUNCNAME##_arg_history_len = 50;\ static unsigned int FUNCNAME##_arg_history_len = FFF_ARG_HISTORY_LEN;\
static unsigned int FUNCNAME##_arg_histories_dropped = 0; \ static unsigned int FUNCNAME##_arg_histories_dropped = 0; \
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){ \ 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){ \
FUNCNAME##_arg0_val = arg0; \ FUNCNAME##_arg0_val = arg0; \

View File

@@ -1,3 +1,11 @@
// Want to keep the argument history for 13 calls
#define OVERRIDE_ARG_HIST_LEN 13u
#define FFF_ARG_HISTORY_LEN OVERRIDE_ARG_HIST_LEN
// Want to keep the call sequence history for 17 function calls
#define OVERRIDE_CALL_HIST_LEN 17u
#define FFF_CALL_HISTORY_LEN OVERRIDE_CALL_HIST_LEN
#include "../fff.h" #include "../fff.h"
#include <assert.h> #include <assert.h>
@@ -239,6 +247,12 @@ TEST_F(FFFTestSuite, return_value_sequences_reset)
ASSERT_EQ(0, longfunc0()); ASSERT_EQ(0, longfunc0());
} }
TEST_F(FFFTestSuite, default_constants_can_be_overridden)
{
unsigned sizeCallHistory = (sizeof call_history) / (sizeof call_history[0]);
ASSERT_EQ(OVERRIDE_CALL_HIST_LEN, sizeCallHistory);
ASSERT_EQ(OVERRIDE_ARG_HIST_LEN, voidfunc2_arg_history_len);
}
int main() int main()
{ {
@@ -276,6 +290,7 @@ int main()
RUN_TEST(FFFTestSuite, return_value_sequences_not_exhausted); RUN_TEST(FFFTestSuite, return_value_sequences_not_exhausted);
RUN_TEST(FFFTestSuite, return_value_sequences_exhausted); RUN_TEST(FFFTestSuite, return_value_sequences_exhausted);
RUN_TEST(FFFTestSuite, default_constants_can_be_overridden);
printf("\n-------------\n"); printf("\n-------------\n");
printf("Complete\n"); printf("Complete\n");

View File

@@ -5,6 +5,13 @@
* Author: mlong * Author: mlong
*/ */
// Want to keep the argument history for 13 calls
#define OVERRIDE_ARG_HIST_LEN 13u
#define FFF_ARG_HISTORY_LEN OVERRIDE_ARG_HIST_LEN
// Want to keep the call sequence history for 17 function calls
#define OVERRIDE_CALL_HIST_LEN 17u
#define FFF_CALL_HISTORY_LEN OVERRIDE_CALL_HIST_LEN
#include "../fff.h" #include "../fff.h"
#include <gtest/gtest.h> #include <gtest/gtest.h>
@@ -227,3 +234,11 @@ TEST_F(FFFTestSuite, return_value_sequences_reset)
ASSERT_EQ(0, longfunc0()); ASSERT_EQ(0, longfunc0());
} }
TEST_F(FFFTestSuite, default_constants_can_be_overridden)
{
unsigned sizeCallHistory = (sizeof call_history) / (sizeof call_history[0]);
ASSERT_EQ(OVERRIDE_CALL_HIST_LEN, sizeCallHistory);
ASSERT_EQ(OVERRIDE_ARG_HIST_LEN, voidfunc2_arg_history_len);
}