mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2025-06-23 08:08:46 +08:00
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).
This commit is contained in:
@ -83,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
|
||||||
@ -313,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
|
||||||
@ -325,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
|
||||||
@ -341,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
|
||||||
|
Reference in New Issue
Block a user