mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2025-08-02 18:33:06 +08:00
Merge pull request #156 from pmendham/master
Two small changes to runner generation
This commit is contained in:
@ -28,6 +28,7 @@ class UnityTestRunnerGenerator
|
|||||||
:test_prefix => "test|spec|should",
|
:test_prefix => "test|spec|should",
|
||||||
:setup_name => "setUp",
|
:setup_name => "setUp",
|
||||||
:teardown_name => "tearDown",
|
:teardown_name => "tearDown",
|
||||||
|
:main_name => "main",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ class UnityTestRunnerGenerator
|
|||||||
|
|
||||||
if (@options[:header_file] && !@options[:header_file].empty?)
|
if (@options[:header_file] && !@options[:header_file].empty?)
|
||||||
File.open(@options[:header_file], 'w') do |output|
|
File.open(@options[:header_file], 'w') do |output|
|
||||||
create_h_file(output, @options[:header_file], tests, testfile_includes)
|
create_h_file(output, @options[:header_file], tests, testfile_includes, used_mocks)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -288,7 +289,10 @@ class UnityTestRunnerGenerator
|
|||||||
|
|
||||||
def create_main(output, filename, tests, used_mocks)
|
def create_main(output, filename, tests, used_mocks)
|
||||||
output.puts("\n\n//=======MAIN=====")
|
output.puts("\n\n//=======MAIN=====")
|
||||||
output.puts("int main(void)")
|
if (@options[:main_name] != "main")
|
||||||
|
output.puts("int #{@options[:main_name]}(void);")
|
||||||
|
end
|
||||||
|
output.puts("int #{@options[:main_name]}(void)")
|
||||||
output.puts("{")
|
output.puts("{")
|
||||||
output.puts(" suite_setup();") unless @options[:suite_setup].nil?
|
output.puts(" suite_setup();") unless @options[:suite_setup].nil?
|
||||||
output.puts(" UnityBegin(\"#{filename.gsub(/\\/,'\\\\')}\");")
|
output.puts(" UnityBegin(\"#{filename.gsub(/\\/,'\\\\')}\");")
|
||||||
@ -309,11 +313,13 @@ class UnityTestRunnerGenerator
|
|||||||
output.puts("}")
|
output.puts("}")
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_h_file(output, filename, tests, testfile_includes)
|
def create_h_file(output, filename, tests, testfile_includes, used_mocks)
|
||||||
filename = filename.upcase.gsub(/(?:\/|\\|\.)*/,'_')
|
filename = File.basename(filename).gsub(/[-\/\\\.\,\s]/, "_").upcase
|
||||||
output.puts("/* AUTOGENERATED FILE. DO NOT EDIT. */")
|
output.puts("/* AUTOGENERATED FILE. DO NOT EDIT. */")
|
||||||
output.puts("#ifndef _#{filename}")
|
output.puts("#ifndef _#{filename}")
|
||||||
output.puts("#define _#{filename}\n\n")
|
output.puts("#define _#{filename}\n\n")
|
||||||
|
output.puts("#include \"#{@options[:framework].to_s}.h\"")
|
||||||
|
output.puts('#include "cmock.h"') unless (used_mocks.empty?)
|
||||||
@options[:includes].flatten.uniq.compact.each do |inc|
|
@options[:includes].flatten.uniq.compact.each do |inc|
|
||||||
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
|
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
|
||||||
end
|
end
|
||||||
@ -321,7 +327,13 @@ class UnityTestRunnerGenerator
|
|||||||
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
|
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
|
||||||
end
|
end
|
||||||
output.puts "\n"
|
output.puts "\n"
|
||||||
tests.each {|test| output.puts("void #{test[:test]}(#{test[:params]});") }
|
tests.each do |test|
|
||||||
|
if ((test[:params].nil?) or (test[:params].empty?))
|
||||||
|
output.puts("void #{test[:test]}(void);")
|
||||||
|
else
|
||||||
|
output.puts("void #{test[:test]}(#{test[:params]});")
|
||||||
|
end
|
||||||
|
end
|
||||||
output.puts("#endif\n\n")
|
output.puts("#endif\n\n")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -337,10 +349,10 @@ if ($0 == __FILE__)
|
|||||||
options[:plugins] = [:cexception]; true
|
options[:plugins] = [:cexception]; true
|
||||||
when /\.*\.ya?ml/
|
when /\.*\.ya?ml/
|
||||||
options = UnityTestRunnerGenerator.grab_config(arg); true
|
options = UnityTestRunnerGenerator.grab_config(arg); true
|
||||||
when /\.*\.h/
|
|
||||||
options[:includes] << arg; true
|
|
||||||
when /--(\w+)=\"?(.*)\"?/
|
when /--(\w+)=\"?(.*)\"?/
|
||||||
options[$1.to_sym] = $2; true
|
options[$1.to_sym] = $2; true
|
||||||
|
when /\.*\.h/
|
||||||
|
options[:includes] << arg; true
|
||||||
else false
|
else false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -358,6 +370,7 @@ if ($0 == __FILE__)
|
|||||||
" -cexception - include cexception support",
|
" -cexception - include cexception support",
|
||||||
" --setup_name=\"\" - redefine setUp func name to something else",
|
" --setup_name=\"\" - redefine setUp func name to something else",
|
||||||
" --teardown_name=\"\" - redefine tearDown func name to something else",
|
" --teardown_name=\"\" - redefine tearDown func name to something else",
|
||||||
|
" --main_name=\"\" - redefine main func name to something else",
|
||||||
" --test_prefix=\"\" - redefine test prefix from default test|spec|should",
|
" --test_prefix=\"\" - redefine test prefix from default test|spec|should",
|
||||||
" --suite_setup=\"\" - code to execute for setup of entire suite",
|
" --suite_setup=\"\" - code to execute for setup of entire suite",
|
||||||
" --suite_teardown=\"\" - code to execute for teardown of entire suite",
|
" --suite_teardown=\"\" - code to execute for teardown of entire suite",
|
||||||
|
Reference in New Issue
Block a user