ceedling 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. data/lib/ceedling/version.rb +2 -2
  2. data/lib/ceedling/version.rb.erb +1 -1
  3. data/new_project_template/vendor/ceedling/lib/{build_invoker_helper.rb → build_invoker_utils.rb} +2 -2
  4. data/new_project_template/vendor/ceedling/lib/configurator.rb +56 -25
  5. data/new_project_template/vendor/ceedling/lib/configurator_builder.rb +20 -4
  6. data/new_project_template/vendor/ceedling/lib/constants.rb +3 -0
  7. data/new_project_template/vendor/ceedling/lib/defaults.rb +13 -2
  8. data/new_project_template/vendor/ceedling/lib/file_system_utils.rb +10 -0
  9. data/new_project_template/vendor/ceedling/lib/flaginator.rb +54 -0
  10. data/new_project_template/vendor/ceedling/lib/generator.rb +30 -9
  11. data/new_project_template/vendor/ceedling/lib/objects.yml +9 -5
  12. data/new_project_template/vendor/ceedling/lib/plugin.rb +23 -8
  13. data/new_project_template/vendor/ceedling/lib/plugin_manager.rb +14 -9
  14. data/new_project_template/vendor/ceedling/lib/preprocessinator_helper.rb +1 -1
  15. data/new_project_template/vendor/ceedling/lib/release_invoker.rb +9 -9
  16. data/new_project_template/vendor/ceedling/lib/release_invoker_helper.rb +2 -2
  17. data/new_project_template/vendor/ceedling/lib/rules_preprocess.rake +1 -1
  18. data/new_project_template/vendor/ceedling/lib/rules_release.rake +1 -1
  19. data/new_project_template/vendor/ceedling/lib/{rules_release_aux_dependencies.rake → rules_release_deep_dependencies.rake} +0 -0
  20. data/new_project_template/vendor/ceedling/lib/{rules_tests_aux_dependencies.rake → rules_tests_deep_dependencies.rake} +0 -0
  21. data/new_project_template/vendor/ceedling/lib/tasks_release.rake +14 -16
  22. data/new_project_template/vendor/ceedling/lib/tasks_release_deep_dependencies.rake +9 -0
  23. data/new_project_template/vendor/ceedling/lib/tasks_tests.rake +2 -7
  24. data/new_project_template/vendor/ceedling/lib/tasks_tests_deep_dependencies.rake +9 -0
  25. data/new_project_template/vendor/ceedling/lib/test_invoker.rb +20 -6
  26. data/new_project_template/vendor/ceedling/lib/test_invoker_helper.rb +2 -2
  27. data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rake +2 -2
  28. data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rb +5 -4
  29. data/new_project_template/vendor/ceedling/plugins/gcov/gcov.rake +2 -2
  30. data/new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.rb +1 -1
  31. data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.rb +1 -1
  32. data/new_project_template/vendor/ceedling/plugins/xml_tests_report/xml_tests_report.rb +1 -1
  33. data/new_project_template/vendor/ceedling/release/build.info +1 -1
  34. metadata +13 -8
@@ -2,10 +2,10 @@
2
2
  module Ceedling
3
3
  module Version
4
4
  # @private
5
- GEM = "0.0.16"
5
+ GEM = "0.0.17"
6
6
 
7
7
  # @private
8
- CEEDLING = "0.9.200"
8
+ CEEDLING = "0.9.212"
9
9
  # @private
10
10
  CEXCEPTION = "1.2.17"
11
11
  # @private
@@ -2,7 +2,7 @@
2
2
  module Ceedling
3
3
  module Version
4
4
  # @private
5
- GEM = "0.0.16"
5
+ GEM = "0.0.17"
6
6
 
7
7
  # @private
8
8
  CEEDLING = "<%= versions["CEEDLING"] %>"
@@ -1,7 +1,7 @@
1
1
  require 'constants'
2
2
 
3
3
 
4
- class BuildInvokerHelper
4
+ class BuildInvokerUtils
5
5
 
6
6
  constructor :configurator, :streaminator
7
7
 
@@ -13,7 +13,7 @@ class BuildInvokerHelper
13
13
 
14
14
  @streaminator.stderr_puts( error_header )
15
15
 
16
- if (@configurator.project_use_auxiliary_dependencies)
16
+ if (@configurator.project_use_deep_dependencies)
17
17
  help_message = "Try fixing #include statements or adding missing file. Then run '#{REFRESH_TASK_ROOT}#{context.to_s}' task and try again."
18
18
  @streaminator.stderr_puts( help_message )
19
19
  end
@@ -71,11 +71,11 @@ class Configurator
71
71
 
72
72
  @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST )
73
73
  @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST_PREPROCESSORS ) if (config[:project][:use_test_preprocessor])
74
- @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST_DEPENDENCIES ) if (config[:project][:use_auxiliary_dependencies])
74
+ @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_TEST_DEPENDENCIES ) if (config[:project][:use_deep_dependencies])
75
75
 
76
76
  @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE ) if (config[:project][:release_build])
77
77
  @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE_ASSEMBLER ) if (config[:project][:release_build] and config[:release_build][:use_assembly])
78
- @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE_DEPENDENCIES ) if (config[:project][:release_build] and config[:project][:use_auxiliary_dependencies])
78
+ @configurator_builder.populate_defaults( config, DEFAULT_TOOLS_RELEASE_DEPENDENCIES ) if (config[:project][:release_build] and config[:project][:use_deep_dependencies])
79
79
  end
80
80
 
81
81
 
@@ -110,10 +110,12 @@ class Configurator
110
110
  @cmock_builder.manufacture(cmock)
111
111
  end
112
112
 
113
+
113
114
  def get_runner_config
114
115
  @runner_config
115
116
  end
116
117
 
118
+
117
119
  # grab tool names from yaml and insert into tool structures so available for error messages
118
120
  # set up default values
119
121
  def tools_setup(config)
@@ -134,6 +136,7 @@ class Configurator
134
136
  end
135
137
  end
136
138
 
139
+
137
140
  def tools_supplement_arguments(config)
138
141
  tools_name_prefix = 'tools_'
139
142
  config[:tools].each_key do |name|
@@ -150,8 +153,10 @@ class Configurator
150
153
  end
151
154
  end
152
155
 
156
+
153
157
  def find_and_merge_plugins(config)
154
- # plugins must be loaded before generic path evaluation & magic that happen later: perform path magic here as discrete step
158
+ # plugins must be loaded before generic path evaluation & magic that happen later;
159
+ # perform path magic here as discrete step
155
160
  config[:plugins][:load_paths].each do |path|
156
161
  path.replace(@system_wrapper.module_eval(path)) if (path =~ RUBY_STRING_REPLACEMENT_PATTERN)
157
162
  FilePathUtils::standardize(path)
@@ -188,7 +193,7 @@ class Configurator
188
193
  interstitial = ((key == :path) ? File::PATH_SEPARATOR : '')
189
194
  items = ((value.class == Array) ? hash[key] : [value])
190
195
 
191
- items.map { |item| item.replace( @system_wrapper.module_eval( item ) ) if (item =~ RUBY_STRING_REPLACEMENT_PATTERN) }
196
+ items.each { |item| item.replace( @system_wrapper.module_eval( item ) ) if (item =~ RUBY_STRING_REPLACEMENT_PATTERN) }
192
197
  hash[key] = items.join( interstitial )
193
198
 
194
199
  @system_wrapper.env_set( key.to_s.upcase, hash[key] )
@@ -197,38 +202,47 @@ class Configurator
197
202
 
198
203
 
199
204
  def eval_paths(config)
200
- # [:plugins]:load_paths] already handled
201
- individual_paths = [
205
+ # [:plugins]:[load_paths] already handled
206
+
207
+ paths = [ # individual paths that don't follow convention processed below
202
208
  config[:project][:build_root],
203
- config[:project][:options_paths]]
204
-
205
- individual_paths.flatten.each do |path|
206
- path.replace(@system_wrapper.module_eval(path)) if (path =~ RUBY_STRING_REPLACEMENT_PATTERN)
207
- end
208
-
209
- config[:paths].each_pair do |key, list|
210
- list.each { |path_entry| path_entry.replace(@system_wrapper.module_eval(path_entry)) if (path_entry =~ RUBY_STRING_REPLACEMENT_PATTERN) }
211
- end
209
+ config[:release_build][:artifacts]]
210
+
211
+ eval_path_list( paths )
212
+
213
+ config[:paths].each_pair { |collection, paths| eval_path_list( paths ) }
214
+
215
+ config[:files].each_pair { |collection, files| eval_path_list( paths ) }
216
+
217
+ # all other paths at secondary hash key level processed by convention:
218
+ # ex. [:toplevel][:foo_path] & [:toplevel][:bar_paths] are evaluated
219
+ config.each_pair { |parent, child| eval_path_list( collect_path_list( child ) ) }
212
220
  end
213
221
 
214
222
 
215
223
  def standardize_paths(config)
216
- # [:plugins]:load_paths] already handled
217
- individual_paths = [
224
+ # [:plugins]:[load_paths] already handled
225
+
226
+ paths = [ # individual paths that don't follow convention processed below
218
227
  config[:project][:build_root],
219
- config[:project][:options_paths],
220
- config[:cmock][:mock_path]] # cmock path in case it was explicitly set in config
228
+ config[:release_build][:artifacts]]
221
229
 
222
- individual_paths.flatten.each { |path| FilePathUtils::standardize(path) }
230
+ paths.flatten.each { |path| FilePathUtils::standardize( path ) }
223
231
 
224
- config[:paths].each_pair do |key, list|
225
- list.each{|path| FilePathUtils::standardize(path)}
232
+ config[:paths].each_pair do |collection, paths|
233
+ paths.each{|path| FilePathUtils::standardize( path )}
226
234
  # ensure that list is an array (i.e. handle case of list being a single string)
227
- config[:paths][key] = [list].flatten
235
+ config[:paths][collection] = [paths].flatten
228
236
  end
229
237
 
230
- config[:tools].each_pair do |key, tool_config|
231
- FilePathUtils::standardize(tool_config[:executable])
238
+ config[:files].each_pair { |collection, files| files.each{ |path| FilePathUtils::standardize( path ) } }
239
+
240
+ config[:tools].each_pair { |tool, config| FilePathUtils::standardize( config[:executable] ) }
241
+
242
+ # all other paths at secondary hash key level processed by convention:
243
+ # ex. [:toplevel][:foo_path] & [:toplevel][:bar_paths] are standardized
244
+ config.each_pair do |parent, child|
245
+ collect_path_list( child ).each { |path| FilePathUtils::standardize( path ) }
232
246
  end
233
247
  end
234
248
 
@@ -295,4 +309,21 @@ class Configurator
295
309
  end
296
310
  end
297
311
 
312
+ ### private ###
313
+
314
+ private
315
+
316
+ def collect_path_list( container )
317
+ paths = []
318
+ container.each_key { |key| paths << container[key] if (key.to_s =~ /_path(s)?$/) } if (container.class == Hash)
319
+ return paths.flatten
320
+ end
321
+
322
+ def eval_path_list( paths )
323
+ paths.flatten.each do |path|
324
+ path.replace( @system_wrapper.module_eval( path ) ) if (path =~ RUBY_STRING_REPLACEMENT_PATTERN)
325
+ end
326
+ end
327
+
328
+
298
329
  end
@@ -150,10 +150,12 @@ class ConfiguratorBuilder
150
150
 
151
151
  out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'rules_cmock.rake') if (in_hash[:project_use_mocks])
152
152
  out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'rules_preprocess.rake') if (in_hash[:project_use_test_preprocessor])
153
- out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'rules_tests_aux_dependencies.rake') if (in_hash[:project_use_auxiliary_dependencies])
153
+ out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'rules_tests_deep_dependencies.rake') if (in_hash[:project_use_deep_dependencies])
154
+ out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'tasks_tests_deep_dependencies.rake') if (in_hash[:project_use_deep_dependencies])
154
155
 
155
- out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'rules_release_aux_dependencies.rake') if (in_hash[:project_release_build] and in_hash[:project_use_auxiliary_dependencies])
156
+ out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'rules_release_deep_dependencies.rake') if (in_hash[:project_release_build] and in_hash[:project_use_deep_dependencies])
156
157
  out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'rules_release.rake') if (in_hash[:project_release_build])
158
+ out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'tasks_release_deep_dependencies.rake') if (in_hash[:project_release_build] and in_hash[:project_use_deep_dependencies])
157
159
  out_hash[:project_rakefile_component_files] << File.join(CEEDLING_LIB, 'tasks_release.rake') if (in_hash[:project_release_build])
158
160
 
159
161
  return out_hash
@@ -279,6 +281,8 @@ class ConfiguratorBuilder
279
281
  all_tests.include( File.join(path, "#{in_hash[:project_test_file_prefix]}*#{in_hash[:extension_source]}") )
280
282
  end
281
283
 
284
+ @file_system_utils.revise_file_list( all_tests, in_hash[:files_test] )
285
+
282
286
  return {:collection_all_tests => all_tests}
283
287
  end
284
288
 
@@ -292,6 +296,8 @@ class ConfiguratorBuilder
292
296
  all_assembly.include( File.join(path, "*#{in_hash[:extension_assembly]}") )
293
297
  end
294
298
 
299
+ @file_system_utils.revise_file_list( all_assembly, in_hash[:files_assembly] )
300
+
295
301
  return {:collection_all_assembly => all_assembly}
296
302
  end
297
303
 
@@ -303,6 +309,8 @@ class ConfiguratorBuilder
303
309
  all_source.include( File.join(path, "*#{in_hash[:extension_source]}") )
304
310
  end
305
311
 
312
+ @file_system_utils.revise_file_list( all_source, in_hash[:files_source] )
313
+
306
314
  return {:collection_all_source => all_source}
307
315
  end
308
316
 
@@ -316,9 +324,11 @@ class ConfiguratorBuilder
316
324
  in_hash[:collection_paths_source] +
317
325
  in_hash[:collection_paths_include]
318
326
 
319
- (paths).each do |path|
327
+ paths.each do |path|
320
328
  all_headers.include( File.join(path, "*#{in_hash[:extension_header]}") )
321
329
  end
330
+
331
+ @file_system_utils.revise_file_list( all_headers, in_hash[:files_include] )
322
332
 
323
333
  return {:collection_all_headers => all_headers}
324
334
  end
@@ -337,11 +347,17 @@ class ConfiguratorBuilder
337
347
  paths << FilePathUtils::form_ceedling_vendor_path(CEXCEPTION_LIB_PATH) if (in_hash[:project_use_exceptions])
338
348
  paths << FilePathUtils::form_ceedling_vendor_path(CMOCK_LIB_PATH) if (in_hash[:project_use_mocks])
339
349
 
340
- (paths).each do |path|
350
+ paths.each do |path|
341
351
  all_input.include( File.join(path, "*#{in_hash[:extension_header]}") )
342
352
  all_input.include( File.join(path, "*#{in_hash[:extension_source]}") )
343
353
  end
344
354
 
355
+ @file_system_utils.revise_file_list( all_input, in_hash[:files_test] )
356
+ @file_system_utils.revise_file_list( all_input, in_hash[:files_support] )
357
+ @file_system_utils.revise_file_list( all_input, in_hash[:files_source] )
358
+ @file_system_utils.revise_file_list( all_input, in_hash[:files_include] )
359
+ # finding assembly files handled explicitly through other means
360
+
345
361
  return {:collection_all_existing_compilation_input => all_input}
346
362
  end
347
363
 
@@ -76,6 +76,9 @@ UTILS_ROOT_NAME = 'utils'
76
76
  UTILS_TASK_ROOT = UTILS_ROOT_NAME + ':'
77
77
  UTILS_SYM = UTILS_ROOT_NAME.to_sym
78
78
 
79
+ OPERATION_COMPILE_SYM = :compile
80
+ OPERATION_LINK_SYM = :link
81
+
79
82
 
80
83
  RUBY_STRING_REPLACEMENT_PATTERN = /#\{.+\}/
81
84
  RUBY_EVAL_REPLACEMENT_PATTERN = /^\{(.+)\}$/
@@ -218,7 +218,7 @@ DEFAULT_CEEDLING_CONFIG = {
218
218
  :use_exceptions => true,
219
219
  :use_mocks => true,
220
220
  :use_test_preprocessor => false,
221
- :use_auxiliary_dependencies => false,
221
+ :use_deep_dependencies => false,
222
222
  :test_file_prefix => 'test_',
223
223
  :options_paths => [],
224
224
  :release_build => false,
@@ -226,7 +226,8 @@ DEFAULT_CEEDLING_CONFIG = {
226
226
 
227
227
  :release_build => {
228
228
  # :output is set while building configuration -- allows smart default system-dependent file extension handling
229
- :use_assembly => false,
229
+ :use_assembly => false,
230
+ :artifacts => [],
230
231
  },
231
232
 
232
233
  :paths => {
@@ -238,6 +239,14 @@ DEFAULT_CEEDLING_CONFIG = {
238
239
  :release_toolchain_include => [],
239
240
  },
240
241
 
242
+ :files => {
243
+ :test => [],
244
+ :source => [],
245
+ :assembly => [],
246
+ :support => [],
247
+ :include => [],
248
+ },
249
+
241
250
  # unlike other top-level entries, environment's value is an array to preserve order
242
251
  :environment => [
243
252
  # when evaluated, this provides wider text field for rake task comments
@@ -251,6 +260,8 @@ DEFAULT_CEEDLING_CONFIG = {
251
260
  :release_preprocess => [],
252
261
  },
253
262
 
263
+ :flags => {},
264
+
254
265
  :extension => {
255
266
  :header => '.h',
256
267
  :source => '.c',
@@ -56,4 +56,14 @@ class FileSystemUtils
56
56
  return (plus - minus).to_a.uniq
57
57
  end
58
58
 
59
+
60
+ # given a file list, add to it or remove from it
61
+ def revise_file_list(list, revisions)
62
+ revisions.each do |revision|
63
+ # include or exclude file or glob to file list
64
+ file = FilePathUtils.extract_path_no_aggregation_operators( revision )
65
+ FilePathUtils.add_path?(revision) ? list.include(file) : list.exclude(file)
66
+ end
67
+ end
68
+
59
69
  end
@@ -0,0 +1,54 @@
1
+ require 'rubygems'
2
+ require 'rake' # for ext()
3
+ require 'fileutils'
4
+ require 'constants'
5
+
6
+
7
+ # :flags:
8
+ # :release:
9
+ # :compile:
10
+ # :*: # add '-foo' to compilation of all files not main.c
11
+ # - -foo
12
+ # :main: # add '-Wall' to compilation of main.c
13
+ # - -Wall
14
+ # :test:
15
+ # :link:
16
+ # :test_main: # add '--bar --baz' to linking of test_main.exe
17
+ # - --bar
18
+ # - --baz
19
+
20
+
21
+ class Flaginator
22
+
23
+ constructor :configurator
24
+
25
+ def flag_down( operation, context, file )
26
+ # create configurator accessor method
27
+ accessor = ('flags_' + context.to_s).to_sym
28
+
29
+ # create simple filename key from whatever filename provided
30
+ file_key = File.basename( file ).ext('').to_sym
31
+
32
+ # if no entry in configuration for flags for this context, bail out
33
+ return [] if not @configurator.respond_to?( accessor )
34
+
35
+ # get flags sub hash associated with this context
36
+ flags = @configurator.send( accessor )
37
+
38
+ # if operation not represented in flags hash, bail out
39
+ return [] if not flags.include?( operation )
40
+
41
+ # redefine flags to sub hash associated with the operation
42
+ flags = flags[operation]
43
+
44
+ # if our file is in the flags hash, extract the array of flags
45
+ if (flags.include?( file_key )) then return flags[file_key]
46
+ # if our file isn't in the flags hash, but there is default for all other files, extract array of flags
47
+ elsif (flags.include?( :* )) then return flags[:*]
48
+ end
49
+
50
+ # fall through: flags were specified but none applying to present file
51
+ return []
52
+ end
53
+
54
+ end
@@ -3,7 +3,18 @@ require 'constants'
3
3
 
4
4
  class Generator
5
5
 
6
- constructor :configurator, :generator_helper, :preprocessinator, :cmock_builder, :generator_test_runner, :generator_test_results, :test_includes_extractor, :tool_executor, :file_finder, :file_path_utils, :streaminator, :plugin_manager, :file_wrapper
6
+ constructor :configurator,
7
+ :generator_helper,
8
+ :preprocessinator,
9
+ :cmock_builder,
10
+ :generator_test_runner,
11
+ :generator_test_results,
12
+ :flaginator,
13
+ :test_includes_extractor,
14
+ :tool_executor,
15
+ :file_finder,
16
+ :streaminator,
17
+ :plugin_manager
7
18
 
8
19
 
9
20
  def generate_shallow_includes_list(context, file)
@@ -30,21 +41,21 @@ class Generator
30
41
 
31
42
  def generate_mock(context, header_filepath)
32
43
  arg_hash = {:header_file => header_filepath, :context => context}
33
- @plugin_manager.pre_mock_execute(arg_hash)
44
+ @plugin_manager.pre_mock_generate( arg_hash )
34
45
 
35
46
  begin
36
47
  @cmock_builder.cmock.setup_mocks( arg_hash[:header_file] )
37
48
  rescue
38
49
  raise
39
50
  ensure
40
- @plugin_manager.post_mock_execute(arg_hash)
51
+ @plugin_manager.post_mock_generate( arg_hash )
41
52
  end
42
53
  end
43
54
 
44
55
  # test_filepath may be either preprocessed test file or original test file
45
56
  def generate_test_runner(context, test_filepath, runner_filepath)
46
57
  arg_hash = {:context => context, :test_file => test_filepath, :runner_file => runner_filepath}
47
- @plugin_manager.pre_runner_execute(arg_hash)
58
+ @plugin_manager.pre_runner_generate(arg_hash)
48
59
 
49
60
  # collect info we need
50
61
  module_name = File.basename(arg_hash[:test_file])
@@ -59,7 +70,7 @@ class Generator
59
70
  rescue
60
71
  raise
61
72
  ensure
62
- @plugin_manager.post_runner_execute(arg_hash)
73
+ @plugin_manager.post_runner_generate(arg_hash)
63
74
  end
64
75
  end
65
76
 
@@ -69,7 +80,12 @@ class Generator
69
80
  @plugin_manager.pre_compile_execute(arg_hash)
70
81
 
71
82
  @streaminator.stdout_puts("Compiling #{File.basename(arg_hash[:source])}...", Verbosity::NORMAL)
72
- command = @tool_executor.build_command_line(arg_hash[:tool], arg_hash[:source], arg_hash[:object], arg_hash[:list])
83
+ command =
84
+ @tool_executor.build_command_line( arg_hash[:tool],
85
+ arg_hash[:source],
86
+ arg_hash[:object],
87
+ arg_hash[:list],
88
+ @flaginator.flag_down( OPERATION_COMPILE_SYM, context, source ) )
73
89
 
74
90
  begin
75
91
  shell_result = @tool_executor.exec( command[:line], command[:options] )
@@ -88,7 +104,12 @@ class Generator
88
104
  @plugin_manager.pre_link_execute(arg_hash)
89
105
 
90
106
  @streaminator.stdout_puts("Linking #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
91
- command = @tool_executor.build_command_line(arg_hash[:tool], arg_hash[:objects], arg_hash[:executable], arg_hash[:map])
107
+ command =
108
+ @tool_executor.build_command_line( arg_hash[:tool],
109
+ arg_hash[:objects],
110
+ arg_hash[:executable],
111
+ arg_hash[:map],
112
+ @flaginator.flag_down( OPERATION_LINK_SYM, context, executable ) )
92
113
 
93
114
  begin
94
115
  shell_result = @tool_executor.exec( command[:line], command[:options] )
@@ -115,7 +136,7 @@ class Generator
115
136
 
116
137
  def generate_test_results(tool, context, executable, result)
117
138
  arg_hash = {:tool => tool, :context => context, :executable => executable, :result_file => result}
118
- @plugin_manager.pre_test_execute(arg_hash)
139
+ @plugin_manager.pre_test_fixture_execute(arg_hash)
119
140
 
120
141
  @streaminator.stdout_puts("Running #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
121
142
 
@@ -135,7 +156,7 @@ class Generator
135
156
  arg_hash[:results] = processed[:results]
136
157
  arg_hash[:shell_result] = shell_result # for raw output display if no plugins for formatted display
137
158
 
138
- @plugin_manager.post_test_execute(arg_hash)
159
+ @plugin_manager.post_test_fixture_execute(arg_hash)
139
160
  end
140
161
 
141
162
  end
@@ -169,6 +169,10 @@ task_invoker:
169
169
  - rake_utils
170
170
  - rake_wrapper
171
171
 
172
+ flaginator:
173
+ compose:
174
+ - configurator
175
+
172
176
  generator:
173
177
  compose:
174
178
  - configurator
@@ -177,13 +181,12 @@ generator:
177
181
  - cmock_builder
178
182
  - generator_test_runner
179
183
  - generator_test_results
184
+ - flaginator
180
185
  - test_includes_extractor
181
186
  - tool_executor
182
187
  - file_finder
183
- - file_path_utils
184
188
  - streaminator
185
189
  - plugin_manager
186
- - file_wrapper
187
190
 
188
191
  generator_helper:
189
192
  compose:
@@ -257,12 +260,13 @@ test_invoker:
257
260
  compose:
258
261
  - configurator
259
262
  - test_invoker_helper
260
- - build_invoker_helper
263
+ - plugin_manager
261
264
  - streaminator
262
265
  - preprocessinator
263
266
  - task_invoker
264
267
  - dependinator
265
268
  - project_config_manager
269
+ - build_invoker_utils
266
270
  - file_path_utils
267
271
  - file_wrapper
268
272
 
@@ -279,7 +283,7 @@ release_invoker:
279
283
  compose:
280
284
  - configurator
281
285
  - release_invoker_helper
282
- - build_invoker_helper
286
+ - build_invoker_utils
283
287
  - dependinator
284
288
  - task_invoker
285
289
  - file_path_utils
@@ -291,7 +295,7 @@ release_invoker_helper:
291
295
  - dependinator
292
296
  - task_invoker
293
297
 
294
- build_invoker_helper:
298
+ build_invoker_utils:
295
299
  compose:
296
300
  - configurator
297
301
  - streaminator
@@ -1,5 +1,7 @@
1
1
 
2
2
  class String
3
+ # reformat a multiline string to have given number of whitespace columns;
4
+ # helpful for formatting heredocs
3
5
  def left_margin(margin=0)
4
6
  non_whitespace_column = 0
5
7
  new_lines = []
@@ -40,23 +42,36 @@ class Plugin
40
42
 
41
43
  def setup; end
42
44
 
43
- def pre_build; end
44
-
45
- def pre_mock_execute(arg_hash); end
46
- def post_mock_execute(arg_hash); end
45
+ # mock generation
46
+ def pre_mock_generate(arg_hash); end
47
+ def post_mock_generate(arg_hash); end
47
48
 
48
- def pre_runner_execute(arg_hash); end
49
- def post_runner_execute(arg_hash); end
49
+ # test runner generation
50
+ def pre_runner_generate(arg_hash); end
51
+ def post_runner_generate(arg_hash); end
50
52
 
53
+ # compilation (test or source)
51
54
  def pre_compile_execute(arg_hash); end
52
55
  def post_compile_execute(arg_hash); end
53
56
 
57
+ # linking (test or source)
54
58
  def pre_link_execute(arg_hash); end
55
59
  def post_link_execute(arg_hash); end
56
60
 
57
- def pre_test_execute(arg_hash); end
58
- def post_test_execute(arg_hash); end
61
+ # test fixture execution
62
+ def pre_test_fixture_execute(arg_hash); end
63
+ def post_test_fixture_execute(arg_hash); end
64
+
65
+ # test task
66
+ def pre_test; end
67
+ def post_test; end
59
68
 
69
+ # release task
70
+ def pre_release; end
71
+ def post_release; end
72
+
73
+ # whole shebang (any use of Ceedling)
74
+ def pre_build; end
60
75
  def post_build; end
61
76
 
62
77
  def summary; end
@@ -52,13 +52,11 @@ class PluginManager
52
52
 
53
53
  #### execute all plugin methods ####
54
54
 
55
- def pre_build; execute_plugins(:pre_build); end
56
-
57
- def pre_mock_execute(arg_hash); execute_plugins(:pre_mock_execute, arg_hash); end
58
- def post_mock_execute(arg_hash); execute_plugins(:post_mock_execute, arg_hash); end
55
+ def pre_mock_generate(arg_hash); execute_plugins(:pre_mock_generate, arg_hash); end
56
+ def post_mock_generate(arg_hash); execute_plugins(:post_mock_generate, arg_hash); end
59
57
 
60
- def pre_runner_execute(arg_hash); execute_plugins(:pre_runner_execute, arg_hash); end
61
- def post_runner_execute(arg_hash); execute_plugins(:post_runner_execute, arg_hash); end
58
+ def pre_runner_generate(arg_hash); execute_plugins(:pre_runner_generate, arg_hash); end
59
+ def post_runner_generate(arg_hash); execute_plugins(:post_runner_generate, arg_hash); end
62
60
 
63
61
  def pre_compile_execute(arg_hash); execute_plugins(:pre_compile_execute, arg_hash); end
64
62
  def post_compile_execute(arg_hash); execute_plugins(:post_compile_execute, arg_hash); end
@@ -66,13 +64,20 @@ class PluginManager
66
64
  def pre_link_execute(arg_hash); execute_plugins(:pre_link_execute, arg_hash); end
67
65
  def post_link_execute(arg_hash); execute_plugins(:post_link_execute, arg_hash); end
68
66
 
69
- def pre_test_execute(arg_hash); execute_plugins(:pre_test_execute, arg_hash); end
70
- def post_test_execute(arg_hash)
67
+ def pre_test_fixture_execute(arg_hash); execute_plugins(:pre_test_fixture_execute, arg_hash); end
68
+ def post_test_fixture_execute(arg_hash)
71
69
  # special arbitration: raw test results are printed or taken over by plugins handling the job
72
70
  @streaminator.stdout_puts(arg_hash[:shell_result][:output]) if (@configurator.plugins_display_raw_test_results)
73
- execute_plugins(:post_test_execute, arg_hash)
71
+ execute_plugins(:post_test_fixture_execute, arg_hash)
74
72
  end
73
+
74
+ def pre_test; execute_plugins(:pre_test); end
75
+ def post_test; execute_plugins(:post_test); end
76
+
77
+ def pre_release; execute_plugins(:pre_release); end
78
+ def post_release; execute_plugins(:post_release); end
75
79
 
80
+ def pre_build; execute_plugins(:pre_build); end
76
81
  def post_build; execute_plugins(:post_build); end
77
82
 
78
83
  def summary; execute_plugins(:summary); end
@@ -36,7 +36,7 @@ class PreprocessinatorHelper
36
36
  private ############################
37
37
 
38
38
  def preprocess_files_smartly(file_list, preprocess_file_proc)
39
- if (@configurator.project_use_auxiliary_dependencies)
39
+ if (@configurator.project_use_deep_dependencies)
40
40
  @task_invoker.invoke_test_preprocessed_files(file_list)
41
41
  else
42
42
  file_list.each { |file| preprocess_file_proc.call( yield(file) ) }
@@ -3,19 +3,19 @@ require 'constants'
3
3
 
4
4
  class ReleaseInvoker
5
5
 
6
- constructor :configurator, :release_invoker_helper, :build_invoker_helper, :dependinator, :task_invoker, :file_path_utils, :file_wrapper
6
+ constructor :configurator, :release_invoker_helper, :build_invoker_utils, :dependinator, :task_invoker, :file_path_utils, :file_wrapper
7
7
 
8
8
 
9
9
  def setup_and_invoke_c_objects( c_files )
10
10
  objects = @file_path_utils.form_release_build_c_objects_filelist( c_files )
11
11
 
12
12
  begin
13
- @release_invoker_helper.process_auxiliary_dependencies( @file_path_utils.form_release_dependencies_filelist( c_files ) )
13
+ @release_invoker_helper.process_deep_dependencies( @file_path_utils.form_release_dependencies_filelist( c_files ) )
14
14
 
15
15
  @dependinator.enhance_release_file_dependencies( objects )
16
16
  @task_invoker.invoke_release_objects( objects )
17
17
  rescue => e
18
- @build_invoker_helper.process_exception( e, RELEASE_SYM, false )
18
+ @build_invoker_utils.process_exception( e, RELEASE_SYM, false )
19
19
  end
20
20
 
21
21
  return objects
@@ -29,29 +29,29 @@ class ReleaseInvoker
29
29
  @dependinator.enhance_release_file_dependencies( objects )
30
30
  @task_invoker.invoke_release_objects( objects )
31
31
  rescue => e
32
- @build_invoker_helper.process_exception( e, RELEASE_SYM, false )
32
+ @build_invoker_utils.process_exception( e, RELEASE_SYM, false )
33
33
  end
34
34
 
35
35
  return objects
36
36
  end
37
37
 
38
38
 
39
- def refresh_c_auxiliary_dependencies
40
- return if (not @configurator.project_use_auxiliary_dependencies)
39
+ def refresh_c_deep_dependencies
40
+ return if (not @configurator.project_use_deep_dependencies)
41
41
 
42
42
  @file_wrapper.rm_f(
43
43
  @file_wrapper.directory_listing(
44
44
  File.join( @configurator.project_release_dependencies_path, '*' + @configurator.extension_dependencies ) ) )
45
45
 
46
- @release_invoker_helper.process_auxiliary_dependencies(
46
+ @release_invoker_helper.process_deep_dependencies(
47
47
  @file_path_utils.form_release_dependencies_filelist(
48
48
  @configurator.collection_all_source ) )
49
49
  end
50
50
 
51
51
 
52
52
  def artifactinate( *files )
53
- files.each do |file|
54
- @file_wrapper.cp( file, @configurator.project_release_artifacts_path ) if @file_wrapper.exist?( file)
53
+ files.flatten.each do |file|
54
+ @file_wrapper.cp( file, @configurator.project_release_artifacts_path ) if @file_wrapper.exist?( file )
55
55
  end
56
56
  end
57
57
 
@@ -5,8 +5,8 @@ class ReleaseInvokerHelper
5
5
  constructor :configurator, :dependinator, :task_invoker
6
6
 
7
7
 
8
- def process_auxiliary_dependencies(dependencies_list)
9
- return if (not @configurator.project_use_auxiliary_dependencies)
8
+ def process_deep_dependencies(dependencies_list)
9
+ return if (not @configurator.project_use_deep_dependencies)
10
10
 
11
11
  @dependinator.enhance_release_file_dependencies( dependencies_list )
12
12
  @task_invoker.invoke_release_dependencies_files( dependencies_list )
@@ -8,7 +8,7 @@ rule(/#{PROJECT_TEST_PREPROCESS_FILES_PATH}\/.+/ => [
8
8
  @ceedling[:file_finder].find_test_or_source_or_header_file(task_name)
9
9
  end
10
10
  ]) do |file|
11
- if (not @ceedling[:configurator].project_use_auxiliary_dependencies)
11
+ if (not @ceedling[:configurator].project_use_deep_dependencies)
12
12
  raise 'ERROR: Ceedling preprocessing rule invoked though neccessary auxiliary dependency support not enabled.'
13
13
  end
14
14
  @ceedling[:generator].generate_preprocessed_file(TEST_SYM, file.source)
@@ -40,7 +40,7 @@ rule(/#{PROJECT_RELEASE_BUILD_TARGET}/) do |bin_file|
40
40
  bin_file.prerequisites,
41
41
  bin_file.name,
42
42
  map_file )
43
- @ceedling[:release_invoker].artifactinate( bin_file.name, map_file )
43
+ @ceedling[:release_invoker].artifactinate( bin_file.name, map_file, @ceedling[:configurator].release_build_artifacts )
44
44
  end
45
45
 
46
46
 
@@ -7,24 +7,22 @@ task RELEASE_SYM => [:directories] do
7
7
  header = "Release build '#{File.basename(PROJECT_RELEASE_BUILD_TARGET)}'"
8
8
  @ceedling[:streaminator].stdout_puts("\n\n#{header}\n#{'-' * header.length}")
9
9
 
10
- core_objects = []
11
- extra_objects = @ceedling[:file_path_utils].form_release_build_c_objects_filelist( COLLECTION_RELEASE_ARTIFACT_EXTRA_LINK_OBJECTS )
10
+ begin
11
+ @ceedling[:plugin_manager].pre_release
12
12
 
13
- @ceedling[:project_config_manager].process_release_config_change
14
- core_objects.concat( @ceedling[:release_invoker].setup_and_invoke_c_objects( COLLECTION_ALL_SOURCE ) )
13
+ core_objects = []
14
+ extra_objects = @ceedling[:file_path_utils].form_release_build_c_objects_filelist( COLLECTION_RELEASE_ARTIFACT_EXTRA_LINK_OBJECTS )
15
+
16
+ @ceedling[:project_config_manager].process_release_config_change
17
+ core_objects.concat( @ceedling[:release_invoker].setup_and_invoke_c_objects( COLLECTION_ALL_SOURCE ) )
15
18
 
16
- # if assembler use isn't enabled, COLLECTION_ALL_ASSEMBLY is empty array & nothing happens
17
- core_objects.concat( @ceedling[:release_invoker].setup_and_invoke_asm_objects( COLLECTION_ALL_ASSEMBLY ) )
19
+ # if assembler use isn't enabled, COLLECTION_ALL_ASSEMBLY is empty array & nothing happens
20
+ core_objects.concat( @ceedling[:release_invoker].setup_and_invoke_asm_objects( COLLECTION_ALL_ASSEMBLY ) )
18
21
 
19
- file( PROJECT_RELEASE_BUILD_TARGET => (core_objects + extra_objects) )
20
- Rake::Task[PROJECT_RELEASE_BUILD_TARGET].invoke
21
- end
22
-
23
-
24
- if PROJECT_USE_AUXILIARY_DEPENDENCIES
25
- namespace REFRESH_SYM do
26
- task RELEASE_SYM do
27
- @ceedling[:release_invoker].refresh_c_auxiliary_dependencies
22
+ file( PROJECT_RELEASE_BUILD_TARGET => (core_objects + extra_objects) )
23
+ Rake::Task[PROJECT_RELEASE_BUILD_TARGET].invoke
24
+ ensure
25
+ @ceedling[:plugin_manager].post_release
28
26
  end
29
27
  end
30
- end
28
+
@@ -0,0 +1,9 @@
1
+ require 'constants'
2
+
3
+ namespace REFRESH_SYM do
4
+
5
+ task RELEASE_SYM do
6
+ @ceedling[:release_invoker].refresh_c_deep_dependencies
7
+ end
8
+
9
+ end
@@ -1,3 +1,5 @@
1
+ require 'constants'
2
+
1
3
 
2
4
  namespace TEST_SYM do
3
5
 
@@ -48,10 +50,3 @@ namespace TEST_SYM do
48
50
 
49
51
  end
50
52
 
51
- if PROJECT_USE_AUXILIARY_DEPENDENCIES
52
- namespace REFRESH_SYM do
53
- task TEST_SYM do
54
- @ceedling[:test_invoker].refresh_auxiliary_dependencies
55
- end
56
- end
57
- end
@@ -0,0 +1,9 @@
1
+ require 'constants'
2
+
3
+ namespace REFRESH_SYM do
4
+
5
+ task TEST_SYM do
6
+ @ceedling[:test_invoker].refresh_deep_dependencies
7
+ end
8
+
9
+ end
@@ -5,7 +5,17 @@ class TestInvoker
5
5
 
6
6
  attr_reader :sources, :tests, :mocks
7
7
 
8
- constructor :configurator, :test_invoker_helper, :build_invoker_helper, :streaminator, :preprocessinator, :task_invoker, :dependinator, :project_config_manager, :file_path_utils, :file_wrapper
8
+ constructor :configurator,
9
+ :test_invoker_helper,
10
+ :plugin_manager,
11
+ :streaminator,
12
+ :preprocessinator,
13
+ :task_invoker,
14
+ :dependinator,
15
+ :project_config_manager,
16
+ :build_invoker_utils,
17
+ :file_path_utils,
18
+ :file_wrapper
9
19
 
10
20
  def setup
11
21
  @sources = []
@@ -24,7 +34,9 @@ class TestInvoker
24
34
  header = "Test '#{File.basename(test)}'"
25
35
  @streaminator.stdout_puts("\n\n#{header}\n#{'-' * header.length}")
26
36
 
27
- begin
37
+ begin
38
+ @plugin_manager.pre_test
39
+
28
40
  # collect up test fixture pieces & parts
29
41
  runner = @file_path_utils.form_runner_filepath_from_test( test )
30
42
  mock_list = @preprocessinator.preprocess_test_and_invoke_test_mocks( test )
@@ -39,7 +51,7 @@ class TestInvoker
39
51
  @test_invoker_helper.clean_results( {:pass => results_pass, :fail => results_fail}, options )
40
52
 
41
53
  # load up auxiliary dependencies so deep changes cause rebuilding appropriately
42
- @test_invoker_helper.process_auxiliary_dependencies( core ) do |dependencies_list|
54
+ @test_invoker_helper.process_deep_dependencies( core ) do |dependencies_list|
43
55
  @dependinator.load_test_object_deep_dependencies( dependencies_list )
44
56
  end
45
57
 
@@ -55,7 +67,9 @@ class TestInvoker
55
67
  # 3, 2, 1... launch
56
68
  @task_invoker.invoke_test_results( results_pass )
57
69
  rescue => e
58
- @build_invoker_helper.process_exception( e, context )
70
+ @build_invoker_utils.process_exception( e, context )
71
+ ensure
72
+ @plugin_manager.post_test
59
73
  end
60
74
 
61
75
  # store away what's been processed
@@ -71,12 +85,12 @@ class TestInvoker
71
85
  end
72
86
 
73
87
 
74
- def refresh_auxiliary_dependencies
88
+ def refresh_deep_dependencies
75
89
  @file_wrapper.rm_f(
76
90
  @file_wrapper.directory_listing(
77
91
  File.join( @configurator.project_test_dependencies_path, '*' + @configurator.extension_dependencies ) ) )
78
92
 
79
- @test_invoker_helper.process_auxiliary_dependencies(
93
+ @test_invoker_helper.process_deep_dependencies(
80
94
  @configurator.collection_all_tests + @configurator.collection_all_source )
81
95
  end
82
96
 
@@ -8,8 +8,8 @@ class TestInvokerHelper
8
8
  @file_wrapper.rm_f( results[:pass] ) if (options[:force_run])
9
9
  end
10
10
 
11
- def process_auxiliary_dependencies(files)
12
- return if (not @configurator.project_use_auxiliary_dependencies)
11
+ def process_deep_dependencies(files)
12
+ return if (not @configurator.project_use_deep_dependencies)
13
13
 
14
14
  dependencies_list = @file_path_utils.form_test_dependencies_filelist( files )
15
15
  @task_invoker.invoke_test_dependencies_files( dependencies_list )
@@ -140,11 +140,11 @@ namespace BULLSEYE_SYM do
140
140
 
141
141
  end
142
142
 
143
- if PROJECT_USE_AUXILIARY_DEPENDENCIES
143
+ if PROJECT_USE_DEEP_DEPENDENCIES
144
144
  namespace REFRESH_SYM do
145
145
  task BULLSEYE_SYM do
146
146
  @ceedling[:configurator].replace_flattened_config(@ceedling[BULLSEYE_SYM].config)
147
- @ceedling[:test_invoker].refresh_auxiliary_dependencies
147
+ @ceedling[:test_invoker].refresh_deep_dependencies
148
148
  @ceedling[:configurator].restore_config
149
149
  end
150
150
  end
@@ -53,7 +53,7 @@ class Bullseye < Plugin
53
53
  @ceedling[:plugin_manager].post_compile_execute(arg_hash)
54
54
  end
55
55
 
56
- def post_test_execute(arg_hash)
56
+ def post_test_fixture_execute(arg_hash)
57
57
  result_file = arg_hash[:result_file]
58
58
 
59
59
  if ((result_file =~ /#{BULLSEYE_RESULTS_PATH}/) and (not @result_list.include?(result_file)))
@@ -111,6 +111,7 @@ class Bullseye < Plugin
111
111
 
112
112
  def report_coverage_results_all(coverage)
113
113
  results = {
114
+ :header => BULLSEYE_ROOT_NAME.upcase,
114
115
  :coverage => {
115
116
  :functions => nil,
116
117
  :branches => nil
@@ -129,7 +130,7 @@ class Bullseye < Plugin
129
130
  end
130
131
 
131
132
  def report_per_function_coverage_results(sources)
132
- banner = @ceedling[:plugin_reportinator].generate_banner "#{BULLSEYE_ROOT_NAME.upcase}: CODE COVERAGE SUMMARY"
133
+ banner = @ceedling[:plugin_reportinator].generate_banner( "#{BULLSEYE_ROOT_NAME.upcase}: CODE COVERAGE SUMMARY" )
133
134
  @ceedling[:streaminator].stdout_puts "\n" + banner
134
135
 
135
136
  coverage_sources = sources.clone
@@ -153,9 +154,9 @@ class Bullseye < Plugin
153
154
 
154
155
  def verify_coverage_file
155
156
  exist = @ceedling[:file_wrapper].exist?( ENVIRONMENT_COVFILE )
156
-
157
+
157
158
  if (!exist)
158
- banner = @ceedling[:plugin_reportinator].generate_banner "#{BULLSEYE_ROOT_NAME.upcase}: CODE COVERAGE SUMMARY"
159
+ banner = @ceedling[:plugin_reportinator].generate_banner( "#{BULLSEYE_ROOT_NAME.upcase}: CODE COVERAGE SUMMARY" )
159
160
  @ceedling[:streaminator].stdout_puts "\n" + banner + "\nNo coverage file.\n\n"
160
161
  end
161
162
 
@@ -140,11 +140,11 @@ namespace GCOV_SYM do
140
140
 
141
141
  end
142
142
 
143
- if PROJECT_USE_AUXILIARY_DEPENDENCIES
143
+ if PROJECT_USE_DEEP_DEPENDENCIES
144
144
  namespace REFRESH_SYM do
145
145
  task GCOV_SYM do
146
146
  @ceedling[:configurator].replace_flattened_config(@ceedling[GCOV_SYM].config)
147
- @ceedling[:test_invoker].refresh_auxiliary_dependencies
147
+ @ceedling[:test_invoker].refresh_deep_dependencies
148
148
  @ceedling[:configurator].restore_config
149
149
  end
150
150
  end
@@ -7,7 +7,7 @@ class StdoutIdeTestsReport < Plugin
7
7
  @result_list = []
8
8
  end
9
9
 
10
- def post_test_execute(arg_hash)
10
+ def post_test_fixture_execute(arg_hash)
11
11
  return if not (arg_hash[:context] == TEST_SYM)
12
12
 
13
13
  @result_list << arg_hash[:result_file]
@@ -11,7 +11,7 @@ class StdoutPrettyTestsReport < Plugin
11
11
  @ceedling[:plugin_reportinator].register_test_results_template( template )
12
12
  end
13
13
 
14
- def post_test_execute(arg_hash)
14
+ def post_test_fixture_execute(arg_hash)
15
15
  return if not (arg_hash[:context] == TEST_SYM)
16
16
 
17
17
  @result_list << arg_hash[:result_file]
@@ -8,7 +8,7 @@ class XmlTestsReport < Plugin
8
8
  @test_counter = 0
9
9
  end
10
10
 
11
- def post_test_execute(arg_hash)
11
+ def post_test_fixture_execute(arg_hash)
12
12
  context = arg_hash[:context]
13
13
 
14
14
  @results_list[context] = [] if (@results_list[context].nil?)
@@ -1 +1 @@
1
- 200
1
+ 212
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ceedling
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 61
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 16
10
- version: 0.0.16
9
+ - 17
10
+ version: 0.0.17
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Karlesky, Mark VanderVoord
@@ -17,7 +17,8 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2011-06-11 00:00:00 Z
20
+ date: 2011-07-06 00:00:00 -04:00
21
+ default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
23
24
  name: thor
@@ -168,7 +169,7 @@ files:
168
169
  - new_project_template/vendor/ceedling/docs/CMock Summary.pdf
169
170
  - new_project_template/vendor/ceedling/docs/Ceedling Packet.pdf
170
171
  - new_project_template/vendor/ceedling/docs/Unity Summary.pdf
171
- - new_project_template/vendor/ceedling/lib/build_invoker_helper.rb
172
+ - new_project_template/vendor/ceedling/lib/build_invoker_utils.rb
172
173
  - new_project_template/vendor/ceedling/lib/cacheinator.rb
173
174
  - new_project_template/vendor/ceedling/lib/cacheinator_helper.rb
174
175
  - new_project_template/vendor/ceedling/lib/cmock_builder.rb
@@ -185,6 +186,7 @@ files:
185
186
  - new_project_template/vendor/ceedling/lib/file_path_utils.rb
186
187
  - new_project_template/vendor/ceedling/lib/file_system_utils.rb
187
188
  - new_project_template/vendor/ceedling/lib/file_wrapper.rb
189
+ - new_project_template/vendor/ceedling/lib/flaginator.rb
188
190
  - new_project_template/vendor/ceedling/lib/generator.rb
189
191
  - new_project_template/vendor/ceedling/lib/generator_helper.rb
190
192
  - new_project_template/vendor/ceedling/lib/generator_test_results.rb
@@ -214,9 +216,9 @@ files:
214
216
  - new_project_template/vendor/ceedling/lib/rules_cmock.rake
215
217
  - new_project_template/vendor/ceedling/lib/rules_preprocess.rake
216
218
  - new_project_template/vendor/ceedling/lib/rules_release.rake
217
- - new_project_template/vendor/ceedling/lib/rules_release_aux_dependencies.rake
219
+ - new_project_template/vendor/ceedling/lib/rules_release_deep_dependencies.rake
218
220
  - new_project_template/vendor/ceedling/lib/rules_tests.rake
219
- - new_project_template/vendor/ceedling/lib/rules_tests_aux_dependencies.rake
221
+ - new_project_template/vendor/ceedling/lib/rules_tests_deep_dependencies.rake
220
222
  - new_project_template/vendor/ceedling/lib/setupinator.rb
221
223
  - new_project_template/vendor/ceedling/lib/stream_wrapper.rb
222
224
  - new_project_template/vendor/ceedling/lib/streaminator.rb
@@ -227,7 +229,9 @@ files:
227
229
  - new_project_template/vendor/ceedling/lib/tasks_base.rake
228
230
  - new_project_template/vendor/ceedling/lib/tasks_filesystem.rake
229
231
  - new_project_template/vendor/ceedling/lib/tasks_release.rake
232
+ - new_project_template/vendor/ceedling/lib/tasks_release_deep_dependencies.rake
230
233
  - new_project_template/vendor/ceedling/lib/tasks_tests.rake
234
+ - new_project_template/vendor/ceedling/lib/tasks_tests_deep_dependencies.rake
231
235
  - new_project_template/vendor/ceedling/lib/tasks_vendor.rake
232
236
  - new_project_template/vendor/ceedling/lib/test_includes_extractor.rb
233
237
  - new_project_template/vendor/ceedling/lib/test_invoker.rb
@@ -289,6 +293,7 @@ files:
289
293
  - new_project_template/vendor/ceedling/vendor/unity/src/unity.c
290
294
  - new_project_template/vendor/ceedling/vendor/unity/src/unity.h
291
295
  - new_project_template/vendor/ceedling/vendor/unity/src/unity_internals.h
296
+ has_rdoc: true
292
297
  homepage: http://throwtheswitch.org/
293
298
  licenses: []
294
299
 
@@ -318,7 +323,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
318
323
  requirements: []
319
324
 
320
325
  rubyforge_project: ceedling
321
- rubygems_version: 1.8.2
326
+ rubygems_version: 1.6.2
322
327
  signing_key:
323
328
  specification_version: 3
324
329
  summary: Gemified version of the Ceedling C testing / build environment