mirror of
https://github.com/ThrowTheSwitch/Unity.git
synced 2025-06-22 23:45:50 +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?)
|
||||
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
|
||||
|
Reference in New Issue
Block a user