From 4ea563e65b72f2f569924400df2f3053ae4a5d8c Mon Sep 17 00:00:00 2001 From: Peter Mendham Date: Thu, 28 Jan 2016 20:45:58 +0000 Subject: [PATCH 1/2] Added support for mocks in sub-directories. This supports mock headers of the form: #include "some/dir/MockMyCode.h" Where the mock name is actually MockMyCode. I *think* this is the most common scenario when working with mocks in subdirectories but if not this could be modified to support alternate schemes. --- auto/generate_test_runner.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb index 3840f8a..5127fba 100644 --- a/auto/generate_test_runner.rb +++ b/auto/generate_test_runner.rb @@ -146,8 +146,9 @@ class UnityTestRunnerGenerator def find_mocks(includes) mock_headers = [] - includes.each do |include_file| - mock_headers << File.basename(include_file) if (include_file =~ /^mock/i) + includes.each do |include_path| + include_file = File.basename(include_path) + mock_headers << include_path if (include_file =~ /^mock/i) end return mock_headers end @@ -192,8 +193,8 @@ class UnityTestRunnerGenerator output.puts('') end - def create_mock_management(output, mocks) - unless (mocks.empty?) + def create_mock_management(output, mock_headers) + unless (mock_headers.empty?) output.puts("\n//=======Mock Management=====") output.puts("static void CMock_Init(void)") output.puts("{") @@ -202,6 +203,10 @@ class UnityTestRunnerGenerator output.puts(" GlobalVerifyOrder = 0;") output.puts(" GlobalOrderError = NULL;") end + mocks = [] + mock_headers.each do |mock| + mocks << File.basename(mock) + end mocks.each do |mock| mock_clean = TypeSanitizer.sanitize_c_identifier(mock) output.puts(" #{mock_clean}_Init();") From 099b0db22b7e5c5d3b437866e7d1d352ebb8ddf3 Mon Sep 17 00:00:00 2001 From: Peter Mendham Date: Mon, 1 Feb 2016 22:48:23 +0000 Subject: [PATCH 2/2] Updated mock determination code to be more efficient applying the feedback from @mvandervoord (Thanks). --- auto/generate_test_runner.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb index 5127fba..aeed0b2 100644 --- a/auto/generate_test_runner.rb +++ b/auto/generate_test_runner.rb @@ -203,10 +203,7 @@ class UnityTestRunnerGenerator output.puts(" GlobalVerifyOrder = 0;") output.puts(" GlobalOrderError = NULL;") end - mocks = [] - mock_headers.each do |mock| - mocks << File.basename(mock) - end + mocks = mock_headers.map {|mock| File.basename(mock)} mocks.each do |mock| mock_clean = TypeSanitizer.sanitize_c_identifier(mock) output.puts(" #{mock_clean}_Init();")