ceedling 0.15.2 → 0.15.3
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/examples/temp_sensor/src/TimerInterruptConfigurator.h +1 -1
- data/lib/ceedling/defaults.rb +15 -16
- data/lib/ceedling/generator.rb +22 -20
- data/lib/ceedling/generator_test_runner.rb +14 -13
- data/lib/ceedling/version.rb +1 -1
- data/lib/ceedling/version.rb.erb +1 -1
- data/plugins/stdout_pretty_tests_report/assets/template.erb +13 -13
- data/release/build.info +1 -1
- data/release/version.info +1 -1
- data/spec/ceedling_spec.rb +14 -14
- data/spec/spec_system_helper.rb +6 -6
- data/vendor/cmock/examples/src/TimerInterruptConfigurator.h +1 -1
- data/vendor/cmock/release/build.info +1 -1
- data/vendor/unity/auto/generate_test_runner.rb +4 -4
- data/vendor/unity/examples/example_3/rakefile.rb +0 -1
- data/vendor/unity/src/unity.c +1 -2
- data/vendor/unity/src/unity.h +12 -47
- data/vendor/unity/src/unity_internals.h +60 -4
- data/vendor/unity/{Rakefile → test/rakefile} +1 -7
- data/vendor/unity/{rakefile_helper.rb → test/rakefile_helper.rb} +3 -3
- data/vendor/unity/{targets → test/targets}/clang_strict.yml +2 -2
- data/vendor/unity/{targets → test/targets}/gcc_32.yml +2 -2
- data/vendor/unity/{targets → test/targets}/gcc_64.yml +2 -2
- data/vendor/unity/{targets → test/targets}/gcc_auto_limits.yml +2 -2
- data/vendor/unity/{targets → test/targets}/gcc_auto_sizeof.yml +2 -2
- data/vendor/unity/{targets → test/targets}/gcc_auto_stdint.yml +2 -2
- data/vendor/unity/{targets → test/targets}/hitech_picc18.yml +55 -55
- data/vendor/unity/{targets → test/targets}/iar_arm_v4.yml +4 -4
- data/vendor/unity/{targets → test/targets}/iar_arm_v5.yml +4 -4
- data/vendor/unity/{targets → test/targets}/iar_arm_v5_3.yml +4 -4
- data/vendor/unity/{targets → test/targets}/iar_armcortex_LM3S9B92_v5_4.yml +6 -6
- data/vendor/unity/{targets → test/targets}/iar_cortexm3_v5.yml +3 -3
- data/vendor/unity/{targets → test/targets}/iar_msp430.yml +3 -3
- data/vendor/unity/{targets → test/targets}/iar_sh2a_v6.yml +3 -3
- data/vendor/unity/test/{test_generate_test_runner.rb → tests/test_generate_test_runner.rb} +0 -0
- data/vendor/unity/test/{testparameterized.c → tests/testparameterized.c} +0 -0
- data/vendor/unity/test/{testunity.c → tests/testunity.c} +0 -0
- metadata +36 -31
- checksums.yaml +0 -7
- data/vendor/unity/makefile +0 -37
data/lib/ceedling/defaults.rb
CHANGED
@@ -42,15 +42,14 @@ DEFAULT_TEST_FIXTURE_TOOL = {
|
|
42
42
|
:arguments => [].freeze
|
43
43
|
}
|
44
44
|
|
45
|
-
|
46
|
-
|
47
45
|
DEFAULT_TEST_INCLUDES_PREPROCESSOR_TOOL = {
|
48
|
-
:executable => FilePathUtils.os_executable_ext('
|
46
|
+
:executable => FilePathUtils.os_executable_ext('gcc').freeze,
|
49
47
|
:name => 'default_test_includes_preprocessor'.freeze,
|
50
48
|
:stderr_redirect => StdErrRedirect::NONE.freeze,
|
51
49
|
:background_exec => BackgroundExec::NONE.freeze,
|
52
50
|
:optional => false.freeze,
|
53
51
|
:arguments => [
|
52
|
+
'-E'.freeze,
|
54
53
|
'-MM'.freeze,
|
55
54
|
'-MG'.freeze,
|
56
55
|
# avoid some possibility of deep system lib header file complications by omitting vendor paths
|
@@ -58,7 +57,7 @@ DEFAULT_TEST_INCLUDES_PREPROCESSOR_TOOL = {
|
|
58
57
|
{"-I\"$\"" => "{SystemWrapper.windows? ? COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE : COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE.map{|path| path.gsub(\/ \/, \'\\\\ \') }}"}.freeze,
|
59
58
|
{"-D$" => 'COLLECTION_DEFINES_TEST_AND_VENDOR'}.freeze,
|
60
59
|
{"-D$" => 'DEFINES_TEST_PREPROCESS'}.freeze,
|
61
|
-
"-
|
60
|
+
"-DGNU_COMPILER".freeze,
|
62
61
|
'-w'.freeze,
|
63
62
|
'-nostdinc'.freeze,
|
64
63
|
"\"${1}\"".freeze
|
@@ -328,8 +327,17 @@ DEFAULT_TESTS_RESULTS_REPORT_TEMPLATE = %q{
|
|
328
327
|
% header_prepend = ((hash[:header].length > 0) ? "#{hash[:header]}: " : '')
|
329
328
|
% banner_width = 25 + header_prepend.length # widest message
|
330
329
|
|
330
|
+
% if (stdout_count > 0)
|
331
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'TEST OUTPUT')%>
|
332
|
+
% hash[:results][:stdout].each do |string|
|
333
|
+
% string[:collection].each do |item|
|
334
|
+
<%=string[:source][:path]%><%=File::SEPARATOR%><%=string[:source][:file]%>: "<%=item%>"
|
335
|
+
% end
|
336
|
+
% end
|
337
|
+
|
338
|
+
% end
|
331
339
|
% if (ignored > 0)
|
332
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'IGNORED
|
340
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'IGNORED TEST SUMMARY')%>
|
333
341
|
% hash[:results][:ignores].each do |ignore|
|
334
342
|
% ignore[:collection].each do |item|
|
335
343
|
<%=ignore[:source][:path]%><%=File::SEPARATOR%><%=ignore[:source][:file]%>:<%=item[:line]%>:<%=item[:test]%>
|
@@ -343,7 +351,7 @@ DEFAULT_TESTS_RESULTS_REPORT_TEMPLATE = %q{
|
|
343
351
|
|
344
352
|
% end
|
345
353
|
% if (failed > 0)
|
346
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'FAILED
|
354
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'FAILED TEST SUMMARY')%>
|
347
355
|
% hash[:results][:failures].each do |failure|
|
348
356
|
% failure[:collection].each do |item|
|
349
357
|
<%=failure[:source][:path]%><%=File::SEPARATOR%><%=failure[:source][:file]%>:<%=item[:line]%>:<%=item[:test]%>
|
@@ -355,19 +363,10 @@ DEFAULT_TESTS_RESULTS_REPORT_TEMPLATE = %q{
|
|
355
363
|
% end
|
356
364
|
% end
|
357
365
|
|
358
|
-
% end
|
359
|
-
% if (stdout_count > 0)
|
360
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'UNIT TEST OTHER OUTPUT')%>
|
361
|
-
% hash[:results][:stdout].each do |string|
|
362
|
-
% string[:collection].each do |item|
|
363
|
-
<%=string[:source][:path]%><%=File::SEPARATOR%><%=string[:source][:file]%>: "<%=item%>"
|
364
|
-
% end
|
365
|
-
% end
|
366
|
-
|
367
366
|
% end
|
368
367
|
% total_string = hash[:results][:counts][:total].to_s
|
369
368
|
% format_string = "%#{total_string.length}i"
|
370
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'OVERALL
|
369
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'OVERALL TEST SUMMARY')%>
|
371
370
|
% if (hash[:results][:counts][:total] > 0)
|
372
371
|
TESTED: <%=hash[:results][:counts][:total].to_s%>
|
373
372
|
PASSED: <%=sprintf(format_string, hash[:results][:counts][:passed])%>
|
data/lib/ceedling/generator.rb
CHANGED
@@ -30,21 +30,21 @@ class Generator
|
|
30
30
|
|
31
31
|
def generate_dependencies_file(tool, context, source, object, dependencies)
|
32
32
|
@streaminator.stdout_puts("Generating dependencies for #{File.basename(source)}...", Verbosity::NORMAL)
|
33
|
-
|
34
|
-
command =
|
33
|
+
|
34
|
+
command =
|
35
35
|
@tool_executor.build_command_line(
|
36
36
|
tool,
|
37
37
|
source,
|
38
38
|
dependencies,
|
39
39
|
object)
|
40
|
-
|
40
|
+
|
41
41
|
@tool_executor.exec( command[:line], command[:options] )
|
42
42
|
end
|
43
43
|
|
44
44
|
def generate_mock(context, header_filepath)
|
45
45
|
arg_hash = {:header_file => header_filepath, :context => context}
|
46
46
|
@plugin_manager.pre_mock_generate( arg_hash )
|
47
|
-
|
47
|
+
|
48
48
|
begin
|
49
49
|
@cmock_builder.cmock.setup_mocks( arg_hash[:header_file] )
|
50
50
|
rescue
|
@@ -58,25 +58,27 @@ class Generator
|
|
58
58
|
def generate_test_runner(context, test_filepath, runner_filepath)
|
59
59
|
arg_hash = {:context => context, :test_file => test_filepath, :runner_file => runner_filepath}
|
60
60
|
@plugin_manager.pre_runner_generate(arg_hash)
|
61
|
-
|
61
|
+
|
62
62
|
# collect info we need
|
63
63
|
module_name = File.basename(arg_hash[:test_file])
|
64
64
|
test_cases = @generator_test_runner.find_test_cases( @file_finder.find_test_from_runner_path(runner_filepath) )
|
65
65
|
mock_list = @test_includes_extractor.lookup_raw_mock_list(arg_hash[:test_file])
|
66
66
|
|
67
67
|
@streaminator.stdout_puts("Generating runner for #{module_name}...", Verbosity::NORMAL)
|
68
|
-
|
68
|
+
|
69
|
+
test_file_includes = [] # Empty list for now, since apparently unused
|
70
|
+
|
69
71
|
# build runner file
|
70
72
|
begin
|
71
|
-
@generator_test_runner.generate(module_name, runner_filepath, test_cases, mock_list)
|
73
|
+
@generator_test_runner.generate(module_name, runner_filepath, test_cases, mock_list, test_file_includes)
|
72
74
|
rescue
|
73
75
|
raise
|
74
76
|
ensure
|
75
|
-
@plugin_manager.post_runner_generate(arg_hash)
|
77
|
+
@plugin_manager.post_runner_generate(arg_hash)
|
76
78
|
end
|
77
79
|
end
|
78
80
|
|
79
|
-
def generate_object_file(tool, context, source, object, list='')
|
81
|
+
def generate_object_file(tool, context, source, object, list='')
|
80
82
|
shell_result = {}
|
81
83
|
arg_hash = {:tool => tool, :context => context, :source => source, :object => object, :list => list}
|
82
84
|
@plugin_manager.pre_compile_execute(arg_hash)
|
@@ -104,7 +106,7 @@ class Generator
|
|
104
106
|
shell_result = {}
|
105
107
|
arg_hash = {:tool => tool, :context => context, :objects => objects, :executable => executable, :map => map}
|
106
108
|
@plugin_manager.pre_link_execute(arg_hash)
|
107
|
-
|
109
|
+
|
108
110
|
@streaminator.stdout_puts("Linking #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
|
109
111
|
command =
|
110
112
|
@tool_executor.build_command_line( arg_hash[:tool],
|
@@ -112,7 +114,7 @@ class Generator
|
|
112
114
|
arg_hash[:executable],
|
113
115
|
arg_hash[:map],
|
114
116
|
@flaginator.flag_down( OPERATION_LINK_SYM, context, executable ) )
|
115
|
-
|
117
|
+
|
116
118
|
begin
|
117
119
|
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
118
120
|
rescue ShellExecutionException => ex
|
@@ -120,13 +122,13 @@ class Generator
|
|
120
122
|
"NOTICE: If the linker reports missing symbols, the following may be to blame:\n" +
|
121
123
|
" 1. Test lacks #include statements corresponding to needed source files.\n" +
|
122
124
|
" 2. Project search paths do not contain source files corresponding to #include statements in the test.\n"
|
123
|
-
|
125
|
+
|
124
126
|
if (@configurator.project_use_mocks)
|
125
127
|
notice += " 3. Test does not #include needed mocks.\n\n"
|
126
128
|
else
|
127
129
|
notice += "\n"
|
128
130
|
end
|
129
|
-
|
131
|
+
|
130
132
|
@streaminator.stderr_puts(notice, Verbosity::COMPLAIN)
|
131
133
|
shell_result = ex.shell_result
|
132
134
|
raise ''
|
@@ -139,26 +141,26 @@ class Generator
|
|
139
141
|
def generate_test_results(tool, context, executable, result)
|
140
142
|
arg_hash = {:tool => tool, :context => context, :executable => executable, :result_file => result}
|
141
143
|
@plugin_manager.pre_test_fixture_execute(arg_hash)
|
142
|
-
|
144
|
+
|
143
145
|
@streaminator.stdout_puts("Running #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
|
144
|
-
|
146
|
+
|
145
147
|
# Unity's exit code is equivalent to the number of failed tests, so we tell @tool_executor not to fail out if there are failures
|
146
148
|
# so that we can run all tests and collect all results
|
147
149
|
command = @tool_executor.build_command_line(arg_hash[:tool], arg_hash[:executable])
|
148
150
|
command[:options][:boom] = false
|
149
151
|
shell_result = @tool_executor.exec( command[:line], command[:options] )
|
150
|
-
|
152
|
+
|
151
153
|
@generator_helper.test_results_error_handler(executable, shell_result)
|
152
|
-
|
154
|
+
|
153
155
|
processed = @generator_test_results.process_and_write_results( shell_result,
|
154
156
|
arg_hash[:result_file],
|
155
157
|
@file_finder.find_test_from_file_path(arg_hash[:executable]) )
|
156
|
-
|
158
|
+
|
157
159
|
arg_hash[:result_file] = processed[:result_file]
|
158
160
|
arg_hash[:results] = processed[:results]
|
159
161
|
arg_hash[:shell_result] = shell_result # for raw output display if no plugins for formatted display
|
160
|
-
|
162
|
+
|
161
163
|
@plugin_manager.post_test_fixture_execute(arg_hash)
|
162
164
|
end
|
163
|
-
|
165
|
+
|
164
166
|
end
|
@@ -7,23 +7,23 @@ class GeneratorTestRunner
|
|
7
7
|
tests = []
|
8
8
|
tests_and_line_numbers = []
|
9
9
|
lines = []
|
10
|
-
|
10
|
+
|
11
11
|
# if we don't have preprocessor assistance, do some basic preprocessing of our own
|
12
12
|
if (not @configurator.project_use_test_preprocessor)
|
13
13
|
source = @file_wrapper.read(test_file)
|
14
|
-
|
14
|
+
|
15
15
|
# remove line comments
|
16
16
|
source = source.gsub(/\/\/.*$/, '')
|
17
17
|
# remove block comments
|
18
18
|
source = source.gsub(/\/\*.*?\*\//m, '')
|
19
|
-
|
19
|
+
|
20
20
|
# treat preprocessor directives as a logical line
|
21
21
|
lines = source.split(/(^\s*\#.*$) | (;|\{|\}) /x) # match ;, {, and } as end of lines
|
22
22
|
# otherwise, read the preprocessed file raw
|
23
23
|
else
|
24
24
|
lines = @file_wrapper.read( @file_path_utils.form_preprocessed_file_filepath(test_file) ).split(/;|\{|\}/)
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
# step 1. find test functions in (possibly preprocessed) file
|
28
28
|
# (note that lines are not broken up at end of lines)
|
29
29
|
lines.each do |line|
|
@@ -31,12 +31,12 @@ class GeneratorTestRunner
|
|
31
31
|
tests << ($1.strip)
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
# step 2. associate test functions with line numbers in (non-preprocessed) original file
|
36
36
|
# (note that this time we must scan file contents broken up by end of lines)
|
37
37
|
raw_lines = @file_wrapper.read(test_file).split("\n")
|
38
38
|
raw_index = 0
|
39
|
-
|
39
|
+
|
40
40
|
tests.each do |test|
|
41
41
|
raw_lines[raw_index..-1].each_with_index do |line, index|
|
42
42
|
# test function might be declared across lines; look for it by its name followed
|
@@ -48,16 +48,17 @@ class GeneratorTestRunner
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
return tests_and_line_numbers
|
53
53
|
end
|
54
|
-
|
55
|
-
def generate(module_name, runner_filepath, test_cases, mock_list)
|
54
|
+
|
55
|
+
def generate(module_name, runner_filepath, test_cases, mock_list, test_file_includes=[])
|
56
56
|
require 'generate_test_runner.rb'
|
57
57
|
@test_runner_generator ||= UnityTestRunnerGenerator.new( @configurator.get_runner_config )
|
58
|
-
@test_runner_generator.generate( module_name,
|
59
|
-
runner_filepath,
|
60
|
-
test_cases,
|
61
|
-
mock_list
|
58
|
+
@test_runner_generator.generate( module_name,
|
59
|
+
runner_filepath,
|
60
|
+
test_cases,
|
61
|
+
mock_list,
|
62
|
+
test_file_includes)
|
62
63
|
end
|
63
64
|
end
|
data/lib/ceedling/version.rb
CHANGED
data/lib/ceedling/version.rb.erb
CHANGED
@@ -4,8 +4,18 @@
|
|
4
4
|
% header_prepend = ((hash[:header].length > 0) ? "#{hash[:header]}: " : '')
|
5
5
|
% banner_width = 25 + header_prepend.length # widest message
|
6
6
|
|
7
|
+
% if (stdout_count > 0)
|
8
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'TEST OUTPUT')%>
|
9
|
+
% hash[:results][:stdout].each do |string|
|
10
|
+
[<%=string[:source][:file]%>]
|
11
|
+
% string[:collection].each do |item|
|
12
|
+
- "<%=item%>"
|
13
|
+
% end
|
14
|
+
|
15
|
+
% end
|
16
|
+
% end
|
7
17
|
% if (ignored > 0)
|
8
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'IGNORED
|
18
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'IGNORED TEST SUMMARY')%>
|
9
19
|
% hash[:results][:ignores].each do |ignore|
|
10
20
|
[<%=ignore[:source][:file]%>]
|
11
21
|
% ignore[:collection].each do |item|
|
@@ -20,7 +30,7 @@
|
|
20
30
|
% end
|
21
31
|
% end
|
22
32
|
% if (failed > 0)
|
23
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'FAILED
|
33
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'FAILED TEST SUMMARY')%>
|
24
34
|
% hash[:results][:failures].each do |failure|
|
25
35
|
[<%=failure[:source][:file]%>]
|
26
36
|
% failure[:collection].each do |item|
|
@@ -32,21 +42,11 @@
|
|
32
42
|
% end
|
33
43
|
|
34
44
|
% end
|
35
|
-
% end
|
36
|
-
% end
|
37
|
-
% if (stdout_count > 0)
|
38
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'UNIT TEST OTHER OUTPUT')%>
|
39
|
-
% hash[:results][:stdout].each do |string|
|
40
|
-
[<%=string[:source][:file]%>]
|
41
|
-
% string[:collection].each do |item|
|
42
|
-
- "<%=item%>"
|
43
|
-
% end
|
44
|
-
|
45
45
|
% end
|
46
46
|
% end
|
47
47
|
% total_string = hash[:results][:counts][:total].to_s
|
48
48
|
% format_string = "%#{total_string.length}i"
|
49
|
-
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'OVERALL
|
49
|
+
<%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'OVERALL TEST SUMMARY')%>
|
50
50
|
% if (hash[:results][:counts][:total] > 0)
|
51
51
|
TESTED: <%=hash[:results][:counts][:total].to_s%>
|
52
52
|
PASSED: <%=sprintf(format_string, hash[:results][:counts][:passed])%>
|
data/release/build.info
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
227
|
2
2
|
|
data/release/version.info
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.15.
|
1
|
+
0.15.3
|
data/spec/ceedling_spec.rb
CHANGED
@@ -47,7 +47,7 @@ describe 'Ceedling' do
|
|
47
47
|
rakefile_path = File.join(File.dirname(__FILE__), '..').gsub('spec','lib')
|
48
48
|
rakefile_path = File.join( rakefile_path, 'lib', 'ceedling', 'rakefile.rb' )
|
49
49
|
# mocks/stubs/expected calls
|
50
|
-
Ceedling.
|
50
|
+
expect(Ceedling).to receive(:load).with(rakefile_path)
|
51
51
|
# execute method
|
52
52
|
Ceedling.load_project
|
53
53
|
# validate results
|
@@ -60,7 +60,7 @@ describe 'Ceedling' do
|
|
60
60
|
rakefile_path = File.join(File.dirname(__FILE__), '..').gsub('spec','lib')
|
61
61
|
rakefile_path = File.join( rakefile_path, 'lib', 'ceedling', 'rakefile.rb' )
|
62
62
|
# mocks/stubs/expected calls
|
63
|
-
Ceedling.
|
63
|
+
expect(Ceedling).to receive(:load).with(rakefile_path)
|
64
64
|
# execute method
|
65
65
|
Ceedling.load_project(config: './foo.yml')
|
66
66
|
# validate results
|
@@ -73,7 +73,7 @@ describe 'Ceedling' do
|
|
73
73
|
rakefile_path = File.join(File.dirname(__FILE__), '..').gsub('spec','lib')
|
74
74
|
rakefile_path = File.join( rakefile_path, 'lib', 'ceedling', 'rakefile.rb' )
|
75
75
|
# mocks/stubs/expected calls
|
76
|
-
Ceedling.
|
76
|
+
expect(Ceedling).to receive(:load).with(rakefile_path)
|
77
77
|
# execute method
|
78
78
|
Ceedling.load_project
|
79
79
|
# validate results
|
@@ -88,10 +88,10 @@ describe 'Ceedling' do
|
|
88
88
|
rakefile_path = File.join(File.dirname(__FILE__), '..').gsub('spec','lib')
|
89
89
|
rakefile_path = File.join( rakefile_path, 'lib', 'ceedling', 'rakefile.rb' )
|
90
90
|
# mocks/stubs/expected calls
|
91
|
-
Gem::Specification.
|
92
|
-
spec_double.
|
93
|
-
Ceedling.
|
94
|
-
Ceedling.
|
91
|
+
expect(Gem::Specification).to receive(:find_by_name).with('ceedling-foo').and_return(spec_double)
|
92
|
+
expect(spec_double).to receive(:gem_dir).and_return('dummy/path')
|
93
|
+
expect(Ceedling).to receive(:require).with('ceedling/defaults')
|
94
|
+
expect(Ceedling).to receive(:load).with(rakefile_path)
|
95
95
|
# execute method
|
96
96
|
Ceedling.load_project( config: './foo.yml',
|
97
97
|
plugins: ['foo'])
|
@@ -107,7 +107,7 @@ describe 'Ceedling' do
|
|
107
107
|
rakefile_path = File.join(File.dirname(__FILE__), '..').gsub('spec','lib')
|
108
108
|
rakefile_path = File.join( rakefile_path, 'lib', 'ceedling', 'rakefile.rb' )
|
109
109
|
# mocks/stubs/expected calls
|
110
|
-
Ceedling.
|
110
|
+
expect(Ceedling).to receive(:load).with(rakefile_path)
|
111
111
|
# execute method
|
112
112
|
Ceedling.load_project( config: './foo.yml',
|
113
113
|
root: './')
|
@@ -124,9 +124,9 @@ describe 'Ceedling' do
|
|
124
124
|
DEFAULT_CEEDLING_CONFIG[:plugins][:load_paths].clear()
|
125
125
|
spec_double = double('spec-double')
|
126
126
|
# mocks/stubs/expected calls
|
127
|
-
Gem::Specification.
|
128
|
-
spec_double.
|
129
|
-
Ceedling.
|
127
|
+
expect(Gem::Specification).to receive(:find_by_name).with('ceedling-foo').and_return(spec_double)
|
128
|
+
expect(spec_double).to receive(:gem_dir).and_return('dummy/path')
|
129
|
+
expect(Ceedling).to receive(:require).with('ceedling/defaults')
|
130
130
|
# execute method
|
131
131
|
Ceedling.register_plugin('foo')
|
132
132
|
# validate results
|
@@ -140,9 +140,9 @@ describe 'Ceedling' do
|
|
140
140
|
DEFAULT_CEEDLING_CONFIG[:plugins][:load_paths].clear()
|
141
141
|
spec_double = double('spec-double')
|
142
142
|
# mocks/stubs/expected calls
|
143
|
-
Gem::Specification.
|
144
|
-
spec_double.
|
145
|
-
Ceedling.
|
143
|
+
expect(Gem::Specification).to receive(:find_by_name).with('prefix-foo').and_return(spec_double)
|
144
|
+
expect(spec_double).to receive(:gem_dir).and_return('dummy/path')
|
145
|
+
expect(Ceedling).to receive(:require).with('ceedling/defaults')
|
146
146
|
# execute method
|
147
147
|
Ceedling.register_plugin('foo','prefix-')
|
148
148
|
# validate results
|
data/spec/spec_system_helper.rb
CHANGED
@@ -124,10 +124,10 @@ module CeedlingTestCases
|
|
124
124
|
def can_create_projects
|
125
125
|
@c.with_context do
|
126
126
|
Dir.chdir @proj_name do
|
127
|
-
File.exists?("project.yml").should
|
128
|
-
File.exists?("rakefile.rb").should
|
129
|
-
File.exists?("src").should
|
130
|
-
File.exists?("test").should
|
127
|
+
File.exists?("project.yml").should == true
|
128
|
+
File.exists?("rakefile.rb").should == true
|
129
|
+
File.exists?("src").should == true
|
130
|
+
File.exists?("test").should == true
|
131
131
|
end
|
132
132
|
end
|
133
133
|
end
|
@@ -135,7 +135,7 @@ module CeedlingTestCases
|
|
135
135
|
def contains_a_vendor_directory
|
136
136
|
@c.with_context do
|
137
137
|
Dir.chdir @proj_name do
|
138
|
-
File.exists?("vendor/ceedling").should
|
138
|
+
File.exists?("vendor/ceedling").should == true
|
139
139
|
end
|
140
140
|
end
|
141
141
|
end
|
@@ -143,7 +143,7 @@ module CeedlingTestCases
|
|
143
143
|
def does_not_contain_a_vendor_directory
|
144
144
|
@c.with_context do
|
145
145
|
Dir.chdir @proj_name do
|
146
|
-
File.exists?("vendor/ceedling").should
|
146
|
+
File.exists?("vendor/ceedling").should == false
|
147
147
|
end
|
148
148
|
end
|
149
149
|
end
|