mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2026-08-07 03:37:51 +00:00
refactor self-test engine to match Ceedling's tool format
This commit is contained in:
@@ -91,7 +91,14 @@ def build_command_string(tool_hash, values, defines = nil)
|
|||||||
args = []
|
args = []
|
||||||
tool_hash[:arguments].each do |arg|
|
tool_hash[:arguments].each do |arg|
|
||||||
if arg.include?('$')
|
if arg.include?('$')
|
||||||
if arg.include?(': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE')
|
if arg.include?('${5}')
|
||||||
|
all_paths = (($cfg[:paths][:support] || []) + ($cfg[:paths][:source] || []) + ($cfg[:paths][:test] || [])).uniq
|
||||||
|
all_paths.each { |f| args << arg.gsub('${5}', f) }
|
||||||
|
|
||||||
|
elsif arg.include?('${6}')
|
||||||
|
(($cfg.dig(:defines, :test) || []) + Array(defines)).uniq.compact.each { |f| args << arg.gsub('${6}', f) }
|
||||||
|
|
||||||
|
elsif arg.include?(': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE')
|
||||||
pattern = arg.gsub(': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE', '')
|
pattern = arg.gsub(': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE', '')
|
||||||
($cfg[:paths][:support] || []).each { |f| args << pattern.gsub(/\$/, f) }
|
($cfg[:paths][:support] || []).each { |f| args << pattern.gsub(/\$/, f) }
|
||||||
|
|
||||||
|
|||||||
+16
-7
@@ -16,13 +16,15 @@ module RakefileHelpers
|
|||||||
def load_configuration(config_file)
|
def load_configuration(config_file)
|
||||||
return if $configured
|
return if $configured
|
||||||
|
|
||||||
unless config_file =~ /[\\|\/]/
|
if config_file =~ /[\\|\/]/
|
||||||
|
$cfg_file = config_file
|
||||||
|
else
|
||||||
$cfg_file_base = config_file
|
$cfg_file_base = config_file
|
||||||
$cfg_file = "targets/#{config_file}"
|
$cfg_file = "targets/#{config_file}"
|
||||||
end
|
end
|
||||||
$cfg = YamlHelper.load_file($cfg_file)
|
$cfg = YamlHelper.load_file($cfg_file)
|
||||||
$cfg[:paths] ||= {}
|
$cfg[:paths] ||= {}
|
||||||
$cfg[:paths][:test] ||= ['src/', '../src/', 'testdata/', 'tests/']
|
$cfg[:paths][:test] = (Array($cfg[:paths][:test]) + ['src/', '../src/', 'testdata/', 'tests/']).uniq
|
||||||
$colour_output = false unless $cfg['colour']
|
$colour_output = false unless $cfg['colour']
|
||||||
$configured = true if config_file != DEFAULT_CONFIG_FILE
|
$configured = true if config_file != DEFAULT_CONFIG_FILE
|
||||||
end
|
end
|
||||||
@@ -101,7 +103,14 @@ module RakefileHelpers
|
|||||||
args = []
|
args = []
|
||||||
hash[:arguments].each do |arg|
|
hash[:arguments].each do |arg|
|
||||||
if arg.include? '$'
|
if arg.include? '$'
|
||||||
if arg.include? ': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
if arg.include? '${5}'
|
||||||
|
all_paths = [ File.join('..','src'), $extra_paths, 'src', File.join('tests'), File.join('testdata'), $cfg[:paths][:support] ].flatten.uniq.compact
|
||||||
|
all_paths.each { |f| args << arg.gsub('${5}', f) }
|
||||||
|
|
||||||
|
elsif arg.include? '${6}'
|
||||||
|
[ $cfg[:defines][:test], $cfg.dig(:unity, :defines), defines ].flatten.uniq.compact.each { |f| args << arg.gsub('${6}', f) }
|
||||||
|
|
||||||
|
elsif arg.include? ': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
||||||
pattern = arg.gsub(': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE','')
|
pattern = arg.gsub(': COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE','')
|
||||||
[ File.join('..','src') ].each do |f|
|
[ File.join('..','src') ].each do |f|
|
||||||
args << pattern.gsub(/\$/,f)
|
args << pattern.gsub(/\$/,f)
|
||||||
@@ -115,7 +124,7 @@ module RakefileHelpers
|
|||||||
|
|
||||||
elsif arg.include? ': COLLECTION_DEFINES_TEST_AND_VENDOR'
|
elsif arg.include? ': COLLECTION_DEFINES_TEST_AND_VENDOR'
|
||||||
pattern = arg.gsub(': COLLECTION_DEFINES_TEST_AND_VENDOR','')
|
pattern = arg.gsub(': COLLECTION_DEFINES_TEST_AND_VENDOR','')
|
||||||
[ $cfg[:defines][:test], defines ].flatten.uniq.compact.each do |f|
|
[ $cfg[:defines][:test], $cfg.dig(:unity, :defines), defines ].flatten.uniq.compact.each do |f|
|
||||||
args << pattern.gsub(/\$/,f)
|
args << pattern.gsub(/\$/,f)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -141,7 +150,7 @@ module RakefileHelpers
|
|||||||
end
|
end
|
||||||
|
|
||||||
def compile(file, defines = [])
|
def compile(file, defines = [])
|
||||||
out_file = File.join('build', File.basename(file, C_EXTENSION)) + $cfg[:extension][:object]
|
out_file = File.join('build', File.basename(file, C_EXTENSION)) + ($cfg[:extension][:object] || '.o')
|
||||||
cmd_str = build_command_string( $cfg[:tools][:test_compiler], [ file, out_file ], defines )
|
cmd_str = build_command_string( $cfg[:tools][:test_compiler], [ file, out_file ], defines )
|
||||||
execute(cmd_str)
|
execute(cmd_str)
|
||||||
out_file
|
out_file
|
||||||
@@ -170,7 +179,7 @@ module RakefileHelpers
|
|||||||
"--style=allman --indent=spaces=4 --indent-switches --indent-preproc-define --indent-preproc-block " \
|
"--style=allman --indent=spaces=4 --indent-switches --indent-preproc-define --indent-preproc-block " \
|
||||||
"--pad-oper --pad-comma --unpad-paren --pad-header " \
|
"--pad-oper --pad-comma --unpad-paren --pad-header " \
|
||||||
"--align-pointer=type --align-reference=name " \
|
"--align-pointer=type --align-reference=name " \
|
||||||
"--add-brackets --mode=c --suffix=none " \
|
"--mode=c --suffix=none " \
|
||||||
"#{style_what}"
|
"#{style_what}"
|
||||||
execute(command, false)
|
execute(command, false)
|
||||||
report "Styling C:PASS"
|
report "Styling C:PASS"
|
||||||
|
|||||||
@@ -47,9 +47,8 @@
|
|||||||
- "-std=gnu99"
|
- "-std=gnu99"
|
||||||
- "-pedantic"
|
- "-pedantic"
|
||||||
- "-O0"
|
- "-O0"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -46,9 +46,8 @@
|
|||||||
- "-std=gnu99"
|
- "-std=gnu99"
|
||||||
- "-pedantic"
|
- "-pedantic"
|
||||||
- "-O0"
|
- "-O0"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -17,9 +17,8 @@
|
|||||||
- "-Wno-address"
|
- "-Wno-address"
|
||||||
- "-std=c99"
|
- "-std=c99"
|
||||||
- "-pedantic"
|
- "-pedantic"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -17,9 +17,8 @@
|
|||||||
- "-Wno-address"
|
- "-Wno-address"
|
||||||
- "-std=c99"
|
- "-std=c99"
|
||||||
- "-pedantic"
|
- "-pedantic"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -18,9 +18,8 @@
|
|||||||
- "-Wall"
|
- "-Wall"
|
||||||
- "-Wno-address"
|
- "-Wno-address"
|
||||||
- "-ansi"
|
- "-ansi"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -17,9 +17,8 @@
|
|||||||
- "-Wno-address"
|
- "-Wno-address"
|
||||||
- "-std=c99"
|
- "-std=c99"
|
||||||
- "-pedantic"
|
- "-pedantic"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -30,9 +30,8 @@
|
|||||||
- "-Wstrict-prototypes"
|
- "-Wstrict-prototypes"
|
||||||
- "-Wundef"
|
- "-Wundef"
|
||||||
- "-Wold-style-definition"
|
- "-Wold-style-definition"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -17,9 +17,8 @@
|
|||||||
- "-Wno-address"
|
- "-Wno-address"
|
||||||
- "-std=c99"
|
- "-std=c99"
|
||||||
- "-pedantic"
|
- "-pedantic"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -38,9 +38,8 @@
|
|||||||
- "--opt=none"
|
- "--opt=none"
|
||||||
- "-c"
|
- "-c"
|
||||||
- "-M"
|
- "-M"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- " ${2}"
|
- " ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -32,9 +32,8 @@
|
|||||||
- "--warnings_are_errors"
|
- "--warnings_are_errors"
|
||||||
- "--fpu None"
|
- "--fpu None"
|
||||||
- "--diag_suppress Pa050"
|
- "--diag_suppress Pa050"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -31,9 +31,8 @@
|
|||||||
- "--diag_suppress=Pe111"
|
- "--diag_suppress=Pe111"
|
||||||
- "-e"
|
- "-e"
|
||||||
- "-On"
|
- "-On"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -31,9 +31,8 @@
|
|||||||
- "--diag_suppress=Pe111"
|
- "--diag_suppress=Pe111"
|
||||||
- "-e"
|
- "-e"
|
||||||
- "-On"
|
- "-On"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -23,9 +23,8 @@
|
|||||||
- "--interwork"
|
- "--interwork"
|
||||||
- "--warnings_are_errors"
|
- "--warnings_are_errors"
|
||||||
- "-Oh"
|
- "-Oh"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -31,9 +31,8 @@
|
|||||||
- "--diag_suppress=Pe111"
|
- "--diag_suppress=Pe111"
|
||||||
- "-e"
|
- "-e"
|
||||||
- "-On"
|
- "-On"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -25,9 +25,8 @@
|
|||||||
- "--double=32"
|
- "--double=32"
|
||||||
- "--diag_suppress Pa050"
|
- "--diag_suppress Pa050"
|
||||||
- "--diag_suppress Pe111"
|
- "--diag_suppress Pe111"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
@@ -33,9 +33,8 @@
|
|||||||
- "--mfc"
|
- "--mfc"
|
||||||
- "--use_unix_directory_separators"
|
- "--use_unix_directory_separators"
|
||||||
- "--diag_suppress=Pe161"
|
- "--diag_suppress=Pe161"
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
|
- '-I"${5}"'
|
||||||
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
|
- "-D${6}"
|
||||||
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
|
|
||||||
- "${1}"
|
- "${1}"
|
||||||
- "-o ${2}"
|
- "-o ${2}"
|
||||||
:test_linker:
|
:test_linker:
|
||||||
|
|||||||
Reference in New Issue
Block a user