refactor self-test engine to match Ceedling's tool format

This commit is contained in:
Mark VanderVoord
2026-05-28 16:11:35 -04:00
parent 324d0624f3
commit 444fbda72a
18 changed files with 56 additions and 56 deletions
+16 -7
View File
@@ -16,13 +16,15 @@ module RakefileHelpers
def load_configuration(config_file)
return if $configured
unless config_file =~ /[\\|\/]/
if config_file =~ /[\\|\/]/
$cfg_file = config_file
else
$cfg_file_base = config_file
$cfg_file = "targets/#{config_file}"
$cfg_file = "targets/#{config_file}"
end
$cfg = YamlHelper.load_file($cfg_file)
$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']
$configured = true if config_file != DEFAULT_CONFIG_FILE
end
@@ -101,7 +103,14 @@ module RakefileHelpers
args = []
hash[:arguments].each do |arg|
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','')
[ File.join('..','src') ].each do |f|
args << pattern.gsub(/\$/,f)
@@ -115,7 +124,7 @@ module RakefileHelpers
elsif arg.include? ': 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)
end
@@ -141,7 +150,7 @@ module RakefileHelpers
end
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 )
execute(cmd_str)
out_file
@@ -170,7 +179,7 @@ module RakefileHelpers
"--style=allman --indent=spaces=4 --indent-switches --indent-preproc-define --indent-preproc-block " \
"--pad-oper --pad-comma --unpad-paren --pad-header " \
"--align-pointer=type --align-reference=name " \
"--add-brackets --mode=c --suffix=none " \
"--mode=c --suffix=none " \
"#{style_what}"
execute(command, false)
report "Styling C:PASS"
+2 -3
View File
@@ -47,9 +47,8 @@
- "-std=gnu99"
- "-pedantic"
- "-O0"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -46,9 +46,8 @@
- "-std=gnu99"
- "-pedantic"
- "-O0"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -17,9 +17,8 @@
- "-Wno-address"
- "-std=c99"
- "-pedantic"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -17,9 +17,8 @@
- "-Wno-address"
- "-std=c99"
- "-pedantic"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -18,9 +18,8 @@
- "-Wall"
- "-Wno-address"
- "-ansi"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -17,9 +17,8 @@
- "-Wno-address"
- "-std=c99"
- "-pedantic"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -30,9 +30,8 @@
- "-Wstrict-prototypes"
- "-Wundef"
- "-Wold-style-definition"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -17,9 +17,8 @@
- "-Wno-address"
- "-std=c99"
- "-pedantic"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -38,9 +38,8 @@
- "--opt=none"
- "-c"
- "-M"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- " ${2}"
:test_linker:
+2 -3
View File
@@ -32,9 +32,8 @@
- "--warnings_are_errors"
- "--fpu None"
- "--diag_suppress Pa050"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -31,9 +31,8 @@
- "--diag_suppress=Pe111"
- "-e"
- "-On"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -31,9 +31,8 @@
- "--diag_suppress=Pe111"
- "-e"
- "-On"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -23,9 +23,8 @@
- "--interwork"
- "--warnings_are_errors"
- "-Oh"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -31,9 +31,8 @@
- "--diag_suppress=Pe111"
- "-e"
- "-On"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -25,9 +25,8 @@
- "--double=32"
- "--diag_suppress Pa050"
- "--diag_suppress Pe111"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker:
+2 -3
View File
@@ -33,9 +33,8 @@
- "--mfc"
- "--use_unix_directory_separators"
- "--diag_suppress=Pe161"
- '-I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE'
- '-I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR'
- "-D$: COLLECTION_DEFINES_TEST_AND_VENDOR"
- '-I"${5}"'
- "-D${6}"
- "${1}"
- "-o ${2}"
:test_linker: