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.
- data/lib/ceedling/version.rb +2 -2
- data/lib/ceedling/version.rb.erb +1 -1
- data/new_project_template/vendor/ceedling/lib/{build_invoker_helper.rb → build_invoker_utils.rb} +2 -2
- data/new_project_template/vendor/ceedling/lib/configurator.rb +56 -25
- data/new_project_template/vendor/ceedling/lib/configurator_builder.rb +20 -4
- data/new_project_template/vendor/ceedling/lib/constants.rb +3 -0
- data/new_project_template/vendor/ceedling/lib/defaults.rb +13 -2
- data/new_project_template/vendor/ceedling/lib/file_system_utils.rb +10 -0
- data/new_project_template/vendor/ceedling/lib/flaginator.rb +54 -0
- data/new_project_template/vendor/ceedling/lib/generator.rb +30 -9
- data/new_project_template/vendor/ceedling/lib/objects.yml +9 -5
- data/new_project_template/vendor/ceedling/lib/plugin.rb +23 -8
- data/new_project_template/vendor/ceedling/lib/plugin_manager.rb +14 -9
- data/new_project_template/vendor/ceedling/lib/preprocessinator_helper.rb +1 -1
- data/new_project_template/vendor/ceedling/lib/release_invoker.rb +9 -9
- data/new_project_template/vendor/ceedling/lib/release_invoker_helper.rb +2 -2
- data/new_project_template/vendor/ceedling/lib/rules_preprocess.rake +1 -1
- data/new_project_template/vendor/ceedling/lib/rules_release.rake +1 -1
- data/new_project_template/vendor/ceedling/lib/{rules_release_aux_dependencies.rake → rules_release_deep_dependencies.rake} +0 -0
- data/new_project_template/vendor/ceedling/lib/{rules_tests_aux_dependencies.rake → rules_tests_deep_dependencies.rake} +0 -0
- data/new_project_template/vendor/ceedling/lib/tasks_release.rake +14 -16
- data/new_project_template/vendor/ceedling/lib/tasks_release_deep_dependencies.rake +9 -0
- data/new_project_template/vendor/ceedling/lib/tasks_tests.rake +2 -7
- data/new_project_template/vendor/ceedling/lib/tasks_tests_deep_dependencies.rake +9 -0
- data/new_project_template/vendor/ceedling/lib/test_invoker.rb +20 -6
- data/new_project_template/vendor/ceedling/lib/test_invoker_helper.rb +2 -2
- data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rake +2 -2
- data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rb +5 -4
- data/new_project_template/vendor/ceedling/plugins/gcov/gcov.rake +2 -2
- data/new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.rb +1 -1
- data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.rb +1 -1
- data/new_project_template/vendor/ceedling/plugins/xml_tests_report/xml_tests_report.rb +1 -1
- data/new_project_template/vendor/ceedling/release/build.info +1 -1
- metadata +13 -8
data/lib/ceedling/version.rb
CHANGED
data/lib/ceedling/version.rb.erb
CHANGED
data/new_project_template/vendor/ceedling/lib/{build_invoker_helper.rb → build_invoker_utils.rb}
RENAMED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'constants'
|
2
2
|
|
3
3
|
|
4
|
-
class
|
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.
|
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][:
|
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][:
|
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
|
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.
|
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
|
-
|
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[:
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
config[:
|
210
|
-
|
211
|
-
|
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
|
-
|
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[:
|
220
|
-
config[:cmock][:mock_path]] # cmock path in case it was explicitly set in config
|
228
|
+
config[:release_build][:artifacts]]
|
221
229
|
|
222
|
-
|
230
|
+
paths.flatten.each { |path| FilePathUtils::standardize( path ) }
|
223
231
|
|
224
|
-
config[:paths].each_pair do |
|
225
|
-
|
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][
|
235
|
+
config[:paths][collection] = [paths].flatten
|
228
236
|
end
|
229
237
|
|
230
|
-
config[:
|
231
|
-
|
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, '
|
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, '
|
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
|
-
|
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
|
-
|
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
|
-
:
|
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,
|
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.
|
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.
|
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.
|
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.
|
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 =
|
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 =
|
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.
|
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.
|
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
|
-
-
|
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
|
-
-
|
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
|
-
|
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
|
-
|
44
|
-
|
45
|
-
def
|
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
|
-
|
49
|
-
def
|
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
|
-
|
58
|
-
def
|
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
|
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
|
61
|
-
def
|
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
|
70
|
-
def
|
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(:
|
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.
|
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, :
|
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.
|
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
|
-
@
|
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
|
-
@
|
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
|
40
|
-
return if (not @configurator.
|
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.
|
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
|
9
|
-
return if (not @configurator.
|
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].
|
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
|
|
File without changes
|
File without changes
|
@@ -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
|
-
|
11
|
-
|
10
|
+
begin
|
11
|
+
@ceedling[:plugin_manager].pre_release
|
12
12
|
|
13
|
-
|
14
|
-
|
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
|
-
|
17
|
-
|
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
|
-
|
20
|
-
|
21
|
-
|
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
|
-
|
28
|
+
|
@@ -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
|
@@ -5,7 +5,17 @@ class TestInvoker
|
|
5
5
|
|
6
6
|
attr_reader :sources, :tests, :mocks
|
7
7
|
|
8
|
-
constructor :configurator,
|
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.
|
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
|
-
@
|
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
|
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.
|
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
|
12
|
-
return if (not @configurator.
|
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
|
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].
|
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
|
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
|
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].
|
147
|
+
@ceedling[:test_invoker].refresh_deep_dependencies
|
148
148
|
@ceedling[:configurator].restore_config
|
149
149
|
end
|
150
150
|
end
|
@@ -11,7 +11,7 @@ class StdoutPrettyTestsReport < Plugin
|
|
11
11
|
@ceedling[:plugin_reportinator].register_test_results_template( template )
|
12
12
|
end
|
13
13
|
|
14
|
-
def
|
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]
|
@@ -1 +1 @@
|
|
1
|
-
|
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:
|
4
|
+
hash: 61
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
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
|
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/
|
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/
|
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/
|
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.
|
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
|