adding new ceedling test project
This commit is contained in:
4
test/vendor/ceedling/plugins/module_generator/config/module_generator.yml
vendored
Normal file
4
test/vendor/ceedling/plugins/module_generator/config/module_generator.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
:module_generator:
|
||||
:project_root: ./
|
||||
:source_root: src/
|
||||
:test_root: test/
|
||||
51
test/vendor/ceedling/plugins/module_generator/lib/module_generator.rb
vendored
Normal file
51
test/vendor/ceedling/plugins/module_generator/lib/module_generator.rb
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
require 'ceedling/plugin'
|
||||
require 'ceedling/constants'
|
||||
require 'erb'
|
||||
require 'fileutils'
|
||||
|
||||
class ModuleGenerator < Plugin
|
||||
|
||||
attr_reader :config
|
||||
|
||||
def create(module_name, optz={})
|
||||
|
||||
require "generate_module.rb" #From Unity Scripts
|
||||
|
||||
if ((!optz.nil?) && (optz[:destroy]))
|
||||
UnityModuleGenerator.new( divine_options(optz) ).destroy(module_name)
|
||||
else
|
||||
UnityModuleGenerator.new( divine_options(optz) ).generate(module_name)
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def divine_options(optz={})
|
||||
unity_generator_options =
|
||||
{
|
||||
:path_src => ((defined? MODULE_GENERATOR_SOURCE_ROOT ) ? MODULE_GENERATOR_SOURCE_ROOT.gsub('\\', '/').sub(/^\//, '').sub(/\/$/, '') : "src" ),
|
||||
:path_inc => ((defined? MODULE_GENERATOR_INC_ROOT ) ?
|
||||
MODULE_GENERATOR_INC_ROOT.gsub('\\', '/').sub(/^\//, '').sub(/\/$/, '')
|
||||
: (defined? MODULE_GENERATOR_SOURCE_ROOT ) ?
|
||||
MODULE_GENERATOR_SOURCE_ROOT.gsub('\\', '/').sub(/^\//, '').sub(/\/$/, '')
|
||||
: "src" ),
|
||||
:path_tst => ((defined? MODULE_GENERATOR_TEST_ROOT ) ? MODULE_GENERATOR_TEST_ROOT.gsub( '\\', '/').sub(/^\//, '').sub(/\/$/, '') : "test" ),
|
||||
:pattern => optz[:pattern],
|
||||
:test_prefix => ((defined? PROJECT_TEST_FILE_PREFIX ) ? PROJECT_TEST_FILE_PREFIX : "Test" ),
|
||||
:mock_prefix => ((defined? CMOCK_MOCK_PREFIX ) ? CMOCK_MOCK_PREFIX : "Mock" ),
|
||||
:includes => ((defined? MODULE_GENERATOR_INCLUDES ) ? MODULE_GENERATOR_INCLUDES : {} ),
|
||||
:boilerplates => ((defined? MODULE_GENERATOR_BOILERPLATES) ? MODULE_GENERATOR_BOILERPLATES : {} ),
|
||||
:naming => ((defined? MODULE_GENERATOR_NAMING ) ? MODULE_GENERATOR_NAMING : nil ),
|
||||
:update_svn => ((defined? MODULE_GENERATOR_UPDATE_SVN ) ? MODULE_GENERATOR_UPDATE_SVN : false ),
|
||||
}
|
||||
|
||||
unless optz[:module_root_path].to_s.empty?
|
||||
unity_generator_options[:path_src] = File.join(optz[:module_root_path], unity_generator_options[:path_src])
|
||||
unity_generator_options[:path_inc] = File.join(optz[:module_root_path], unity_generator_options[:path_inc])
|
||||
unity_generator_options[:path_tst] = File.join(optz[:module_root_path], unity_generator_options[:path_tst])
|
||||
end
|
||||
|
||||
return unity_generator_options
|
||||
end
|
||||
|
||||
end
|
||||
43
test/vendor/ceedling/plugins/module_generator/module_generator.rake
vendored
Normal file
43
test/vendor/ceedling/plugins/module_generator/module_generator.rake
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
namespace :module do
|
||||
module_root_separator = ":"
|
||||
|
||||
desc "Generate module (source, header and test files)"
|
||||
task :create, :module_path do |t, args|
|
||||
files = [args[:module_path]] + (args.extras || [])
|
||||
optz = { :module_root_path => "" }
|
||||
["dh", "dih", "mch", "mvp", "src", "test"].each do |pat|
|
||||
p = files.delete(pat)
|
||||
optz[:pattern] = p unless p.nil?
|
||||
end
|
||||
files.each {
|
||||
|v|
|
||||
module_root_path, module_name = v.split(module_root_separator, 2)
|
||||
if module_name
|
||||
optz[:module_root_path] = module_root_path
|
||||
v = module_name
|
||||
end
|
||||
@ceedling[:module_generator].create(v, optz)
|
||||
}
|
||||
end
|
||||
|
||||
desc "Destroy module (source, header and test files)"
|
||||
task :destroy, :module_path do |t, args|
|
||||
files = [args[:module_path]] + (args.extras || [])
|
||||
optz = { :destroy => true, :module_root_path => "" }
|
||||
["dh", "dih", "mch", "mvp", "src", "test"].each do |pat|
|
||||
p = files.delete(pat)
|
||||
optz[:pattern] = p unless p.nil?
|
||||
end
|
||||
files.each {
|
||||
|v|
|
||||
module_root_path, module_name = v.split(module_root_separator, 2)
|
||||
if module_name
|
||||
optz[:module_root_path] = module_root_path
|
||||
v = module_name
|
||||
end
|
||||
@ceedling[:module_generator].create(v, optz)
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user