ceedling 0.0.16 → 0.0.17
Sign up to get free protection for your applications and to get access to all the features.
- 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
|