ceedling 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. data/Rakefile +55 -6
  2. data/examples/temp_sensor/project.yml +2 -2
  3. data/lib/ceedling/version.rb +3 -3
  4. data/lib/ceedling/version.rb.erb +1 -1
  5. data/new_project_template/project.yml +1 -1
  6. data/new_project_template/vendor/ceedling/{vendor/c_exception/docs → docs}/CExceptionSummary.pdf +0 -0
  7. data/new_project_template/vendor/ceedling/vendor/cmock/docs/CMock Summary.pdf b/data/new_project_template/vendor/ceedling/docs/CMock → Summary.pdf +0 -0
  8. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf b/data/new_project_template/vendor/ceedling/docs/Unity → Summary.pdf +0 -0
  9. data/new_project_template/vendor/ceedling/lib/configurator.rb +65 -16
  10. data/new_project_template/vendor/ceedling/lib/configurator_builder.rb +1 -8
  11. data/new_project_template/vendor/ceedling/lib/configurator_plugins.rb +8 -1
  12. data/new_project_template/vendor/ceedling/lib/configurator_setup.rb +30 -34
  13. data/new_project_template/vendor/ceedling/lib/configurator_validator.rb +32 -5
  14. data/new_project_template/vendor/ceedling/lib/constants.rb +17 -4
  15. data/new_project_template/vendor/ceedling/lib/defaults.rb +120 -106
  16. data/new_project_template/vendor/ceedling/lib/file_path_utils.rb +1 -1
  17. data/new_project_template/vendor/ceedling/lib/generator.rb +14 -6
  18. data/new_project_template/vendor/ceedling/lib/objects.yml +5 -0
  19. data/new_project_template/vendor/ceedling/lib/plugin.rb +2 -1
  20. data/new_project_template/vendor/ceedling/lib/plugin_manager.rb +6 -1
  21. data/new_project_template/vendor/ceedling/lib/preprocessinator_file_handler.rb +2 -2
  22. data/new_project_template/vendor/ceedling/lib/preprocessinator_includes_handler.rb +2 -2
  23. data/new_project_template/vendor/ceedling/lib/rules_cmock.rake +1 -1
  24. data/new_project_template/vendor/ceedling/lib/rules_preprocess.rake +2 -2
  25. data/new_project_template/vendor/ceedling/lib/rules_release.rake +4 -4
  26. data/new_project_template/vendor/ceedling/lib/rules_release_aux_dependencies.rake +1 -1
  27. data/new_project_template/vendor/ceedling/lib/rules_tests.rake +5 -5
  28. data/new_project_template/vendor/ceedling/lib/rules_tests_aux_dependencies.rake +1 -1
  29. data/new_project_template/vendor/ceedling/lib/setupinator.rb +10 -3
  30. data/new_project_template/vendor/ceedling/lib/system_utils.rb +32 -0
  31. data/new_project_template/vendor/ceedling/lib/system_wrapper.rb +13 -5
  32. data/new_project_template/vendor/ceedling/lib/tasks_base.rake +2 -2
  33. data/new_project_template/vendor/ceedling/lib/tasks_release.rake +1 -1
  34. data/new_project_template/vendor/ceedling/lib/tasks_tests.rake +1 -1
  35. data/new_project_template/vendor/ceedling/lib/tool_executor.rb +38 -10
  36. data/new_project_template/vendor/ceedling/lib/tool_executor_helper.rb +68 -10
  37. data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rake +142 -0
  38. data/new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rb +145 -0
  39. data/new_project_template/vendor/ceedling/plugins/bullseye/defaults.yml +49 -0
  40. data/new_project_template/vendor/ceedling/plugins/bullseye/template.erb +15 -0
  41. data/new_project_template/vendor/ceedling/plugins/gcov/defaults.yml +34 -0
  42. data/new_project_template/vendor/ceedling/plugins/gcov/gcov.rake +136 -0
  43. data/new_project_template/vendor/ceedling/plugins/gcov/gcov.rb +115 -0
  44. data/new_project_template/vendor/ceedling/plugins/gcov/template.erb +15 -0
  45. data/new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.rb +1 -1
  46. data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.rb +3 -63
  47. data/new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/template.erb +59 -0
  48. data/new_project_template/vendor/ceedling/plugins/warnings_report/warnings_report.rb +71 -0
  49. data/new_project_template/vendor/ceedling/release/build.info +1 -1
  50. data/new_project_template/vendor/ceedling/vendor/c_exception/release/version.info +1 -1
  51. data/new_project_template/vendor/ceedling/vendor/unity/src/unity.c +30 -21
  52. metadata +18 -27
  53. data/new_project_template/vendor/ceedling/docs/Ceedling Packet.odt +0 -0
  54. data/new_project_template/vendor/ceedling/docs/CeedlingLogo.png +0 -0
  55. data/new_project_template/vendor/ceedling/rakefile.rb +0 -59
  56. data/new_project_template/vendor/ceedling/rakefile_helper.rb +0 -23
  57. data/new_project_template/vendor/ceedling/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  58. data/new_project_template/vendor/ceedling/vendor/c_exception/docs/license.txt +0 -30
  59. data/new_project_template/vendor/ceedling/vendor/c_exception/docs/readme.txt +0 -236
  60. data/new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +0 -217
  61. data/new_project_template/vendor/ceedling/vendor/cmock/docs/CMock Summary.odt +0 -0
  62. data/new_project_template/vendor/ceedling/vendor/cmock/docs/license.txt +0 -31
  63. data/new_project_template/vendor/ceedling/vendor/deep_merge/MIT-LICENSE +0 -20
  64. data/new_project_template/vendor/ceedling/vendor/deep_merge/README +0 -94
  65. data/new_project_template/vendor/ceedling/vendor/deep_merge/Rakefile +0 -28
  66. data/new_project_template/vendor/ceedling/vendor/deep_merge/test/test_deep_merge.rb +0 -553
  67. data/new_project_template/vendor/ceedling/vendor/diy/History.txt +0 -28
  68. data/new_project_template/vendor/ceedling/vendor/diy/README.rdoc +0 -233
  69. data/new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.odt +0 -0
  70. data/new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.pdf +0 -0
  71. data/new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.txt +0 -217
  72. data/new_project_template/vendor/ceedling/vendor/unity/docs/license.txt +0 -31
@@ -0,0 +1,115 @@
1
+ require 'plugin'
2
+ require 'constants'
3
+
4
+ GCOV_ROOT_NAME = 'gcov'
5
+ GCOV_TASK_ROOT = GCOV_ROOT_NAME + ':'
6
+ GCOV_CONTEXT = GCOV_ROOT_NAME.to_sym
7
+
8
+ GCOV_BUILD_PATH = "#{PROJECT_BUILD_ROOT}/#{GCOV_ROOT_NAME}"
9
+ GCOV_BUILD_OUTPUT_PATH = "#{GCOV_BUILD_PATH}/out"
10
+ GCOV_RESULTS_PATH = "#{GCOV_BUILD_PATH}/results"
11
+ GCOV_DEPENDENCIES_PATH = "#{GCOV_BUILD_PATH}/dependencies"
12
+ GCOV_ARTIFACTS_PATH = "#{PROJECT_BUILD_ARTIFACTS_ROOT}/#{GCOV_ROOT_NAME}"
13
+
14
+
15
+ class Gcov < Plugin
16
+
17
+ attr_reader :config
18
+
19
+ def setup
20
+ @result_list = []
21
+
22
+ @config = {
23
+ :project_test_build_output_path => GCOV_BUILD_OUTPUT_PATH,
24
+ :project_test_results_path => GCOV_RESULTS_PATH,
25
+ :project_test_dependencies_path => GCOV_DEPENDENCIES_PATH,
26
+ }
27
+
28
+ @coverage_template_all = @ceedling[:file_wrapper].read( File.join( PLUGINS_GCOV_PATH, 'template.erb') )
29
+ end
30
+
31
+ def generate_coverage_object_file(source, object)
32
+ compile_command = @ceedling[:tool_executor].build_command_line(TOOLS_GCOV_COMPILER, source, object)
33
+ @ceedling[:streaminator].stdout_puts("Compiling #{File.basename(source)} with coverage...")
34
+ @ceedling[:tool_executor].exec( compile_command[:line], compile_command[:options] )
35
+ end
36
+
37
+ def post_test_execute(arg_hash)
38
+ result_file = arg_hash[:result_file]
39
+
40
+ if ((result_file =~ /#{GCOV_RESULTS_PATH}/) and (not @result_list.include?(result_file)))
41
+ @result_list << arg_hash[:result_file]
42
+ end
43
+ end
44
+
45
+ def post_build
46
+ return if (not @ceedling[:task_invoker].invoked?(/^#{GCOV_TASK_ROOT}/))
47
+
48
+ # test results
49
+ results = @ceedling[:plugin_reportinator].assemble_test_results(@result_list)
50
+ hash = {
51
+ :header => GCOV_ROOT_NAME.upcase,
52
+ :results => results
53
+ }
54
+
55
+ @ceedling[:plugin_reportinator].run_test_results_report(hash) do
56
+ message = ''
57
+ message = 'Unit test failures.' if (results[:counts][:failed] > 0)
58
+ message
59
+ end
60
+
61
+ if (@ceedling[:task_invoker].invoked?(/^#{GCOV_TASK_ROOT}(all|delta)/))
62
+ report_coverage_results_summary(@ceedling[:test_invoker].sources)
63
+ else
64
+ report_per_file_coverage_results(@ceedling[:test_invoker].sources)
65
+ end
66
+ end
67
+
68
+ def summary
69
+ result_list = @ceedling[:file_path_utils].form_pass_results_filelist( GCOV_RESULTS_PATH, COLLECTION_ALL_TESTS )
70
+
71
+ # test results
72
+ # get test results for only those tests in our configuration and of those only tests with results on disk
73
+ hash = {
74
+ :header => GCOV_ROOT_NAME.upcase,
75
+ :results => @ceedling[:plugin_reportinator].assemble_test_results(result_list, {:boom => false})
76
+ }
77
+
78
+ @ceedling[:plugin_reportinator].run_test_results_report(hash)
79
+
80
+ # coverage results
81
+ # command = @ceedling[:tool_executor].build_command_line(TOOLS_GCOV_REPORT_COVSRC)
82
+ # shell_result = @ceedling[:tool_executor].exec(command[:line], command[:options])
83
+ # report_coverage_results_all(shell_result[:output])
84
+ end
85
+
86
+ private ###################################
87
+
88
+ def report_coverage_results_summary(sources)
89
+
90
+ end
91
+
92
+ def report_per_file_coverage_results(sources)
93
+ banner = @ceedling[:plugin_reportinator].generate_banner "#{GCOV_ROOT_NAME.upcase}: CODE COVERAGE SUMMARY"
94
+ @ceedling[:streaminator].stdout_puts "\n" + banner
95
+
96
+ sources.each do |source|
97
+ basename = File.basename(source)
98
+ command = @ceedling[:tool_executor].build_command_line(TOOLS_GCOV_REPORT, basename)
99
+ shell_results = @ceedling[:tool_executor].exec(command[:line], command[:options])
100
+ coverage_results = shell_results[:output]
101
+
102
+ if (coverage_results.strip =~ /(File\s+'#{Regexp.escape(source)}'.+$)/m)
103
+ report = ((($1.lines.to_a)[1..-1])).map{|line| basename + ' ' + line}.join('')
104
+ @ceedling[:streaminator].stdout_puts (report + "\n\n")
105
+ end
106
+ end
107
+ end
108
+
109
+ end
110
+
111
+ # end blocks always executed following rake run
112
+ END {
113
+ # cache our input configurations to use in comparison upon next execution
114
+ @ceedling[:cacheinator].cache_test_config( @ceedling[:setupinator].config_hash ) if (@ceedling[:task_invoker].invoked?(/^#{GCOV_TASK_ROOT}/))
115
+ }
@@ -0,0 +1,15 @@
1
+ % function_string = hash[:coverage][:functions].to_s
2
+ % branch_string = hash[:coverage][:branches].to_s
3
+ % format_string = "%#{[function_string.length, branch_string.length].max}i"
4
+ <%=@ceedling[:plugin_reportinator].generate_banner("#{BULLSEYE_ROOT_NAME.upcase}: CODE COVERAGE SUMMARY")%>
5
+ % if (!hash[:coverage][:functions].nil?)
6
+ FUNCTIONS: <%=sprintf(format_string, hash[:coverage][:functions])%>%
7
+ % else
8
+ FUNCTIONS: none
9
+ % end
10
+ % if (!hash[:coverage][:branches].nil?)
11
+ BRANCHES: <%=sprintf(format_string, hash[:coverage][:branches])%>%
12
+ % else
13
+ BRANCHES: none
14
+ % end
15
+
@@ -8,7 +8,7 @@ class StdoutIdeTestsReport < Plugin
8
8
  end
9
9
 
10
10
  def post_test_execute(arg_hash)
11
- return if not (arg_hash[:context] == TEST_CONTEXT)
11
+ return if not (arg_hash[:context] == TEST_SYM)
12
12
 
13
13
  @result_list << arg_hash[:result_file]
14
14
  end
@@ -6,73 +6,13 @@ class StdoutPrettyTestsReport < Plugin
6
6
  def setup
7
7
  @result_list = []
8
8
 
9
- template = %q{
10
- % ignored = hash[:results][:counts][:ignored]
11
- % failed = hash[:results][:counts][:failed]
12
- % stdout_count = hash[:results][:counts][:stdout]
13
- % header_prepend = ((hash[:header].length > 0) ? "#{hash[:header]}: " : '')
14
- % banner_width = 25 + header_prepend.length # widest message
9
+ template = @ceedling[:file_wrapper].read( File.join( PLUGINS_STDOUT_PRETTY_TESTS_REPORT_PATH, 'template.erb' ) )
15
10
 
16
- % if (ignored > 0)
17
- <%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'IGNORED UNIT TEST SUMMARY')%>
18
- % hash[:results][:ignores].each do |ignore|
19
- [<%=ignore[:source][:file]%>]
20
- % ignore[:collection].each do |item|
21
- Test: <%=item[:test]%>
22
- % if (not item[:message].empty?)
23
- At line (<%=item[:line]%>): "<%=item[:message]%>"
24
- % else
25
- At line (<%=item[:line]%>)
26
- % end
27
-
28
- % end
29
- % end
30
- % end
31
- % if (failed > 0)
32
- <%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'FAILED UNIT TEST SUMMARY')%>
33
- % hash[:results][:failures].each do |failure|
34
- [<%=failure[:source][:file]%>]
35
- % failure[:collection].each do |item|
36
- Test: <%=item[:test]%>
37
- % if (not item[:message].empty?)
38
- At line (<%=item[:line]%>): "<%=item[:message]%>"
39
- % else
40
- At line (<%=item[:line]%>)
41
- % end
42
-
43
- % end
44
- % end
45
- % end
46
- % if (stdout_count > 0)
47
- <%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'UNIT TEST OTHER OUTPUT')%>
48
- % hash[:results][:stdout].each do |string|
49
- [<%=string[:source][:file]%>]
50
- % string[:collection].each do |item|
51
- - "<%=item%>"
52
- % end
53
-
54
- % end
55
- % end
56
- % total_string = hash[:results][:counts][:total].to_s
57
- % format_string = "%#{total_string.length}i"
58
- <%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'OVERALL UNIT TEST SUMMARY')%>
59
- % if (hash[:results][:counts][:total] > 0)
60
- TESTED: <%=hash[:results][:counts][:total].to_s%>
61
- PASSED: <%=sprintf(format_string, hash[:results][:counts][:passed])%>
62
- FAILED: <%=sprintf(format_string, failed)%>
63
- IGNORED: <%=sprintf(format_string, ignored)%>
64
- % else
65
-
66
- No tests executed.
67
- % end
68
-
69
- }.left_margin
70
-
71
- @ceedling[:plugin_reportinator].register_test_results_template( template )
11
+ @ceedling[:plugin_reportinator].register_test_results_template( template )
72
12
  end
73
13
 
74
14
  def post_test_execute(arg_hash)
75
- return if not (arg_hash[:context] == TEST_CONTEXT)
15
+ return if not (arg_hash[:context] == TEST_SYM)
76
16
 
77
17
  @result_list << arg_hash[:result_file]
78
18
  end
@@ -0,0 +1,59 @@
1
+ % ignored = hash[:results][:counts][:ignored]
2
+ % failed = hash[:results][:counts][:failed]
3
+ % stdout_count = hash[:results][:counts][:stdout]
4
+ % header_prepend = ((hash[:header].length > 0) ? "#{hash[:header]}: " : '')
5
+ % banner_width = 25 + header_prepend.length # widest message
6
+
7
+ % if (ignored > 0)
8
+ <%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'IGNORED UNIT TEST SUMMARY')%>
9
+ % hash[:results][:ignores].each do |ignore|
10
+ [<%=ignore[:source][:file]%>]
11
+ % ignore[:collection].each do |item|
12
+ Test: <%=item[:test]%>
13
+ % if (not item[:message].empty?)
14
+ At line (<%=item[:line]%>): "<%=item[:message]%>"
15
+ % else
16
+ At line (<%=item[:line]%>)
17
+ % end
18
+
19
+ % end
20
+ % end
21
+ % end
22
+ % if (failed > 0)
23
+ <%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'FAILED UNIT TEST SUMMARY')%>
24
+ % hash[:results][:failures].each do |failure|
25
+ [<%=failure[:source][:file]%>]
26
+ % failure[:collection].each do |item|
27
+ Test: <%=item[:test]%>
28
+ % if (not item[:message].empty?)
29
+ At line (<%=item[:line]%>): "<%=item[:message]%>"
30
+ % else
31
+ At line (<%=item[:line]%>)
32
+ % end
33
+
34
+ % 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
+ % end
46
+ % end
47
+ % total_string = hash[:results][:counts][:total].to_s
48
+ % format_string = "%#{total_string.length}i"
49
+ <%=@ceedling[:plugin_reportinator].generate_banner(header_prepend + 'OVERALL UNIT TEST SUMMARY')%>
50
+ % if (hash[:results][:counts][:total] > 0)
51
+ TESTED: <%=hash[:results][:counts][:total].to_s%>
52
+ PASSED: <%=sprintf(format_string, hash[:results][:counts][:passed])%>
53
+ FAILED: <%=sprintf(format_string, failed)%>
54
+ IGNORED: <%=sprintf(format_string, ignored)%>
55
+ % else
56
+
57
+ No tests executed.
58
+ % end
59
+
@@ -0,0 +1,71 @@
1
+ require 'plugin'
2
+ require 'constants'
3
+
4
+ class WarningsReport < Plugin
5
+
6
+ def setup
7
+ @stderr_redirect = nil
8
+ @log_paths = {}
9
+ end
10
+
11
+ def pre_compile_execute( arg_hash )
12
+ # at beginning of compile, override tool's stderr_redirect so we can parse $stderr + $stdout
13
+ set_stderr_redirect( arg_hash )
14
+ end
15
+
16
+ def post_compile_execute( arg_hash )
17
+ # after compilation, grab output for parsing/logging, restore stderr_redirect, log warning if it exists
18
+ output = arg_hash[:shell_result][:output]
19
+ restore_stderr_redirect( arg_hash )
20
+ write_warning_log( arg_hash[:context], output )
21
+ end
22
+
23
+ def pre_link_execute( arg_hash )
24
+ # at beginning of link, override tool's stderr_redirect so we can parse $stderr + $stdout
25
+ set_stderr_redirect( arg_hash )
26
+ end
27
+
28
+ def post_link_execute( arg_hash )
29
+ # after linking, grab output for parsing/logging, restore stderr_redirect, log warning if it exists
30
+ output = arg_hash[:shell_result][:output]
31
+ restore_stderr_redirect( arg_hash )
32
+ write_warning_log( arg_hash[:context], output )
33
+ end
34
+
35
+ private
36
+
37
+ def set_stderr_redirect( hash )
38
+ @stderr_redirect = hash[:tool][:stderr_redirect]
39
+ hash[:tool][:stderr_redirect] = StdErrRedirect::AUTO
40
+ end
41
+
42
+ def restore_stderr_redirect( hash )
43
+ hash[:tool][:stderr_redirect] = @stderr_redirect
44
+ end
45
+
46
+ def write_warning_log( context, output )
47
+ # if $stderr/$stdout contain "warning", log it
48
+ if (output =~ /warning/i)
49
+ # generate a log path & file io write flags
50
+ logging = generate_log_path( context )
51
+ @ceedling[:file_wrapper].write( logging[:path], output + "\n", logging[:flags] ) if (not logging.nil?)
52
+ end
53
+ end
54
+
55
+ def generate_log_path( context )
56
+ # if path has already been generated, return it & 'append' file io flags (append to log)
57
+ return { :path => @log_paths[context], :flags => 'a' } if (not @log_paths[context].nil?)
58
+
59
+ # first time through, generate path & 'write' file io flags (create new log)
60
+ base_path = File.join( PROJECT_BUILD_ARTIFACTS_ROOT, context.to_s )
61
+ file_path = File.join( base_path, 'warnings.log' )
62
+
63
+ if (@ceedling[:file_wrapper].exist?( base_path ))
64
+ @log_paths[context] = file_path
65
+ return { :path => file_path, :flags => 'w' }
66
+ end
67
+
68
+ return nil
69
+ end
70
+
71
+ end
@@ -1 +1 @@
1
- 157
1
+ 172
@@ -22,7 +22,8 @@ const char* UnityStrExpected = " Expected ";
22
22
  const char* UnityStrWas = " Was ";
23
23
  const char* UnityStrTo = " To ";
24
24
  const char* UnityStrElement = " Element ";
25
- const char* UnityStrMemory = " Memory Mismatch";
25
+ const char* UnityStrByte = " Byte ";
26
+ const char* UnityStrMemory = " Memory Mismatch.";
26
27
  const char* UnityStrDelta = " Values Not Within Delta ";
27
28
  const char* UnityStrPointless= " You Asked Me To Compare Nothing, Which Was Pointless.";
28
29
  const char* UnityStrNullPointerForExpected= " Expected pointer to be NULL";
@@ -725,9 +726,10 @@ void UnityAssertEqualMemory( const void* expected,
725
726
  const char* msg,
726
727
  const UNITY_LINE_TYPE lineNumber)
727
728
  {
728
- unsigned char* expected_ptr = (unsigned char*)expected;
729
- unsigned char* actual_ptr = (unsigned char*)actual;
729
+ unsigned char* ptr_exp = (unsigned char*)expected;
730
+ unsigned char* ptr_act = (unsigned char*)actual;
730
731
  _UU32 elements = num_elements;
732
+ _UU32 bytes;
731
733
 
732
734
  UNITY_SKIP_EXECUTION;
733
735
 
@@ -744,26 +746,33 @@ void UnityAssertEqualMemory( const void* expected,
744
746
 
745
747
  while (elements--)
746
748
  {
747
- if (memcmp((const void*)expected_ptr, (const void*)actual_ptr, length) != 0)
749
+ /////////////////////////////////////
750
+ bytes = length;
751
+ while (bytes--)
748
752
  {
749
- Unity.CurrentTestFailed = 1;
750
- break;
751
- }
752
- expected_ptr += length;
753
- actual_ptr += length;
754
- }
755
-
756
- if (Unity.CurrentTestFailed)
757
- {
758
- UnityTestResultsFailBegin(lineNumber);
759
- if (num_elements > 1)
760
- {
761
- UnityPrint(UnityStrElement);
762
- UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
753
+ if (*ptr_exp != *ptr_act)
754
+ {
755
+ UnityTestResultsFailBegin(lineNumber);
756
+ UnityPrint(UnityStrMemory);
757
+ if (num_elements > 1)
758
+ {
759
+ UnityPrint(UnityStrElement);
760
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
761
+ }
762
+ UnityPrint(UnityStrByte);
763
+ UnityPrintNumberByStyle((length - bytes - 1), UNITY_DISPLAY_STYLE_UINT);
764
+ UnityPrint(UnityStrExpected);
765
+ UnityPrintNumberByStyle(*ptr_exp, UNITY_DISPLAY_STYLE_HEX8);
766
+ UnityPrint(UnityStrWas);
767
+ UnityPrintNumberByStyle(*ptr_act, UNITY_DISPLAY_STYLE_HEX8);
768
+ UnityAddMsgIfSpecified(msg);
769
+ UNITY_FAIL_AND_BAIL;
770
+ }
771
+ ptr_exp += 1;
772
+ ptr_act += 1;
763
773
  }
764
- UnityPrint(UnityStrMemory);
765
- UnityAddMsgIfSpecified(msg);
766
- UNITY_FAIL_AND_BAIL;
774
+ /////////////////////////////////////
775
+
767
776
  }
768
777
  }
769
778
 
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: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Karlesky, Mark VanderVoord
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2011-04-04 00:00:00 -04:00
20
+ date: 2011-04-05 00:00:00 -04:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -165,9 +165,10 @@ files:
165
165
  - new_project_template/src/.gitkeep
166
166
  - new_project_template/test/.gitkeep
167
167
  - new_project_template/test/support/.gitkeep
168
- - new_project_template/vendor/ceedling/docs/Ceedling Packet.odt
168
+ - new_project_template/vendor/ceedling/docs/CExceptionSummary.pdf
169
+ - new_project_template/vendor/ceedling/docs/CMock Summary.pdf
169
170
  - new_project_template/vendor/ceedling/docs/Ceedling Packet.pdf
170
- - new_project_template/vendor/ceedling/docs/CeedlingLogo.png
171
+ - new_project_template/vendor/ceedling/docs/Unity Summary.pdf
171
172
  - new_project_template/vendor/ceedling/lib/cacheinator.rb
172
173
  - new_project_template/vendor/ceedling/lib/cacheinator_helper.rb
173
174
  - new_project_template/vendor/ceedling/lib/cmock_builder.rb
@@ -219,6 +220,7 @@ files:
219
220
  - new_project_template/vendor/ceedling/lib/stream_wrapper.rb
220
221
  - new_project_template/vendor/ceedling/lib/streaminator.rb
221
222
  - new_project_template/vendor/ceedling/lib/streaminator_helper.rb
223
+ - new_project_template/vendor/ceedling/lib/system_utils.rb
222
224
  - new_project_template/vendor/ceedling/lib/system_wrapper.rb
223
225
  - new_project_template/vendor/ceedling/lib/task_invoker.rb
224
226
  - new_project_template/vendor/ceedling/lib/tasks_base.rake
@@ -233,30 +235,29 @@ files:
233
235
  - new_project_template/vendor/ceedling/lib/tool_executor_helper.rb
234
236
  - new_project_template/vendor/ceedling/lib/verbosinator.rb
235
237
  - new_project_template/vendor/ceedling/lib/yaml_wrapper.rb
238
+ - new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rake
239
+ - new_project_template/vendor/ceedling/plugins/bullseye/bullseye.rb
240
+ - new_project_template/vendor/ceedling/plugins/bullseye/defaults.yml
241
+ - new_project_template/vendor/ceedling/plugins/bullseye/template.erb
242
+ - new_project_template/vendor/ceedling/plugins/gcov/defaults.yml
243
+ - new_project_template/vendor/ceedling/plugins/gcov/gcov.rake
244
+ - new_project_template/vendor/ceedling/plugins/gcov/gcov.rb
245
+ - new_project_template/vendor/ceedling/plugins/gcov/template.erb
236
246
  - new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.rb
237
247
  - new_project_template/vendor/ceedling/plugins/stdout_ide_tests_report/stdout_ide_tests_report.yml
238
248
  - new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.rb
239
249
  - new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/stdout_pretty_tests_report.yml
250
+ - new_project_template/vendor/ceedling/plugins/stdout_pretty_tests_report/template.erb
251
+ - new_project_template/vendor/ceedling/plugins/warnings_report/warnings_report.rb
240
252
  - new_project_template/vendor/ceedling/plugins/xml_tests_report/xml_tests_report.rb
241
- - new_project_template/vendor/ceedling/rakefile.rb
242
- - new_project_template/vendor/ceedling/rakefile_helper.rb
243
253
  - new_project_template/vendor/ceedling/release/build.info
244
254
  - new_project_template/vendor/ceedling/release/version.info
245
- - new_project_template/vendor/ceedling/vendor/c_exception/docs/CExceptionSummary.odt
246
- - new_project_template/vendor/ceedling/vendor/c_exception/docs/CExceptionSummary.pdf
247
- - new_project_template/vendor/ceedling/vendor/c_exception/docs/license.txt
248
- - new_project_template/vendor/ceedling/vendor/c_exception/docs/readme.txt
249
255
  - new_project_template/vendor/ceedling/vendor/c_exception/lib/CException.c
250
256
  - new_project_template/vendor/ceedling/vendor/c_exception/lib/CException.h
251
257
  - new_project_template/vendor/ceedling/vendor/c_exception/release/build.info
252
258
  - new_project_template/vendor/ceedling/vendor/c_exception/release/version.info
253
- - new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf
254
- - new_project_template/vendor/ceedling/vendor/c_exception/vendor/unity/docs/Unity Summary.txt
255
259
  - new_project_template/vendor/ceedling/vendor/cmock/config/production_environment.rb
256
260
  - new_project_template/vendor/ceedling/vendor/cmock/config/test_environment.rb
257
- - new_project_template/vendor/ceedling/vendor/cmock/docs/CMock Summary.odt
258
- - new_project_template/vendor/ceedling/vendor/cmock/docs/CMock Summary.pdf
259
- - new_project_template/vendor/ceedling/vendor/cmock/docs/license.txt
260
261
  - new_project_template/vendor/ceedling/vendor/cmock/lib/cmock.rb
261
262
  - new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_config.rb
262
263
  - new_project_template/vendor/ceedling/vendor/cmock/lib/cmock_file_writer.rb
@@ -276,19 +277,9 @@ files:
276
277
  - new_project_template/vendor/ceedling/vendor/cmock/src/cmock.h
277
278
  - new_project_template/vendor/ceedling/vendor/constructor/lib/constructor.rb
278
279
  - new_project_template/vendor/ceedling/vendor/constructor/lib/constructor_struct.rb
279
- - new_project_template/vendor/ceedling/vendor/deep_merge/MIT-LICENSE
280
- - new_project_template/vendor/ceedling/vendor/deep_merge/README
281
- - new_project_template/vendor/ceedling/vendor/deep_merge/Rakefile
282
280
  - new_project_template/vendor/ceedling/vendor/deep_merge/lib/deep_merge.rb
283
- - new_project_template/vendor/ceedling/vendor/deep_merge/test/test_deep_merge.rb
284
- - new_project_template/vendor/ceedling/vendor/diy/History.txt
285
- - new_project_template/vendor/ceedling/vendor/diy/README.rdoc
286
281
  - new_project_template/vendor/ceedling/vendor/diy/lib/diy.rb
287
282
  - new_project_template/vendor/ceedling/vendor/diy/lib/diy/factory.rb
288
- - new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.odt
289
- - new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.pdf
290
- - new_project_template/vendor/ceedling/vendor/unity/docs/Unity Summary.txt
291
- - new_project_template/vendor/ceedling/vendor/unity/docs/license.txt
292
283
  - new_project_template/vendor/ceedling/vendor/unity/release/build.info
293
284
  - new_project_template/vendor/ceedling/vendor/unity/release/version.info
294
285
  - new_project_template/vendor/ceedling/vendor/unity/src/unity.c