提交 55a75ded 编写于 作者: P Peter Mendham

Improved header file generation.

Changed the guard syntax as it was cumbersome for header files in deep
sub-directories. Added framework/mock includes to make the header file
stand alone. Made sure that a valid prototype was generated in the case of
no arguments (void).
上级 2e479911
......@@ -83,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
......@@ -313,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
......@@ -325,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
......@@ -341,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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册