diff --git a/examples/temp_sensor/rakefile.rb b/examples/temp_sensor/rakefile.rb index e70b955..9676f44 100644 --- a/examples/temp_sensor/rakefile.rb +++ b/examples/temp_sensor/rakefile.rb @@ -20,7 +20,7 @@ REQUIRED_DIRS.each do |v| end # Load default configuration, for now -DEFAULT_CONFIG_FILE = 'gcc.yml'.freeze +DEFAULT_CONFIG_FILE = 'gcc_64.yml'.freeze configure_toolchain(DEFAULT_CONFIG_FILE) task :unit do diff --git a/examples/temp_sensor/rakefile_helper.rb b/examples/temp_sensor/rakefile_helper.rb index 55bea2d..d2fb7ea 100644 --- a/examples/temp_sensor/rakefile_helper.rb +++ b/examples/temp_sensor/rakefile_helper.rb @@ -22,18 +22,41 @@ module RakefileHelpers YAML.load(yaml_string) end + def find_cmock_target(targets_dir, config_file) + return config_file if File.exist?("#{targets_dir}/#{config_file}") + + basename = File.basename(config_file, '.yml') + while basename.include?('_') + basename = basename.rpartition('_').first + candidate = "#{basename}.yml" + return candidate if File.exist?("#{targets_dir}/#{candidate}") + end + + nil + end + def load_configuration(config_file) $cfg_file = config_file $proj = load_yaml(File.read('./project.yml')) - unity_target = "../../vendor/unity/test/targets/#{$cfg_file}" - cmock_target = "../../test/targets/#{$cfg_file}" + unity_target = "../../vendor/unity/test/targets/#{$cfg_file}" + cmock_targets_dir = '../../test/targets' if File.exist?(unity_target) + puts "Loading Unity target: #{unity_target}" $unity_cfg = load_yaml(File.read(unity_target)) - $cmock_cfg = File.exist?(cmock_target) ? load_yaml(File.read(cmock_target)) : {} + + cmock_file = 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}")) + else + puts "No CMock overlay found for #{$cfg_file}" + $cmock_cfg = {} + end else - $unity_cfg = load_yaml(File.read(cmock_target)) + puts "Loading CMock-only target: #{cmock_targets_dir}/#{$cfg_file}" + $unity_cfg = load_yaml(File.read("#{cmock_targets_dir}/#{$cfg_file}")) $cmock_cfg = {} end diff --git a/test/rakefile_helper.rb b/test/rakefile_helper.rb index 7f7723e..363bef2 100644 --- a/test/rakefile_helper.rb +++ b/test/rakefile_helper.rb @@ -29,20 +29,43 @@ module RakefileHelpers end end + def find_cmock_target(targets_dir, config_file) + return config_file if File.exist?("#{targets_dir}/#{config_file}") + + basename = File.basename(config_file, '.yml') + while basename.include?('_') + basename = basename.rpartition('_').first + candidate = "#{basename}.yml" + return candidate if File.exist?("#{targets_dir}/#{candidate}") + end + + nil + end + def load_configuration(config_file) $cfg_file = config_file $proj = load_yaml('./project.yml') - unity_target = "../vendor/unity/test/targets/#{$cfg_file}" - cmock_target = "./targets/#{$cfg_file}" + unity_target = "../vendor/unity/test/targets/#{$cfg_file}" + cmock_targets_dir = './targets' if File.exist?(unity_target) # Load Unity base target, then CMock overlay (unsupported list, extra defines) + puts "Loading Unity target: #{unity_target}" $unity_cfg = load_yaml(unity_target) - $cmock_cfg = File.exist?(cmock_target) ? load_yaml(cmock_target) : {} + + cmock_file = 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}") + else + puts "No CMock overlay found for #{$cfg_file}" + $cmock_cfg = {} + end else # CMock-only target (no Unity equivalent); it uses Unity format directly - $unity_cfg = load_yaml(cmock_target) + puts "Loading CMock-only target: #{cmock_targets_dir}/#{$cfg_file}" + $unity_cfg = load_yaml("#{cmock_targets_dir}/#{$cfg_file}") $cmock_cfg = {} end