ceedling 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +18 -14
  4. data/README.md +6 -4
  5. data/assets/project_as_gem.yml +1 -1
  6. data/assets/rakefile_as_gem.rb +2 -0
  7. data/assets/rakefile_with_guts.rb +3 -1
  8. data/ceedling.gemspec +1 -0
  9. data/examples/blinky/rakefile.rb +2 -2
  10. data/examples/temp_sensor/rakefile.rb +1 -1
  11. data/examples/temp_sensor/src/TemperatureFilter.c +1 -2
  12. data/examples/temp_sensor/test/TestTemperatureCalculator.c +1 -1
  13. data/examples/temp_sensor/test/TestTemperatureFilter.c +12 -2
  14. data/lib/ceedling.rb +94 -22
  15. data/lib/{build_invoker_utils.rb → ceedling/build_invoker_utils.rb} +27 -27
  16. data/lib/{cacheinator.rb → ceedling/cacheinator.rb} +42 -42
  17. data/lib/{cacheinator_helper.rb → ceedling/cacheinator_helper.rb} +12 -12
  18. data/lib/{cmock_builder.rb → ceedling/cmock_builder.rb} +15 -15
  19. data/lib/{configurator.rb → ceedling/configurator.rb} +333 -329
  20. data/lib/{configurator_builder.rb → ceedling/configurator_builder.rb} +437 -437
  21. data/lib/{configurator_plugins.rb → ceedling/configurator_plugins.rb} +124 -124
  22. data/lib/{configurator_setup.rb → ceedling/configurator_setup.rb} +124 -124
  23. data/lib/{configurator_validator.rb → ceedling/configurator_validator.rb} +184 -184
  24. data/lib/{constants.rb → ceedling/constants.rb} +20 -17
  25. data/lib/{defaults.rb → ceedling/defaults.rb} +19 -18
  26. data/lib/{dependinator.rb → ceedling/dependinator.rb} +92 -92
  27. data/lib/{erb_wrapper.rb → ceedling/erb_wrapper.rb} +8 -8
  28. data/lib/{file_finder.rb → ceedling/file_finder.rb} +132 -132
  29. data/lib/{file_finder_helper.rb → ceedling/file_finder_helper.rb} +54 -54
  30. data/lib/{file_path_utils.rb → ceedling/file_path_utils.rb} +189 -189
  31. data/lib/{file_system_utils.rb → ceedling/file_system_utils.rb} +69 -69
  32. data/lib/{file_system_wrapper.rb → ceedling/file_system_wrapper.rb} +9 -9
  33. data/lib/{file_wrapper.rb → ceedling/file_wrapper.rb} +79 -79
  34. data/lib/{flaginator.rb → ceedling/flaginator.rb} +54 -54
  35. data/lib/{generator.rb → ceedling/generator.rb} +164 -164
  36. data/lib/{generator_helper.rb → ceedling/generator_helper.rb} +40 -40
  37. data/lib/{generator_test_results.rb → ceedling/generator_test_results.rb} +86 -89
  38. data/lib/{generator_test_results_sanity_checker.rb → ceedling/generator_test_results_sanity_checker.rb} +64 -62
  39. data/lib/{generator_test_runner.rb → ceedling/generator_test_runner.rb} +63 -63
  40. data/lib/{loginator.rb → ceedling/loginator.rb} +31 -31
  41. data/lib/{makefile.rb → ceedling/makefile.rb} +0 -0
  42. data/lib/{objects.yml → ceedling/objects.yml} +0 -0
  43. data/lib/{par_map.rb → ceedling/par_map.rb} +0 -0
  44. data/lib/{plugin.rb → ceedling/plugin.rb} +80 -80
  45. data/lib/{plugin_builder.rb → ceedling/plugin_builder.rb} +52 -52
  46. data/lib/{plugin_manager.rb → ceedling/plugin_manager.rb} +107 -107
  47. data/lib/{plugin_manager_helper.rb → ceedling/plugin_manager_helper.rb} +19 -19
  48. data/lib/{plugin_reportinator.rb → ceedling/plugin_reportinator.rb} +2 -2
  49. data/lib/{plugin_reportinator_helper.rb → ceedling/plugin_reportinator_helper.rb} +1 -1
  50. data/lib/{preprocessinator.rb → ceedling/preprocessinator.rb} +43 -43
  51. data/lib/{preprocessinator_extractor.rb → ceedling/preprocessinator_extractor.rb} +30 -30
  52. data/lib/{preprocessinator_file_handler.rb → ceedling/preprocessinator_file_handler.rb} +21 -21
  53. data/lib/{preprocessinator_helper.rb → ceedling/preprocessinator_helper.rb} +46 -46
  54. data/lib/ceedling/preprocessinator_includes_handler.rb +82 -0
  55. data/lib/{project_config_manager.rb → ceedling/project_config_manager.rb} +38 -38
  56. data/lib/{project_file_loader.rb → ceedling/project_file_loader.rb} +64 -64
  57. data/lib/{rake_utils.rb → ceedling/rake_utils.rb} +17 -17
  58. data/lib/{rake_wrapper.rb → ceedling/rake_wrapper.rb} +33 -33
  59. data/lib/{rakefile.rb → ceedling/rakefile.rb} +78 -74
  60. data/lib/{release_invoker.rb → ceedling/release_invoker.rb} +58 -58
  61. data/lib/{release_invoker_helper.rb → ceedling/release_invoker_helper.rb} +16 -16
  62. data/lib/{reportinator.rb → ceedling/reportinator.rb} +9 -9
  63. data/lib/{rules_cmock.rake → ceedling/rules_cmock.rake} +9 -9
  64. data/lib/{rules_preprocess.rake → ceedling/rules_preprocess.rake} +26 -26
  65. data/lib/{rules_release.rake → ceedling/rules_release.rake} +79 -79
  66. data/lib/{rules_release_deep_dependencies.rake → ceedling/rules_release_deep_dependencies.rake} +15 -15
  67. data/lib/{rules_tests.rake → ceedling/rules_tests.rake} +59 -59
  68. data/lib/{rules_tests_deep_dependencies.rake → ceedling/rules_tests_deep_dependencies.rake} +15 -15
  69. data/lib/{setupinator.rb → ceedling/setupinator.rb} +51 -51
  70. data/lib/{stream_wrapper.rb → ceedling/stream_wrapper.rb} +20 -20
  71. data/lib/{streaminator.rb → ceedling/streaminator.rb} +40 -41
  72. data/lib/{streaminator_helper.rb → ceedling/streaminator_helper.rb} +15 -15
  73. data/lib/{system_utils.rb → ceedling/system_utils.rb} +0 -0
  74. data/lib/{system_wrapper.rb → ceedling/system_wrapper.rb} +76 -76
  75. data/lib/{target_loader.rb → ceedling/target_loader.rb} +0 -0
  76. data/lib/{task_invoker.rb → ceedling/task_invoker.rb} +89 -89
  77. data/lib/{tasks_base.rake → ceedling/tasks_base.rake} +104 -104
  78. data/lib/{tasks_filesystem.rake → ceedling/tasks_filesystem.rake} +91 -91
  79. data/lib/{tasks_release.rake → ceedling/tasks_release.rake} +28 -28
  80. data/lib/{tasks_release_deep_dependencies.rake → ceedling/tasks_release_deep_dependencies.rake} +9 -9
  81. data/lib/{tasks_tests.rake → ceedling/tasks_tests.rake} +52 -52
  82. data/lib/{tasks_tests_deep_dependencies.rake → ceedling/tasks_tests_deep_dependencies.rake} +9 -9
  83. data/lib/{tasks_vendor.rake → ceedling/tasks_vendor.rake} +36 -36
  84. data/lib/{test_includes_extractor.rb → ceedling/test_includes_extractor.rb} +81 -81
  85. data/lib/{test_invoker.rb → ceedling/test_invoker.rb} +97 -97
  86. data/lib/{test_invoker_helper.rb → ceedling/test_invoker_helper.rb} +28 -28
  87. data/lib/{tool_executor.rb → ceedling/tool_executor.rb} +215 -212
  88. data/lib/{tool_executor_helper.rb → ceedling/tool_executor_helper.rb} +115 -115
  89. data/lib/{verbosinator.rb → ceedling/verbosinator.rb} +10 -10
  90. data/lib/ceedling/version.rb +1 -1
  91. data/lib/{yaml_wrapper.rb → ceedling/yaml_wrapper.rb} +17 -16
  92. data/license.txt +31 -0
  93. data/plugins/bullseye/lib/bullseye.rb +2 -2
  94. data/plugins/gcov/gcov.rb +2 -2
  95. data/plugins/module_generator/lib/module_generator.rb +4 -3
  96. data/plugins/stdout_ide_tests_report/lib/stdout_ide_tests_report.rb +8 -8
  97. data/plugins/stdout_pretty_tests_report/lib/stdout_pretty_tests_report.rb +3 -3
  98. data/plugins/teamcity_tests_report/config/teamcity_tests_report.yml +4 -0
  99. data/plugins/teamcity_tests_report/lib/teamcity_tests_report.rb +57 -0
  100. data/plugins/xml_tests_report/xml_tests_report.rb +4 -4
  101. data/release/version.info +1 -1
  102. data/spec/ceedling_spec.rb +154 -0
  103. data/spec/par_map_spec.rb +1 -1
  104. data/spec/preprocessinator_extractor_spec.rb +26 -27
  105. data/spec/preprocessinator_includes_handler_spec.rb +175 -0
  106. data/spec/spec_helper.rb +8 -27
  107. data/test_graveyard/integration/paths_test.rb +2 -2
  108. data/test_graveyard/unit/busted/configurator_builder_test.rb +2 -2
  109. data/test_graveyard/unit/busted/configurator_test.rb +1 -1
  110. data/test_graveyard/unit/busted/configurator_validator_test.rb +1 -1
  111. data/test_graveyard/unit/busted/dependinator_test.rb +1 -1
  112. data/test_graveyard/unit/busted/file_finder_helper_test.rb +1 -1
  113. data/test_graveyard/unit/busted/file_finder_test.rb +1 -1
  114. data/test_graveyard/unit/busted/file_path_utils_test.rb +1 -1
  115. data/test_graveyard/unit/busted/file_system_utils_test.rb +1 -1
  116. data/test_graveyard/unit/busted/generator_test.rb +1 -1
  117. data/test_graveyard/unit/busted/generator_test_results_test.rb +1 -1
  118. data/test_graveyard/unit/busted/generator_test_runner_test.rb +1 -1
  119. data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +1 -1
  120. data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +1 -1
  121. data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +1 -1
  122. data/test_graveyard/unit/busted/preprocessinator_test.rb +1 -1
  123. data/test_graveyard/unit/busted/project_file_loader_test.rb +1 -1
  124. data/test_graveyard/unit/busted/setupinator_test.rb +1 -1
  125. data/test_graveyard/unit/busted/streaminator_test.rb +2 -2
  126. data/test_graveyard/unit/busted/task_invoker_test.rb +1 -1
  127. data/test_graveyard/unit/busted/test_includes_extractor_test.rb +1 -1
  128. data/test_graveyard/unit/busted/test_invoker_helper_test.rb +1 -1
  129. data/test_graveyard/unit/busted/test_invoker_test.rb +1 -1
  130. data/test_graveyard/unit/busted/tool_executor_helper_test.rb +1 -1
  131. data/test_graveyard/unit/busted/tool_executor_test.rb +1 -1
  132. data/test_graveyard/unit/busted/verbosinator_test.rb +1 -1
  133. data/test_graveyard/unit/preprocessinator_extractor_test.rb +1 -1
  134. data/vendor/c_exception/Gemfile +4 -0
  135. data/vendor/c_exception/lib/CException.h +1 -1
  136. data/vendor/c_exception/test/TestException.c +25 -14
  137. data/vendor/c_exception/test/TestException_Runner.c +74 -57
  138. data/vendor/cmock/Gemfile +11 -0
  139. data/vendor/cmock/lib/cmock_generator.rb +13 -12
  140. data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +44 -0
  141. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +74 -0
  142. data/vendor/cmock/lib/cmock_generator_utils.rb +67 -42
  143. data/vendor/cmock/src/cmock.c +20 -30
  144. data/vendor/cmock/src/cmock.h +1 -0
  145. data/vendor/cmock/src/cmock_internals.h +43 -0
  146. data/vendor/cmock/test/c/TestCMockC.c +79 -36
  147. data/vendor/cmock/test/c/TestCMockC_Runner.c +2 -0
  148. data/vendor/cmock/test/spec/cmock_file_writer_spec.rb +21 -1
  149. data/vendor/cmock/test/spec/cmock_generator_plugin_array_spec.rb +52 -0
  150. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +2 -0
  151. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +235 -0
  152. data/vendor/cmock/test/test_helper.rb +10 -5
  153. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +38 -0
  154. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +116 -0
  155. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +134 -0
  156. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +58 -33
  157. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  158. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  159. data/vendor/cmock/vendor/c_exception/docs/license.txt +30 -0
  160. data/vendor/cmock/vendor/c_exception/docs/readme.txt +236 -0
  161. data/vendor/cmock/vendor/c_exception/lib/CException.c +39 -0
  162. data/vendor/cmock/vendor/c_exception/lib/CException.h +70 -0
  163. data/vendor/cmock/vendor/c_exception/makefile +24 -0
  164. data/vendor/cmock/vendor/c_exception/rakefile.rb +41 -0
  165. data/vendor/cmock/vendor/c_exception/release/build.info +2 -0
  166. data/vendor/cmock/vendor/c_exception/release/version.info +2 -0
  167. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +27 -0
  168. data/vendor/cmock/vendor/c_exception/test/TestException.c +291 -0
  169. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +62 -0
  170. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +94 -0
  171. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -0
  172. data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -0
  173. data/vendor/cmock/vendor/unity/auto/generate_module.rb +202 -0
  174. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +313 -0
  175. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +23 -0
  176. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +139 -0
  177. data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
  178. data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
  179. data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +217 -0
  180. data/vendor/cmock/vendor/unity/docs/license.txt +31 -0
  181. data/vendor/cmock/vendor/unity/examples/helper/UnityHelper.c +10 -0
  182. data/vendor/cmock/vendor/unity/examples/helper/UnityHelper.h +12 -0
  183. data/vendor/cmock/vendor/unity/examples/makefile +40 -0
  184. data/vendor/cmock/vendor/unity/examples/rakefile.rb +32 -0
  185. data/vendor/cmock/vendor/unity/examples/rakefile_helper.rb +256 -0
  186. data/vendor/cmock/vendor/unity/examples/readme.txt +18 -0
  187. data/vendor/cmock/vendor/unity/examples/src/ProductionCode.c +24 -0
  188. data/vendor/cmock/vendor/unity/examples/src/ProductionCode.h +3 -0
  189. data/vendor/cmock/vendor/unity/examples/src/ProductionCode2.c +9 -0
  190. data/vendor/cmock/vendor/unity/examples/src/ProductionCode2.h +2 -0
  191. data/vendor/cmock/vendor/unity/examples/test/TestProductionCode.c +62 -0
  192. data/vendor/cmock/vendor/unity/examples/test/TestProductionCode2.c +31 -0
  193. data/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  194. data/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +50 -0
  195. data/vendor/{unity → cmock/vendor/unity}/extras/fixture/build/MakefileWorker.mk +0 -0
  196. data/vendor/{unity → cmock/vendor/unity}/extras/fixture/build/filterGcov.sh +0 -0
  197. data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +37 -0
  198. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  199. data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +9 -0
  200. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +381 -0
  201. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +81 -0
  202. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  203. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  204. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  205. data/vendor/cmock/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  206. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +321 -0
  207. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +40 -0
  208. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  209. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  210. data/vendor/cmock/vendor/unity/makefile +35 -0
  211. data/vendor/cmock/vendor/unity/rakefile.rb +48 -0
  212. data/vendor/cmock/vendor/unity/rakefile_helper.rb +240 -0
  213. data/vendor/cmock/vendor/unity/release/build.info +2 -0
  214. data/vendor/cmock/vendor/unity/release/version.info +2 -0
  215. data/vendor/cmock/vendor/unity/src/unity.c +979 -0
  216. data/vendor/cmock/vendor/unity/src/unity.h +232 -0
  217. data/vendor/cmock/vendor/unity/src/unity_internals.h +424 -0
  218. data/vendor/cmock/vendor/unity/targets/gcc.yml +43 -0
  219. data/vendor/cmock/vendor/unity/targets/gcc_64.yml +44 -0
  220. data/vendor/cmock/vendor/unity/targets/hitech_picc18.yml +101 -0
  221. data/vendor/cmock/vendor/unity/targets/iar_arm_v4.yml +89 -0
  222. data/vendor/cmock/vendor/unity/targets/iar_arm_v5.yml +79 -0
  223. data/vendor/cmock/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  224. data/vendor/cmock/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  225. data/vendor/cmock/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  226. data/vendor/cmock/vendor/unity/targets/iar_msp430.yml +94 -0
  227. data/vendor/cmock/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  228. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +54 -0
  229. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +50 -0
  230. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +76 -0
  231. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +72 -0
  232. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +85 -0
  233. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +85 -0
  234. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +73 -0
  235. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +85 -0
  236. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +85 -0
  237. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +86 -0
  238. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +60 -0
  239. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +63 -0
  240. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +51 -0
  241. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +60 -0
  242. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +63 -0
  243. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +64 -0
  244. data/vendor/cmock/vendor/unity/test/test_generate_test_runner.rb +94 -0
  245. data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +51 -0
  246. data/vendor/cmock/vendor/unity/test/testdata/sample.yml +9 -0
  247. data/vendor/cmock/vendor/unity/test/testdata/testsample.c +51 -0
  248. data/vendor/cmock/vendor/unity/test/testparameterized.c +101 -0
  249. data/vendor/cmock/vendor/unity/test/testunity.c +2024 -0
  250. data/vendor/unity/Gemfile +4 -0
  251. data/vendor/unity/auto/generate_test_runner.rb +6 -3
  252. data/vendor/unity/examples/makefile +2 -2
  253. data/vendor/unity/examples/rakefile.rb +13 -2
  254. data/vendor/unity/extras/fixture/rakefile.rb +1 -1
  255. data/vendor/unity/extras/fixture/rakefile_helper.rb +4 -3
  256. data/vendor/unity/extras/fixture/src/unity_fixture.c +15 -12
  257. data/vendor/unity/extras/fixture/src/unity_fixture.h +5 -5
  258. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -1
  259. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +6 -3
  260. data/vendor/unity/makefile +2 -2
  261. data/vendor/unity/src/unity.c +183 -16
  262. data/vendor/unity/src/unity.h +18 -5
  263. data/vendor/unity/src/unity_internals.h +57 -23
  264. data/vendor/unity/targets/gcc_64.yml +45 -0
  265. data/vendor/unity/test/testunity.c +436 -28
  266. metadata +200 -137
  267. data/ceedling-0.13.0.rc4.gem +0 -0
  268. data/ceedling.sublime-project +0 -8
  269. data/ceedling.sublime-workspace +0 -365
  270. data/lib/preprocessinator_includes_handler.rb +0 -55
  271. data/tags +0 -977
  272. data/vendor/cmock/vendor/hardmock/CHANGES +0 -78
  273. data/vendor/cmock/vendor/hardmock/LICENSE +0 -7
  274. data/vendor/cmock/vendor/hardmock/README +0 -70
  275. data/vendor/cmock/vendor/hardmock/Rakefile +0 -8
  276. data/vendor/cmock/vendor/hardmock/config/environment.rb +0 -12
  277. data/vendor/cmock/vendor/hardmock/lib/assert_error.rb +0 -23
  278. data/vendor/cmock/vendor/hardmock/lib/extend_test_unit.rb +0 -14
  279. data/vendor/cmock/vendor/hardmock/lib/hardmock.rb +0 -86
  280. data/vendor/cmock/vendor/hardmock/lib/hardmock/errors.rb +0 -22
  281. data/vendor/cmock/vendor/hardmock/lib/hardmock/expectation.rb +0 -229
  282. data/vendor/cmock/vendor/hardmock/lib/hardmock/expectation_builder.rb +0 -9
  283. data/vendor/cmock/vendor/hardmock/lib/hardmock/expector.rb +0 -26
  284. data/vendor/cmock/vendor/hardmock/lib/hardmock/method_cleanout.rb +0 -33
  285. data/vendor/cmock/vendor/hardmock/lib/hardmock/mock.rb +0 -180
  286. data/vendor/cmock/vendor/hardmock/lib/hardmock/mock_control.rb +0 -53
  287. data/vendor/cmock/vendor/hardmock/lib/hardmock/stubbing.rb +0 -210
  288. data/vendor/cmock/vendor/hardmock/lib/hardmock/trapper.rb +0 -31
  289. data/vendor/cmock/vendor/hardmock/lib/hardmock/utils.rb +0 -9
  290. data/vendor/cmock/vendor/hardmock/lib/test_unit_before_after.rb +0 -169
  291. data/vendor/cmock/vendor/hardmock/rake_tasks/rdoc.rake +0 -19
  292. data/vendor/cmock/vendor/hardmock/rake_tasks/rdoc_options.rb +0 -4
  293. data/vendor/cmock/vendor/hardmock/rake_tasks/test.rake +0 -22
  294. data/vendor/cmock/vendor/hardmock/test/functional/assert_error_test.rb +0 -52
  295. data/vendor/cmock/vendor/hardmock/test/functional/auto_verify_test.rb +0 -178
  296. data/vendor/cmock/vendor/hardmock/test/functional/direct_mock_usage_test.rb +0 -396
  297. data/vendor/cmock/vendor/hardmock/test/functional/hardmock_test.rb +0 -434
  298. data/vendor/cmock/vendor/hardmock/test/functional/stubbing_test.rb +0 -479
  299. data/vendor/cmock/vendor/hardmock/test/test_helper.rb +0 -43
  300. data/vendor/cmock/vendor/hardmock/test/unit/expectation_builder_test.rb +0 -19
  301. data/vendor/cmock/vendor/hardmock/test/unit/expectation_test.rb +0 -372
  302. data/vendor/cmock/vendor/hardmock/test/unit/expector_test.rb +0 -57
  303. data/vendor/cmock/vendor/hardmock/test/unit/method_cleanout_test.rb +0 -36
  304. data/vendor/cmock/vendor/hardmock/test/unit/mock_control_test.rb +0 -175
  305. data/vendor/cmock/vendor/hardmock/test/unit/mock_test.rb +0 -279
  306. data/vendor/cmock/vendor/hardmock/test/unit/test_unit_before_after_test.rb +0 -452
  307. data/vendor/cmock/vendor/hardmock/test/unit/trapper_test.rb +0 -62
  308. data/vendor/cmock/vendor/hardmock/test/unit/verify_error_test.rb +0 -40
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org/"
2
+
3
+ gem "rake"
4
+ gem "test-unit", "2.4.3"
@@ -176,21 +176,24 @@ class UnityTestRunnerGenerator
176
176
  output.puts(" GlobalOrderError = NULL;")
177
177
  end
178
178
  mocks.each do |mock|
179
- output.puts(" #{mock}_Init();")
179
+ mock_clean = mock.gsub(/(?:-|\s+)/, "_")
180
+ output.puts(" #{mock_clean}_Init();")
180
181
  end
181
182
  output.puts("}\n")
182
183
 
183
184
  output.puts("static void CMock_Verify(void)")
184
185
  output.puts("{")
185
186
  mocks.each do |mock|
186
- output.puts(" #{mock}_Verify();")
187
+ mock_clean = mock.gsub(/(?:-|\s+)/, "_")
188
+ output.puts(" #{mock_clean}_Verify();")
187
189
  end
188
190
  output.puts("}\n")
189
191
 
190
192
  output.puts("static void CMock_Destroy(void)")
191
193
  output.puts("{")
192
194
  mocks.each do |mock|
193
- output.puts(" #{mock}_Destroy();")
195
+ mock_clean = mock.gsub(/(?:-|\s+)/, "_")
196
+ output.puts(" #{mock_clean}_Destroy();")
194
197
  end
195
198
  output.puts("}\n")
196
199
  end
@@ -32,8 +32,8 @@ default:
32
32
  # ruby auto/generate_test_runner.rb test/TestProductionCode2.c test/no_ruby/TestProductionCode2_Runner.c
33
33
  $(C_COMPILER) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES1) -o $(TARGET1)
34
34
  $(C_COMPILER) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES2) -o $(TARGET2)
35
- $(TARGET1)
36
- $(TARGET2)
35
+ ./$(TARGET1)
36
+ ./$(TARGET2)
37
37
 
38
38
  clean:
39
39
  $(CLEANUP)
@@ -5,13 +5,24 @@ require 'rake/clean'
5
5
  require 'rake/testtask'
6
6
  require HERE+'rakefile_helper'
7
7
 
8
+ TEMP_DIRS = [
9
+ File.join(HERE, 'build')
10
+ ]
11
+
12
+ TEMP_DIRS.each do |dir|
13
+ directory(dir)
14
+ CLOBBER.include(dir)
15
+ end
16
+
17
+ task :prepare_for_tests => TEMP_DIRS
18
+
8
19
  include RakefileHelpers
9
20
 
10
21
  # Load default configuration, for now
11
- DEFAULT_CONFIG_FILE = 'gcc.yml'
22
+ DEFAULT_CONFIG_FILE = 'gcc_32.yml'
12
23
  configure_toolchain(DEFAULT_CONFIG_FILE)
13
24
 
14
- task :unit do
25
+ task :unit => [:prepare_for_tests] do
15
26
  run_tests get_unit_test_files
16
27
  end
17
28
 
@@ -14,7 +14,7 @@ require HERE + 'rakefile_helper'
14
14
  include RakefileHelpers
15
15
 
16
16
  # Load default configuration, for now
17
- DEFAULT_CONFIG_FILE = 'gcc.yml'
17
+ DEFAULT_CONFIG_FILE = 'gcc_32.yml'
18
18
  configure_toolchain(DEFAULT_CONFIG_FILE)
19
19
 
20
20
  task :unit do
@@ -87,7 +87,7 @@ module RakefileHelpers
87
87
  return {:command => command, :options => options, :includes => includes}
88
88
  end
89
89
 
90
- def link(exe_name, obj_list)
90
+ def link_it(exe_name, obj_list)
91
91
  linker = build_linker_fields
92
92
  cmd_str = "#{linker[:command]}#{linker[:options]}#{linker[:includes]} " +
93
93
  (obj_list.map{|obj|"#{$cfg['linker']['object_files']['path']}#{obj} "}).join +
@@ -148,7 +148,8 @@ module RakefileHelpers
148
148
  # Get a list of all source files needed
149
149
  src_files = Dir[HERE+'src/*.c']
150
150
  src_files += Dir[HERE+'test/*.c']
151
- src_files << '../../src/Unity.c'
151
+ src_files += Dir[HERE+'test/main/*.c']
152
+ src_files << '../../src/unity.c'
152
153
 
153
154
  # Build object files
154
155
  src_files.each { |f| compile(f, test_defines) }
@@ -156,7 +157,7 @@ module RakefileHelpers
156
157
 
157
158
  # Link the test executable
158
159
  test_base = "framework_test"
159
- link(test_base, obj_list)
160
+ link_it(test_base, obj_list)
160
161
 
161
162
  # Execute unit test and generate results file
162
163
  simulator = build_simulator_fields
@@ -5,9 +5,9 @@
5
5
  [Released under MIT License. Please refer to license.txt for details]
6
6
  ========================================== */
7
7
 
8
+ #include <string.h>
8
9
  #include "unity_fixture.h"
9
10
  #include "unity_internals.h"
10
- #include <string.h>
11
11
 
12
12
  UNITY_FIXTURE_T UnityFixture;
13
13
 
@@ -107,20 +107,20 @@ void UnityTestRunner(unityfunction* setup,
107
107
  UnityPointer_UndoAllSets();
108
108
  if (!Unity.CurrentTestFailed)
109
109
  UnityMalloc_EndTest();
110
- UnityConcludeFixtureTest();
111
- }
112
- else
113
- {
114
- //aborting - jwg - di i need these for the other TEST_PROTECTS?
115
110
  }
111
+ UnityConcludeFixtureTest();
116
112
  }
117
113
  }
118
114
 
119
- void UnityIgnoreTest()
115
+ void UnityIgnoreTest(const char * printableName)
120
116
  {
121
117
  Unity.NumberOfTests++;
122
118
  Unity.CurrentTestIgnored = 1;
123
- UNITY_OUTPUT_CHAR('!');
119
+ if (!UnityFixture.Verbose)
120
+ UNITY_OUTPUT_CHAR('!');
121
+ else
122
+ UnityPrint(printableName);
123
+ UnityConcludeFixtureTest();
124
124
  }
125
125
 
126
126
 
@@ -164,8 +164,8 @@ void UnityMalloc_MakeMallocFailAfterCount(int countdown)
164
164
 
165
165
  typedef struct GuardBytes
166
166
  {
167
- int size;
168
- char guard[sizeof(int)];
167
+ size_t size;
168
+ char guard[sizeof(size_t)];
169
169
  } Guard;
170
170
 
171
171
 
@@ -254,7 +254,7 @@ void* unity_realloc(void * oldMem, size_t size)
254
254
  return oldMem;
255
255
 
256
256
  newMem = unity_malloc(size);
257
- memcpy(newMem, oldMem, size);
257
+ memcpy(newMem, oldMem, guard->size);
258
258
  unity_free(oldMem);
259
259
  return newMem;
260
260
  }
@@ -360,6 +360,10 @@ void UnityConcludeFixtureTest()
360
360
  {
361
361
  if (Unity.CurrentTestIgnored)
362
362
  {
363
+ if (UnityFixture.Verbose)
364
+ {
365
+ UNITY_OUTPUT_CHAR('\n');
366
+ }
363
367
  Unity.TestIgnores++;
364
368
  }
365
369
  else if (!Unity.CurrentTestFailed)
@@ -378,4 +382,3 @@ void UnityConcludeFixtureTest()
378
382
  Unity.CurrentTestFailed = 0;
379
383
  Unity.CurrentTestIgnored = 0;
380
384
  }
381
-
@@ -41,7 +41,7 @@ int UnityMain(int argc, char* argv[], void (*runAllTests)());
41
41
  void TEST_##group##_##name##_();\
42
42
  void TEST_##group##_##name##_run()\
43
43
  {\
44
- UnityIgnoreTest();\
44
+ UnityIgnoreTest("IGNORE_TEST(" #group ", " #name ")");\
45
45
  }\
46
46
  void TEST_##group##_##name##_()
47
47
 
@@ -49,8 +49,8 @@ int UnityMain(int argc, char* argv[], void (*runAllTests)());
49
49
  void TEST_##group##_##name##_run()
50
50
 
51
51
  #define RUN_TEST_CASE(group, name) \
52
- DECLARE_TEST_CASE(group, name);\
53
- TEST_##group##_##name##_run();
52
+ { DECLARE_TEST_CASE(group, name);\
53
+ TEST_##group##_##name##_run(); }
54
54
 
55
55
  //This goes at the bottom of each test file or in a separate c file
56
56
  #define TEST_GROUP_RUNNER(group)\
@@ -63,8 +63,8 @@ int UnityMain(int argc, char* argv[], void (*runAllTests)());
63
63
 
64
64
  //Call this from main
65
65
  #define RUN_TEST_GROUP(group)\
66
- void TEST_##group##_GROUP_RUNNER();\
67
- TEST_##group##_GROUP_RUNNER();
66
+ { void TEST_##group##_GROUP_RUNNER();\
67
+ TEST_##group##_GROUP_RUNNER(); }
68
68
 
69
69
  //CppUTest Compatibility Macros
70
70
  #define UT_PTR_SET(ptr, newPointerValue) UnityPointer_Set((void**)&ptr, (void*)newPointerValue)
@@ -25,7 +25,7 @@ void UnityTestRunner(unityfunction * setup,
25
25
  const char * name,
26
26
  const char * file, int line);
27
27
 
28
- void UnityIgnoreTest();
28
+ void UnityIgnoreTest(const char * printableName);
29
29
  void UnityMalloc_StartTest();
30
30
  void UnityMalloc_EndTest();
31
31
  int UnityFailureCount();
@@ -49,10 +49,12 @@ TEST(UnityFixture, PointerSetting)
49
49
 
50
50
  TEST(UnityFixture, ForceMallocFail)
51
51
  {
52
+ void* m;
53
+ void* mfails;
52
54
  UnityMalloc_MakeMallocFailAfterCount(1);
53
- void* m = malloc(10);
55
+ m = malloc(10);
54
56
  CHECK(m);
55
- void* mfails = malloc(10);
57
+ mfails = malloc(10);
56
58
  TEST_ASSERT_POINTERS_EQUAL(0, mfails);
57
59
  free(m);
58
60
  }
@@ -76,8 +78,9 @@ TEST(UnityFixture, ReallocSameIsUnchanged)
76
78
  TEST(UnityFixture, ReallocLargerNeeded)
77
79
  {
78
80
  void* m1 = malloc(10);
81
+ void* m2;
79
82
  strcpy((char*)m1, "123456789");
80
- void* m2 = realloc(m1, 15);
83
+ m2 = realloc(m1, 15);
81
84
  CHECK(m1 != m2);
82
85
  STRCMP_EQUAL("123456789", m2);
83
86
  free(m2);
@@ -20,7 +20,7 @@ SYMBOLS=-DTEST -DUNITY_SUPPORT_64
20
20
  ifeq ($(OS),Windows_NT)
21
21
  CLEANUP = del /F /Q build\* && del /F /Q $(TARGET)
22
22
  else
23
- CLEANUP = rm -f build/*.o ; rm -f $(TARGET)
23
+ CLEANUP = rm -f build/*.o ; rm -f $(TARGET) ; mkdir -p build
24
24
  endif
25
25
 
26
26
  all: clean default
@@ -28,7 +28,7 @@ all: clean default
28
28
  default:
29
29
  ruby auto/generate_test_runner.rb test/testunity.c build/testunity_Runner.c
30
30
  $(C_COMPILER) $(INC_DIRS) $(SYMBOLS) $(SRC_FILES) $(OUT_FILE)
31
- $(TARGET)
31
+ ./$(TARGET)
32
32
 
33
33
  clean:
34
34
  $(CLEANUP)
@@ -28,6 +28,18 @@ const char* UnityStrDelta = " Values Not Within Delta ";
28
28
  const char* UnityStrPointless= " You Asked Me To Compare Nothing, Which Was Pointless.";
29
29
  const char* UnityStrNullPointerForExpected= " Expected pointer to be NULL";
30
30
  const char* UnityStrNullPointerForActual = " Actual pointer was NULL";
31
+ const char* UnityStrInf = "Infinity";
32
+ const char* UnityStrNegInf = "Negative Infinity";
33
+ const char* UnityStrNaN = "NaN";
34
+
35
+ #ifndef UNITY_EXCLUDE_FLOAT
36
+ // Dividing by these constants produces +/- infinity.
37
+ // The rationale is given in UnityAssertFloatIsInf's body.
38
+ static const _UF f_zero = 0.0f;
39
+ #ifndef UNITY_EXCLUDE_DOUBLE
40
+ static const _UD d_zero = 0.0;
41
+ #endif
42
+ #endif
31
43
 
32
44
  // compiler-generic print formatting masks
33
45
  const _U_UINT UnitySizeMask[] =
@@ -413,7 +425,10 @@ void UnityAssertEqualIntArray(const _U_SINT* expected,
413
425
  if (UnityCheckArraysForNull((void*)expected, (void*)actual, lineNumber, msg) == 1)
414
426
  return;
415
427
 
416
- switch(style)
428
+ // If style is UNITY_DISPLAY_STYLE_INT, we'll fall into the default case rather than the INT16 or INT32 (etc) case
429
+ // as UNITY_DISPLAY_STYLE_INT includes a flag for UNITY_DISPLAY_RANGE_AUTO, which the width-specific
430
+ // variants do not. Therefore remove this flag.
431
+ switch(style & ~UNITY_DISPLAY_RANGE_AUTO)
417
432
  {
418
433
  case UNITY_DISPLAY_STYLE_HEX8:
419
434
  case UNITY_DISPLAY_STYLE_INT8:
@@ -531,12 +546,14 @@ void UnityAssertEqualFloatArray(const _UF* expected,
531
546
  while (elements--)
532
547
  {
533
548
  diff = *ptr_expected - *ptr_actual;
534
- if (diff < 0.0)
535
- diff = 0.0 - diff;
549
+ if (diff < 0.0f)
550
+ diff = 0.0f - diff;
536
551
  tol = UNITY_FLOAT_PRECISION * *ptr_expected;
537
- if (tol < 0.0)
538
- tol = 0.0 - tol;
539
- if (diff > tol)
552
+ if (tol < 0.0f)
553
+ tol = 0.0f - tol;
554
+
555
+ //This first part of this condition will catch any NaN or Infinite values
556
+ if ((diff * 0.0f != 0.0f) || (diff > tol))
540
557
  {
541
558
  UnityTestResultsFailBegin(lineNumber);
542
559
  UnityPrint(UnityStrElement);
@@ -569,16 +586,17 @@ void UnityAssertFloatsWithin(const _UF delta,
569
586
 
570
587
  UNITY_SKIP_EXECUTION;
571
588
 
572
- if (diff < 0)
589
+ if (diff < 0.0f)
573
590
  {
574
591
  diff = 0.0f - diff;
575
592
  }
576
- if (pos_delta < 0)
593
+ if (pos_delta < 0.0f)
577
594
  {
578
595
  pos_delta = 0.0f - pos_delta;
579
596
  }
580
597
 
581
- if (pos_delta < diff)
598
+ //This first part of this condition will catch any NaN or Infinite values
599
+ if ((diff * 0.0f != 0.0f) || (pos_delta < diff))
582
600
  {
583
601
  UnityTestResultsFailBegin(lineNumber);
584
602
  #ifdef UNITY_FLOAT_VERBOSE
@@ -594,6 +612,81 @@ void UnityAssertFloatsWithin(const _UF delta,
594
612
  }
595
613
  }
596
614
 
615
+ //-----------------------------------------------
616
+ void UnityAssertFloatIsInf(const _UF actual,
617
+ const char* msg,
618
+ const UNITY_LINE_TYPE lineNumber)
619
+ {
620
+ UNITY_SKIP_EXECUTION;
621
+
622
+ // In Microsoft Visual C++ Express Edition 2008,
623
+ // if ((1.0f / f_zero) != actual)
624
+ // produces
625
+ // error C2124: divide or mod by zero
626
+ // As a workaround, place 0 into a variable.
627
+ if ((1.0f / f_zero) != actual)
628
+ {
629
+ UnityTestResultsFailBegin(lineNumber);
630
+ #ifdef UNITY_FLOAT_VERBOSE
631
+ UnityPrint(UnityStrExpected);
632
+ UnityPrint(UnityStrInf);
633
+ UnityPrint(UnityStrWas);
634
+ UnityPrintFloat(actual);
635
+ #else
636
+ UnityPrint(UnityStrDelta);
637
+ #endif
638
+ UnityAddMsgIfSpecified(msg);
639
+ UNITY_FAIL_AND_BAIL;
640
+ }
641
+ }
642
+
643
+ //-----------------------------------------------
644
+ void UnityAssertFloatIsNegInf(const _UF actual,
645
+ const char* msg,
646
+ const UNITY_LINE_TYPE lineNumber)
647
+ {
648
+ UNITY_SKIP_EXECUTION;
649
+
650
+ // The rationale for not using 1.0f/0.0f is given in UnityAssertFloatIsInf's body.
651
+ if ((-1.0f / f_zero) != actual)
652
+ {
653
+ UnityTestResultsFailBegin(lineNumber);
654
+ #ifdef UNITY_FLOAT_VERBOSE
655
+ UnityPrint(UnityStrExpected);
656
+ UnityPrint(UnityStrNegInf);
657
+ UnityPrint(UnityStrWas);
658
+ UnityPrintFloat(actual);
659
+ #else
660
+ UnityPrint(UnityStrDelta);
661
+ #endif
662
+ UnityAddMsgIfSpecified(msg);
663
+ UNITY_FAIL_AND_BAIL;
664
+ }
665
+ }
666
+
667
+ //-----------------------------------------------
668
+ void UnityAssertFloatIsNaN(const _UF actual,
669
+ const char* msg,
670
+ const UNITY_LINE_TYPE lineNumber)
671
+ {
672
+ UNITY_SKIP_EXECUTION;
673
+
674
+ if (actual == actual)
675
+ {
676
+ UnityTestResultsFailBegin(lineNumber);
677
+ #ifdef UNITY_FLOAT_VERBOSE
678
+ UnityPrint(UnityStrExpected);
679
+ UnityPrint(UnityStrNaN);
680
+ UnityPrint(UnityStrWas);
681
+ UnityPrintFloat(actual);
682
+ #else
683
+ UnityPrint(UnityStrDelta);
684
+ #endif
685
+ UnityAddMsgIfSpecified(msg);
686
+ UNITY_FAIL_AND_BAIL;
687
+ }
688
+ }
689
+
597
690
  #endif //not UNITY_EXCLUDE_FLOAT
598
691
 
599
692
  //-----------------------------------------------
@@ -630,7 +723,9 @@ void UnityAssertEqualDoubleArray(const _UD* expected,
630
723
  tol = UNITY_DOUBLE_PRECISION * *ptr_expected;
631
724
  if (tol < 0.0)
632
725
  tol = 0.0 - tol;
633
- if (diff > tol)
726
+
727
+ //This first part of this condition will catch any NaN or Infinite values
728
+ if ((diff * 0.0 != 0.0) || (diff > tol))
634
729
  {
635
730
  UnityTestResultsFailBegin(lineNumber);
636
731
  UnityPrint(UnityStrElement);
@@ -663,16 +758,17 @@ void UnityAssertDoublesWithin(const _UD delta,
663
758
 
664
759
  UNITY_SKIP_EXECUTION;
665
760
 
666
- if (diff < 0)
761
+ if (diff < 0.0)
667
762
  {
668
- diff = 0.0f - diff;
763
+ diff = 0.0 - diff;
669
764
  }
670
- if (pos_delta < 0)
765
+ if (pos_delta < 0.0)
671
766
  {
672
- pos_delta = 0.0f - pos_delta;
767
+ pos_delta = 0.0 - pos_delta;
673
768
  }
674
769
 
675
- if (pos_delta < diff)
770
+ //This first part of this condition will catch any NaN or Infinite values
771
+ if ((diff * 0.0 != 0.0) || (pos_delta < diff))
676
772
  {
677
773
  UnityTestResultsFailBegin(lineNumber);
678
774
  #ifdef UNITY_DOUBLE_VERBOSE
@@ -688,6 +784,77 @@ void UnityAssertDoublesWithin(const _UD delta,
688
784
  }
689
785
  }
690
786
 
787
+ //-----------------------------------------------
788
+ void UnityAssertDoubleIsInf(const _UD actual,
789
+ const char* msg,
790
+ const UNITY_LINE_TYPE lineNumber)
791
+ {
792
+ UNITY_SKIP_EXECUTION;
793
+
794
+ // The rationale for not using 1.0/0.0 is given in UnityAssertFloatIsInf's body.
795
+ if ((1.0 / d_zero) != actual)
796
+ {
797
+ UnityTestResultsFailBegin(lineNumber);
798
+ #ifdef UNITY_DOUBLE_VERBOSE
799
+ UnityPrint(UnityStrExpected);
800
+ UnityPrint(UnityStrInf);
801
+ UnityPrint(UnityStrWas);
802
+ UnityPrintFloat((float)actual);
803
+ #else
804
+ UnityPrint(UnityStrDelta);
805
+ #endif
806
+ UnityAddMsgIfSpecified(msg);
807
+ UNITY_FAIL_AND_BAIL;
808
+ }
809
+ }
810
+
811
+ //-----------------------------------------------
812
+ void UnityAssertDoubleIsNegInf(const _UD actual,
813
+ const char* msg,
814
+ const UNITY_LINE_TYPE lineNumber)
815
+ {
816
+ UNITY_SKIP_EXECUTION;
817
+
818
+ // The rationale for not using 1.0/0.0 is given in UnityAssertFloatIsInf's body.
819
+ if ((-1.0 / d_zero) != actual)
820
+ {
821
+ UnityTestResultsFailBegin(lineNumber);
822
+ #ifdef UNITY_DOUBLE_VERBOSE
823
+ UnityPrint(UnityStrExpected);
824
+ UnityPrint(UnityStrNegInf);
825
+ UnityPrint(UnityStrWas);
826
+ UnityPrintFloat((float)actual);
827
+ #else
828
+ UnityPrint(UnityStrDelta);
829
+ #endif
830
+ UnityAddMsgIfSpecified(msg);
831
+ UNITY_FAIL_AND_BAIL;
832
+ }
833
+ }
834
+
835
+ //-----------------------------------------------
836
+ void UnityAssertDoubleIsNaN(const _UD actual,
837
+ const char* msg,
838
+ const UNITY_LINE_TYPE lineNumber)
839
+ {
840
+ UNITY_SKIP_EXECUTION;
841
+
842
+ if (actual == actual)
843
+ {
844
+ UnityTestResultsFailBegin(lineNumber);
845
+ #ifdef UNITY_DOUBLE_VERBOSE
846
+ UnityPrint(UnityStrExpected);
847
+ UnityPrint(UnityStrNaN);
848
+ UnityPrint(UnityStrWas);
849
+ UnityPrintFloat((float)actual);
850
+ #else
851
+ UnityPrint(UnityStrDelta);
852
+ #endif
853
+ UnityAddMsgIfSpecified(msg);
854
+ UNITY_FAIL_AND_BAIL;
855
+ }
856
+ }
857
+
691
858
  #endif // not UNITY_EXCLUDE_DOUBLE
692
859
 
693
860
  //-----------------------------------------------
@@ -819,7 +986,7 @@ void UnityAssertEqualStringArray( const char** expected,
819
986
  if (num_elements > 1)
820
987
  {
821
988
  UnityPrint(UnityStrElement);
822
- UnityPrintNumberByStyle((num_elements - j - 1), UNITY_DISPLAY_STYLE_UINT);
989
+ UnityPrintNumberByStyle((j), UNITY_DISPLAY_STYLE_UINT);
823
990
  }
824
991
  UnityPrintExpectedAndActualStrings((const char*)(expected[j]), (const char*)(actual[j]));
825
992
  UnityAddMsgIfSpecified(msg);