提交 044a1f51 编写于 作者: M Mark VanderVoord

Merge pull request #156 from pmendham/master

Two small changes to runner generation
...@@ -28,6 +28,7 @@ class UnityTestRunnerGenerator ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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__) ...@@ -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__) ...@@ -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",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册