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

Merge pull request #156 from pmendham/master

Two small changes to runner generation
......@@ -28,6 +28,7 @@ class UnityTestRunnerGenerator
:test_prefix => "test|spec|should",
:setup_name => "setUp",
:teardown_name => "tearDown",
:main_name => "main",
}
end
......@@ -82,7 +83,7 @@ class UnityTestRunnerGenerator
if (@options[:header_file] && !@options[:header_file].empty?)
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
......@@ -288,7 +289,10 @@ class UnityTestRunnerGenerator
def create_main(output, filename, tests, used_mocks)
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(" suite_setup();") unless @options[:suite_setup].nil?
output.puts(" UnityBegin(\"#{filename.gsub(/\\/,'\\\\')}\");")
......@@ -309,11 +313,13 @@ class UnityTestRunnerGenerator
output.puts("}")
end
def create_h_file(output, filename, tests, testfile_includes)
filename = filename.upcase.gsub(/(?:\/|\\|\.)*/,'_')
def create_h_file(output, filename, tests, testfile_includes, used_mocks)
filename = File.basename(filename).gsub(/[-\/\\\.\,\s]/, "_").upcase
output.puts("/* AUTOGENERATED FILE. DO NOT EDIT. */")
output.puts("#ifndef _#{filename}")
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|
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
end
......@@ -321,7 +327,13 @@ class UnityTestRunnerGenerator
output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
end
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")
end
end
......@@ -337,10 +349,10 @@ if ($0 == __FILE__)
options[:plugins] = [:cexception]; true
when /\.*\.ya?ml/
options = UnityTestRunnerGenerator.grab_config(arg); true
when /\.*\.h/
options[:includes] << arg; true
when /--(\w+)=\"?(.*)\"?/
options[$1.to_sym] = $2; true
when /\.*\.h/
options[:includes] << arg; true
else false
end
end
......@@ -358,6 +370,7 @@ if ($0 == __FILE__)
" -cexception - include cexception support",
" --setup_name=\"\" - redefine setUp 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",
" --suite_setup=\"\" - code to execute for setup 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.
先完成此消息的编辑!
想要评论请 注册