From be420840b3d65fe7ed931b2c2254c4a1abf1cbfe Mon Sep 17 00:00:00 2001 From: Mark VanderVoord Date: Sat, 16 May 2026 23:40:08 -0400 Subject: [PATCH] make the cmock modifier files optional as 2nd argument in config --- examples/temp_sensor/rakefile.rb | 4 ++-- examples/temp_sensor/rakefile_helper.rb | 12 +++++++----- test/rakefile | 6 ++---- test/rakefile_helper.rb | 11 +++++++---- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/examples/temp_sensor/rakefile.rb b/examples/temp_sensor/rakefile.rb index 9676f44..a5e0264 100644 --- a/examples/temp_sensor/rakefile.rb +++ b/examples/temp_sensor/rakefile.rb @@ -39,8 +39,8 @@ task :ci => [:default] task :cruise => [:default] desc 'Load configuration' -task :config, :config_file do |_t, args| - configure_toolchain(args[:config_file]) +task :config, [:config_file, :cmock_overlay] do |_t, args| + configure_toolchain(args[:config_file], args[:cmock_overlay]) end desc 'Return error on Failures' diff --git a/examples/temp_sensor/rakefile_helper.rb b/examples/temp_sensor/rakefile_helper.rb index d2fb7ea..e31a6bf 100644 --- a/examples/temp_sensor/rakefile_helper.rb +++ b/examples/temp_sensor/rakefile_helper.rb @@ -35,7 +35,7 @@ module RakefileHelpers nil end - def load_configuration(config_file) + def load_configuration(config_file, cmock_overlay = nil) $cfg_file = config_file $proj = load_yaml(File.read('./project.yml')) @@ -46,7 +46,7 @@ module RakefileHelpers puts "Loading Unity target: #{unity_target}" $unity_cfg = load_yaml(File.read(unity_target)) - cmock_file = find_cmock_target(cmock_targets_dir, $cfg_file) + cmock_file = cmock_overlay || find_cmock_target(cmock_targets_dir, $cfg_file) if cmock_file puts "Loading CMock overlay: #{cmock_targets_dir}/#{cmock_file}" $cmock_cfg = load_yaml(File.read("#{cmock_targets_dir}/#{cmock_file}")) @@ -67,9 +67,11 @@ module RakefileHelpers CLEAN.include("#{$proj[:project][:build_root]}*.*") end - def configure_toolchain(config_file = DEFAULT_CONFIG_FILE) - config_file += '.yml' unless config_file =~ /\.yml$/ - load_configuration(config_file) + def configure_toolchain(config_file = DEFAULT_CONFIG_FILE, cmock_overlay = nil) + config_file ||= DEFAULT_CONFIG_FILE + config_file += '.yml' unless config_file =~ /\.yml$/i + cmock_overlay += '.yml' if cmock_overlay && cmock_overlay !~ /\.yml$/i + load_configuration(config_file, cmock_overlay) configure_clean end diff --git a/test/rakefile b/test/rakefile index c48f1d2..f983c5d 100644 --- a/test/rakefile +++ b/test/rakefile @@ -37,10 +37,8 @@ task :ci => [:no_color, :default, 'test:examples', 'style:check'] task :cruise => :ci desc "Load configuration" -task :config, :config_file do |t, args| - args = {:config_file => DEFAULT_CONFIG_FILE} if args[:config_file].nil? - args = {:config_file => args[:config_file] + '.yml'} unless args[:config_file] =~ /\.yml$/i - configure_toolchain(args[:config_file]) +task :config, [:config_file, :cmock_overlay] do |t, args| + configure_toolchain(args[:config_file], args[:cmock_overlay]) end # Still support testing everything with just 'test' but switch default to ceedling-like test:all diff --git a/test/rakefile_helper.rb b/test/rakefile_helper.rb index 363bef2..f68ae0f 100644 --- a/test/rakefile_helper.rb +++ b/test/rakefile_helper.rb @@ -42,7 +42,7 @@ module RakefileHelpers nil end - def load_configuration(config_file) + def load_configuration(config_file, cmock_overlay = nil) $cfg_file = config_file $proj = load_yaml('./project.yml') @@ -54,7 +54,7 @@ module RakefileHelpers puts "Loading Unity target: #{unity_target}" $unity_cfg = load_yaml(unity_target) - cmock_file = find_cmock_target(cmock_targets_dir, $cfg_file) + cmock_file = cmock_overlay || find_cmock_target(cmock_targets_dir, $cfg_file) if cmock_file puts "Loading CMock overlay: #{cmock_targets_dir}/#{cmock_file}" $cmock_cfg = load_yaml("#{cmock_targets_dir}/#{cmock_file}") @@ -76,8 +76,11 @@ module RakefileHelpers CLEAN.include($proj[:project][:build_root] + '*.*') end - def configure_toolchain(config_file) - load_configuration(config_file) + def configure_toolchain(config_file = DEFAULT_CONFIG_FILE, cmock_overlay = nil) + config_file = config_file || DEFAULT_CONFIG_FILE + config_file += '.yml' unless config_file =~ /\.yml$/i + cmock_overlay += '.yml' if cmock_overlay && cmock_overlay !~ /\.yml$/i + load_configuration(config_file, cmock_overlay) configure_clean end