From 1cf02f8bf3444f1722581ec5e6076c7ec5c1fedf Mon Sep 17 00:00:00 2001 From: Mark VanderVoord Date: Wed, 21 May 2014 19:29:44 -0400 Subject: [PATCH] support cmock's need to destroy all of its memory at the end of the suite --- auto/generate_test_runner.rb | 15 ++++++++------- test/expectdata/testsample_mock_cmd.c | 1 + test/expectdata/testsample_mock_def.c | 1 + test/expectdata/testsample_mock_new1.c | 1 + test/expectdata/testsample_mock_new2.c | 1 + test/expectdata/testsample_mock_param.c | 1 + test/expectdata/testsample_mock_run1.c | 1 + test/expectdata/testsample_mock_run2.c | 1 + test/expectdata/testsample_mock_yaml.c | 1 + 9 files changed, 16 insertions(+), 7 deletions(-) diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb index e67fb85..f78faee 100644 --- a/auto/generate_test_runner.rb +++ b/auto/generate_test_runner.rb @@ -62,7 +62,7 @@ class UnityTestRunnerGenerator create_mock_management(output, used_mocks) create_suite_setup_and_teardown(output) create_reset(output, used_mocks) - create_main(output, input_file, tests) + create_main(output, input_file, tests, used_mocks) end end @@ -142,11 +142,11 @@ class UnityTestRunnerGenerator output.puts('#include ') output.puts('#include ') output.puts('#include "CException.h"') if @options[:plugins].include?(:cexception) - testfile_includes.delete("unity").delete("cmock") - testrunner_includes = testfile_includes - mocks - testrunner_includes.each do |inc| - output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}") - end + testfile_includes.delete("unity").delete("cmock") + testrunner_includes = testfile_includes - mocks + testrunner_includes.each do |inc| + output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}") + end mocks.each do |mock| output.puts("#include \"#{mock.gsub('.h','')}.h\"") end @@ -261,7 +261,7 @@ class UnityTestRunnerGenerator output.puts("}") end - def create_main(output, filename, tests) + def create_main(output, filename, tests, used_mocks) output.puts("\n\n//=======MAIN=====") output.puts("int main(void)") output.puts("{") @@ -280,6 +280,7 @@ class UnityTestRunnerGenerator tests.each { |test| output.puts(" RUN_TEST(#{test[:test]}, #{test[:line_number]});") } end output.puts() + output.puts(" CMock_Guts_MemFreeFinal();") unless used_mocks.empty? output.puts(" return #{@options[:suite_teardown].nil? ? "" : "suite_teardown"}(UnityEnd());") output.puts("}") end diff --git a/test/expectdata/testsample_mock_cmd.c b/test/expectdata/testsample_mock_cmd.c index 2b5b8b8..aa61372 100644 --- a/test/expectdata/testsample_mock_cmd.c +++ b/test/expectdata/testsample_mock_cmd.c @@ -74,5 +74,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21); RUN_TEST(test_TheSecondThingToTest, 43); + CMock_Guts_MemFreeFinal(); return (UnityEnd()); } diff --git a/test/expectdata/testsample_mock_def.c b/test/expectdata/testsample_mock_def.c index 7f90d87..801b002 100644 --- a/test/expectdata/testsample_mock_def.c +++ b/test/expectdata/testsample_mock_def.c @@ -70,5 +70,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21); RUN_TEST(test_TheSecondThingToTest, 43); + CMock_Guts_MemFreeFinal(); return (UnityEnd()); } diff --git a/test/expectdata/testsample_mock_new1.c b/test/expectdata/testsample_mock_new1.c index ab7b676..62f344f 100644 --- a/test/expectdata/testsample_mock_new1.c +++ b/test/expectdata/testsample_mock_new1.c @@ -83,5 +83,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21); RUN_TEST(test_TheSecondThingToTest, 43); + CMock_Guts_MemFreeFinal(); return (UnityEnd()); } diff --git a/test/expectdata/testsample_mock_new2.c b/test/expectdata/testsample_mock_new2.c index ed5d890..e121676 100644 --- a/test/expectdata/testsample_mock_new2.c +++ b/test/expectdata/testsample_mock_new2.c @@ -83,5 +83,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21); RUN_TEST(test_TheSecondThingToTest, 43); + CMock_Guts_MemFreeFinal(); return suite_teardown(UnityEnd()); } diff --git a/test/expectdata/testsample_mock_param.c b/test/expectdata/testsample_mock_param.c index f73ea83..1ceb98f 100644 --- a/test/expectdata/testsample_mock_param.c +++ b/test/expectdata/testsample_mock_param.c @@ -71,5 +71,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21, RUN_TEST_NO_ARGS); RUN_TEST(test_TheSecondThingToTest, 43, RUN_TEST_NO_ARGS); + CMock_Guts_MemFreeFinal(); return (UnityEnd()); } diff --git a/test/expectdata/testsample_mock_run1.c b/test/expectdata/testsample_mock_run1.c index ab7b676..62f344f 100644 --- a/test/expectdata/testsample_mock_run1.c +++ b/test/expectdata/testsample_mock_run1.c @@ -83,5 +83,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21); RUN_TEST(test_TheSecondThingToTest, 43); + CMock_Guts_MemFreeFinal(); return (UnityEnd()); } diff --git a/test/expectdata/testsample_mock_run2.c b/test/expectdata/testsample_mock_run2.c index ed5d890..e121676 100644 --- a/test/expectdata/testsample_mock_run2.c +++ b/test/expectdata/testsample_mock_run2.c @@ -83,5 +83,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21); RUN_TEST(test_TheSecondThingToTest, 43); + CMock_Guts_MemFreeFinal(); return suite_teardown(UnityEnd()); } diff --git a/test/expectdata/testsample_mock_yaml.c b/test/expectdata/testsample_mock_yaml.c index 9f5f5b1..ad40188 100644 --- a/test/expectdata/testsample_mock_yaml.c +++ b/test/expectdata/testsample_mock_yaml.c @@ -84,5 +84,6 @@ int main(void) RUN_TEST(test_TheFirstThingToTest, 21); RUN_TEST(test_TheSecondThingToTest, 43); + CMock_Guts_MemFreeFinal(); return (UnityEnd()); }