mirror of
https://github.com/ThrowTheSwitch/CMock.git
synced 2026-09-12 05:09:58 +00:00
update the create_makefile script to be independent and not require pointless middleware scripts.
This commit is contained in:
@@ -28,6 +28,8 @@ MOCK_PREFIX = ENV.fetch('TEST_MOCK_PREFIX', 'mock_')
|
|||||||
MOCK_SUFFIX = ENV.fetch('TEST_MOCK_SUFFIX', '')
|
MOCK_SUFFIX = ENV.fetch('TEST_MOCK_SUFFIX', '')
|
||||||
TEST_MAKEFILE = ENV.fetch('TEST_MAKEFILE', File.join(TEST_BUILD_DIR, 'MakefileTestSupport'))
|
TEST_MAKEFILE = ENV.fetch('TEST_MAKEFILE', File.join(TEST_BUILD_DIR, 'MakefileTestSupport'))
|
||||||
MOCK_MATCHER = /#{MOCK_PREFIX}[A-Za-z_][A-Za-z0-9_\-.]+#{MOCK_SUFFIX}/
|
MOCK_MATCHER = /#{MOCK_PREFIX}[A-Za-z_][A-Za-z0-9_\-.]+#{MOCK_SUFFIX}/
|
||||||
|
OPTION_FILE = ENV.fetch('TEST_OPTION_YML_FILE', '')
|
||||||
|
OPTION_FILE_FLAG = OPTION_FILE.empty? ? '' : "-o#{OPTION_FILE}"
|
||||||
|
|
||||||
[TEST_BUILD_DIR, OBJ_DIR, RUNNERS_DIR, MOCKS_DIR, TEST_BIN_DIR].each do |dir|
|
[TEST_BUILD_DIR, OBJ_DIR, RUNNERS_DIR, MOCKS_DIR, TEST_BIN_DIR].each do |dir|
|
||||||
FileUtils.mkdir_p dir
|
FileUtils.mkdir_p dir
|
||||||
@@ -126,7 +128,7 @@ File.open(TEST_MAKEFILE, 'w') do |mkfile|
|
|||||||
|
|
||||||
# Create runners
|
# Create runners
|
||||||
mkfile.puts "#{runner_source}: #{test}"
|
mkfile.puts "#{runner_source}: #{test}"
|
||||||
mkfile.puts "\t@UNITY_DIR=${UNITY_DIR} ruby ${CMOCK_DIR}/scripts/create_runner.rb #{test} #{runner_source}"
|
mkfile.puts "\truby #{UNITY_DIR}/auto/generate_test_runner.rb #{OPTION_FILE} #{test} #{runner_source}"
|
||||||
mkfile.puts ''
|
mkfile.puts ''
|
||||||
|
|
||||||
# Build runner
|
# Build runner
|
||||||
@@ -189,7 +191,7 @@ File.open(TEST_MAKEFILE, 'w') do |mkfile|
|
|||||||
mock_obj = File.join(MOCKS_DIR, "#{mock_name}.o")
|
mock_obj = File.join(MOCKS_DIR, "#{mock_name}.o")
|
||||||
|
|
||||||
mkfile.puts "#{mock_src}: #{hdr}"
|
mkfile.puts "#{mock_src}: #{hdr}"
|
||||||
mkfile.puts "\t@CMOCK_DIR=${CMOCK_DIR} ruby ${CMOCK_DIR}/scripts/create_mock.rb #{hdr}"
|
mkfile.puts "\truby #{CMOCK_DIR}/lib/cmock.rb #{hdr} --mock_path=#{MOCKS_DIR} #{OPTION_FILE_FLAG}"
|
||||||
mkfile.puts ''
|
mkfile.puts ''
|
||||||
|
|
||||||
mkfile.puts "#{mock_obj}: #{mock_src} #{mock_header}"
|
mkfile.puts "#{mock_obj}: #{mock_src} #{mock_header}"
|
||||||
@@ -199,7 +201,7 @@ File.open(TEST_MAKEFILE, 'w') do |mkfile|
|
|||||||
|
|
||||||
# Create test summary task
|
# Create test summary task
|
||||||
mkfile.puts 'test_summary:'
|
mkfile.puts 'test_summary:'
|
||||||
mkfile.puts "\t@UNITY_DIR=${UNITY_DIR} ruby ${CMOCK_DIR}/scripts/test_summary.rb #{suppress_error ? '--silent' : ''}"
|
mkfile.puts "\truby #{UNITY_DIR}/auto/unity_test_summary.rb #{suppress_error ? '--silent' : ''} #{TEST_BUILD_DIR}"
|
||||||
mkfile.puts ''
|
mkfile.puts ''
|
||||||
mkfile.puts '.PHONY: test_summary'
|
mkfile.puts '.PHONY: test_summary'
|
||||||
mkfile.puts ''
|
mkfile.puts ''
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
# =========================================================================
|
|
||||||
# CMock - Automatic Mock Generation for C
|
|
||||||
# ThrowTheSwitch.org
|
|
||||||
# Copyright (c) 2007-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
# =========================================================================
|
|
||||||
|
|
||||||
require "#{ENV['CMOCK_DIR']}/lib/cmock"
|
|
||||||
|
|
||||||
raise 'Header file to mock must be specified!' unless ARGV.length >= 1
|
|
||||||
|
|
||||||
mock_out = ENV.fetch('MOCK_OUT', './build/test/mocks')
|
|
||||||
mock_prefix = ENV.fetch('MOCK_PREFIX', 'mock_')
|
|
||||||
cmock = CMock.new(:plugins => %i[ignore return_thru_ptr], :mock_prefix => mock_prefix, :mock_path => mock_out)
|
|
||||||
cmock.setup_mocks(ARGV[0])
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# =========================================================================
|
|
||||||
# CMock - Automatic Mock Generation for C
|
|
||||||
# ThrowTheSwitch.org
|
|
||||||
# Copyright (c) 2007-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
# =========================================================================
|
|
||||||
|
|
||||||
if $0 == __FILE__
|
|
||||||
|
|
||||||
# make sure there is at least one parameter left (the input file)
|
|
||||||
if ARGV.length < 2
|
|
||||||
puts ["\nusage: ruby #{__FILE__} input_test_file (output)",
|
|
||||||
'',
|
|
||||||
' input_test_file - this is the C file you want to create a runner for',
|
|
||||||
' output - this is the name of the runner file to generate',
|
|
||||||
' defaults to (input_test_file)_Runner'].join("\n")
|
|
||||||
exit 1
|
|
||||||
end
|
|
||||||
|
|
||||||
require "#{ENV['UNITY_DIR']}/auto/generate_test_runner"
|
|
||||||
|
|
||||||
test = ARGV[0]
|
|
||||||
runner = ARGV[1]
|
|
||||||
UnityTestRunnerGenerator.new.run(test, runner)
|
|
||||||
end
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# =========================================================================
|
|
||||||
# CMock - Automatic Mock Generation for C
|
|
||||||
# ThrowTheSwitch.org
|
|
||||||
# Copyright (c) 2007-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
|
|
||||||
# SPDX-License-Identifier: MIT
|
|
||||||
# =========================================================================
|
|
||||||
|
|
||||||
suppress_error = !ARGV.nil? && !ARGV.empty? && (ARGV[0].casecmp('--SILENT') == 0)
|
|
||||||
|
|
||||||
begin
|
|
||||||
require "#{ENV['UNITY_DIR']}/auto/unity_test_summary.rb"
|
|
||||||
|
|
||||||
build_dir = ENV.fetch('BUILD_DIR', './build')
|
|
||||||
test_build_dir = ENV.fetch('TEST_BUILD_DIR', File.join(build_dir, 'test'))
|
|
||||||
|
|
||||||
results = Dir["#{test_build_dir}/*.testresult"]
|
|
||||||
parser = UnityTestSummary.new
|
|
||||||
parser.targets = results
|
|
||||||
parser.run
|
|
||||||
puts parser.report
|
|
||||||
rescue StandardError => e
|
|
||||||
raise e unless suppress_error
|
|
||||||
end
|
|
||||||
|
|
||||||
exit(parser.failures) unless suppress_error
|
|
||||||
Reference in New Issue
Block a user