aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Long <mike@praqma.com>2018-10-17 21:56:38 +0200
committerGitHub <noreply@github.com>2018-10-17 21:56:38 +0200
commitcd727d4195b5dec9242c3ed3f48b1ef1214c86e5 (patch)
treee01d330f8be4adb772fc3e6d448e334fb0085b3a
parentef24c19e645a778e16ed4c3d396746dd3bff9d35 (diff)
parent86c5e44614c60aa310b3e7b2893ceb71d64fa091 (diff)
downloadfff-cd727d4195b5dec9242c3ed3f48b1ef1214c86e5.tar.gz
Merge pull request #59 from codehearts/reset-call-history-with-FFF_RESET_HISTORY
Clear `fff.call_history` when calling `FFF_RESET_HISTORY`
-rw-r--r--fakegen.rb6
-rw-r--r--fff.h4
-rw-r--r--test/test_cases.include2
3 files changed, 10 insertions, 2 deletions
diff --git a/fakegen.rb b/fakegen.rb
index e21387f..b070183 100644
--- a/fakegen.rb
+++ b/fakegen.rb
@@ -466,7 +466,11 @@ def define_fff_globals
putd "FFF_END_EXTERN_C"
}
puts
- putd "#define FFF_RESET_HISTORY() fff.call_history_idx = 0;"
+ putd_backslash "#define FFF_RESET_HISTORY()"
+ indent {
+ putd_backslash "fff.call_history_idx = 0;"
+ putd "memset(fff.call_history, 0, sizeof(fff.call_history));"
+ }
puts
putd_backslash "#define REGISTER_CALL(function)"
indent {
diff --git a/fff.h b/fff.h
index 230144e..e12f798 100644
--- a/fff.h
+++ b/fff.h
@@ -133,7 +133,9 @@ FFF_END_EXTERN_C \
fff_globals_t fff; \
FFF_END_EXTERN_C
-#define FFF_RESET_HISTORY() fff.call_history_idx = 0;
+#define FFF_RESET_HISTORY() \
+ fff.call_history_idx = 0; \
+ memset(fff.call_history, 0, sizeof(fff.call_history));
#define REGISTER_CALL(function) \
if(fff.call_history_idx < FFF_CALL_HISTORY_LEN) \
diff --git a/test/test_cases.include b/test/test_cases.include
index de84a5e..51484c1 100644
--- a/test/test_cases.include
+++ b/test/test_cases.include
@@ -158,11 +158,13 @@ TEST_F(FFFTestSuite, register_call_macro_registers_two_calls)
TEST_F(FFFTestSuite, reset_call_history_resets_call_history)
{
REGISTER_CALL(longfunc0);
+ REGISTER_CALL(voidfunc1);
FFF_RESET_HISTORY();
REGISTER_CALL(voidfunc2);
ASSERT_EQ(1u, fff.call_history_idx);
ASSERT_EQ(fff.call_history[0], (void *)voidfunc2);
+ ASSERT_EQ(fff.call_history[1], (void *)0);
}
TEST_F(FFFTestSuite, call_history_will_not_write_past_array_bounds)