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,46 @@
1
+ /* AUTOGENERATED FILE. DO NOT EDIT. */
2
+ #include "unity.h"
3
+ #include <setjmp.h>
4
+ #include <stdio.h>
5
+
6
+ char MessageBuffer[50];
7
+
8
+ extern void setUp(void);
9
+ extern void tearDown(void);
10
+
11
+ extern void test_IgnoredTest(void);
12
+ extern void test_AnotherIgnoredTest(void);
13
+ extern void test_ThisFunctionHasNotBeenTested_NeedsToBeImplemented(void);
14
+
15
+ static void runTest(UnityTestFunction test)
16
+ {
17
+ if (TEST_PROTECT())
18
+ {
19
+ setUp();
20
+ test();
21
+ }
22
+ if (TEST_PROTECT() && !TEST_IS_IGNORED)
23
+ {
24
+ tearDown();
25
+ }
26
+ }
27
+ void resetTest()
28
+ {
29
+ tearDown();
30
+ setUp();
31
+ }
32
+
33
+
34
+ int main(void)
35
+ {
36
+ Unity.TestFile = "test/TestProductionCode2.c";
37
+ UnityBegin();
38
+
39
+ // RUN_TEST calls runTest
40
+ RUN_TEST(test_IgnoredTest, 13);
41
+ RUN_TEST(test_AnotherIgnoredTest, 18);
42
+ RUN_TEST(test_ThisFunctionHasNotBeenTested_NeedsToBeImplemented, 23);
43
+
44
+ UnityEnd();
45
+ return 0;
46
+ }
@@ -0,0 +1,50 @@
1
+ /* AUTOGENERATED FILE. DO NOT EDIT. */
2
+ #include "unity.h"
3
+ #include <setjmp.h>
4
+ #include <stdio.h>
5
+
6
+ char MessageBuffer[50];
7
+
8
+ extern void setUp(void);
9
+ extern void tearDown(void);
10
+
11
+ extern void test_FindFunction_WhichIsBroken_ShouldReturnZeroIfItemIsNotInList_WhichWorksEvenInOurBrokenCode(void);
12
+ extern void test_FindFunction_WhichIsBroken_ShouldReturnTheIndexForItemsInList_WhichWillFailBecauseOurFunctionUnderTestIsBroken(void);
13
+ extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValue(void);
14
+ extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValueAgain(void);
15
+ extern void test_FunctionWhichReturnsLocalVariable_ShouldReturnCurrentCounter_ButFailsBecauseThisTestIsActuallyFlawed(void);
16
+
17
+ static void runTest(UnityTestFunction test)
18
+ {
19
+ if (TEST_PROTECT())
20
+ {
21
+ setUp();
22
+ test();
23
+ }
24
+ if (TEST_PROTECT() && !TEST_IS_IGNORED)
25
+ {
26
+ tearDown();
27
+ }
28
+ }
29
+ void resetTest()
30
+ {
31
+ tearDown();
32
+ setUp();
33
+ }
34
+
35
+
36
+ int main(void)
37
+ {
38
+ Unity.TestFile = "test/TestProductionCode.c";
39
+ UnityBegin();
40
+
41
+ // RUN_TEST calls runTest
42
+ RUN_TEST(test_FindFunction_WhichIsBroken_ShouldReturnZeroIfItemIsNotInList_WhichWorksEvenInOurBrokenCode, 20);
43
+ RUN_TEST(test_FindFunction_WhichIsBroken_ShouldReturnTheIndexForItemsInList_WhichWillFailBecauseOurFunctionUnderTestIsBroken, 30);
44
+ RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValue, 41);
45
+ RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnTheCurrentCounterValueAgain, 51);
46
+ RUN_TEST(test_FunctionWhichReturnsLocalVariable_ShouldReturnCurrentCounter_ButFailsBecauseThisTestIsActuallyFlawed, 57);
47
+
48
+ UnityEnd();
49
+ return 0;
50
+ }
@@ -0,0 +1,37 @@
1
+ # ==========================================
2
+ # Unity Project - A Test Framework for C
3
+ # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
+ # [Released under MIT License. Please refer to license.txt for details]
5
+ # ==========================================
6
+
7
+ HERE = File.expand_path(File.dirname(__FILE__)) + '/'
8
+
9
+ require 'rake'
10
+ require 'rake/clean'
11
+ require 'rake/testtask'
12
+ require HERE + 'rakefile_helper'
13
+
14
+ include RakefileHelpers
15
+
16
+ # Load default configuration, for now
17
+ DEFAULT_CONFIG_FILE = 'gcc.yml'
18
+ configure_toolchain(DEFAULT_CONFIG_FILE)
19
+
20
+ task :unit do
21
+ run_tests
22
+ end
23
+
24
+ desc "Build and test Unity Framework"
25
+ task :all => [:clean, :unit]
26
+ task :default => [:clobber, :all]
27
+ task :ci => [:no_color, :default]
28
+ task :cruise => [:no_color, :default]
29
+
30
+ desc "Load configuration"
31
+ task :config, :config_file do |t, args|
32
+ configure_toolchain(args[:config_file])
33
+ end
34
+
35
+ task :no_color do
36
+ $colour_output = false
37
+ end
@@ -0,0 +1,178 @@
1
+ # ==========================================
2
+ # Unity Project - A Test Framework for C
3
+ # Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
4
+ # [Released under MIT License. Please refer to license.txt for details]
5
+ # ==========================================
6
+
7
+ require 'yaml'
8
+ require 'fileutils'
9
+ require HERE+'../../auto/unity_test_summary'
10
+ require HERE+'../../auto/generate_test_runner'
11
+ require HERE+'../../auto/colour_reporter'
12
+
13
+ module RakefileHelpers
14
+
15
+ C_EXTENSION = '.c'
16
+
17
+ def load_configuration(config_file)
18
+ unless ($configured)
19
+ $cfg_file = HERE+"../../targets/#{config_file}" unless (config_file =~ /[\\|\/]/)
20
+ $cfg = YAML.load(File.read($cfg_file))
21
+ $colour_output = false unless $cfg['colour']
22
+ $configured = true if (config_file != DEFAULT_CONFIG_FILE)
23
+ end
24
+ end
25
+
26
+ def configure_clean
27
+ CLEAN.include($cfg['compiler']['build_path'] + '*.*') unless $cfg['compiler']['build_path'].nil?
28
+ end
29
+
30
+ def configure_toolchain(config_file=DEFAULT_CONFIG_FILE)
31
+ config_file += '.yml' unless config_file =~ /\.yml$/
32
+ config_file = config_file unless config_file =~ /[\\|\/]/
33
+ load_configuration(config_file)
34
+ configure_clean
35
+ end
36
+
37
+ def tackit(strings)
38
+ if strings.is_a?(Array)
39
+ result = "\"#{strings.join}\""
40
+ else
41
+ result = strings
42
+ end
43
+ return result
44
+ end
45
+
46
+ def squash(prefix, items)
47
+ result = ''
48
+ items.each { |item| result += " #{prefix}#{tackit(item)}" }
49
+ return result
50
+ end
51
+
52
+ def build_compiler_fields
53
+ command = tackit($cfg['compiler']['path'])
54
+ if $cfg['compiler']['defines']['items'].nil?
55
+ defines = ''
56
+ else
57
+ defines = squash($cfg['compiler']['defines']['prefix'], $cfg['compiler']['defines']['items'] + ['UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar'])
58
+ end
59
+ options = squash('', $cfg['compiler']['options'])
60
+ includes = squash($cfg['compiler']['includes']['prefix'], $cfg['compiler']['includes']['items'])
61
+ includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
62
+ return {:command => command, :defines => defines, :options => options, :includes => includes}
63
+ end
64
+
65
+ def compile(file, defines=[])
66
+ compiler = build_compiler_fields
67
+ unity_include = $cfg['compiler']['includes']['prefix']+'../../src'
68
+ cmd_str = "#{compiler[:command]}#{compiler[:defines]}#{compiler[:options]}#{compiler[:includes]} #{unity_include} #{file} " +
69
+ "#{$cfg['compiler']['object_files']['prefix']}#{$cfg['compiler']['object_files']['destination']}" +
70
+ "#{File.basename(file, C_EXTENSION)}#{$cfg['compiler']['object_files']['extension']}"
71
+ execute(cmd_str)
72
+ end
73
+
74
+ def build_linker_fields
75
+ command = tackit($cfg['linker']['path'])
76
+ if $cfg['linker']['options'].nil?
77
+ options = ''
78
+ else
79
+ options = squash('', $cfg['linker']['options'])
80
+ end
81
+ if ($cfg['linker']['includes'].nil? || $cfg['linker']['includes']['items'].nil?)
82
+ includes = ''
83
+ else
84
+ includes = squash($cfg['linker']['includes']['prefix'], $cfg['linker']['includes']['items'])
85
+ end
86
+ includes = includes.gsub(/\\ /, ' ').gsub(/\\\"/, '"').gsub(/\\$/, '') # Remove trailing slashes (for IAR)
87
+ return {:command => command, :options => options, :includes => includes}
88
+ end
89
+
90
+ def link(exe_name, obj_list)
91
+ linker = build_linker_fields
92
+ cmd_str = "#{linker[:command]}#{linker[:options]}#{linker[:includes]} " +
93
+ (obj_list.map{|obj|"#{$cfg['linker']['object_files']['path']}#{obj} "}).join +
94
+ $cfg['linker']['bin_files']['prefix'] + ' ' +
95
+ $cfg['linker']['bin_files']['destination'] +
96
+ exe_name + $cfg['linker']['bin_files']['extension']
97
+ execute(cmd_str)
98
+ end
99
+
100
+ def build_simulator_fields
101
+ return nil if $cfg['simulator'].nil?
102
+ if $cfg['simulator']['path'].nil?
103
+ command = ''
104
+ else
105
+ command = (tackit($cfg['simulator']['path']) + ' ')
106
+ end
107
+ if $cfg['simulator']['pre_support'].nil?
108
+ pre_support = ''
109
+ else
110
+ pre_support = squash('', $cfg['simulator']['pre_support'])
111
+ end
112
+ if $cfg['simulator']['post_support'].nil?
113
+ post_support = ''
114
+ else
115
+ post_support = squash('', $cfg['simulator']['post_support'])
116
+ end
117
+ return {:command => command, :pre_support => pre_support, :post_support => post_support}
118
+ end
119
+
120
+ def execute(command_string, verbose=true)
121
+ report command_string
122
+ output = `#{command_string}`.chomp
123
+ report(output) if (verbose && !output.nil? && (output.length > 0))
124
+ if ($?.exitstatus != 0)
125
+ raise "Command failed. (Returned #{$?.exitstatus})"
126
+ end
127
+ return output
128
+ end
129
+
130
+ def report_summary
131
+ summary = UnityTestSummary.new
132
+ summary.set_root_path(HERE)
133
+ results_glob = "#{$cfg['compiler']['build_path']}*.test*"
134
+ results_glob.gsub!(/\\/, '/')
135
+ results = Dir[results_glob]
136
+ summary.set_targets(results)
137
+ summary.run
138
+ end
139
+
140
+ def run_tests
141
+ report 'Running Unity system tests...'
142
+
143
+ # Tack on TEST define for compiling unit tests
144
+ load_configuration($cfg_file)
145
+ test_defines = ['TEST']
146
+ $cfg['compiler']['defines']['items'] = [] if $cfg['compiler']['defines']['items'].nil?
147
+
148
+ # Get a list of all source files needed
149
+ src_files = Dir[HERE+'src/*.c']
150
+ src_files += Dir[HERE+'test/*.c']
151
+ src_files << '../../src/Unity.c'
152
+
153
+ # Build object files
154
+ src_files.each { |f| compile(f, test_defines) }
155
+ obj_list = src_files.map {|f| File.basename(f.ext($cfg['compiler']['object_files']['extension'])) }
156
+
157
+ # Link the test executable
158
+ test_base = "framework_test"
159
+ link(test_base, obj_list)
160
+
161
+ # Execute unit test and generate results file
162
+ simulator = build_simulator_fields
163
+ executable = $cfg['linker']['bin_files']['destination'] + test_base + $cfg['linker']['bin_files']['extension']
164
+ if simulator.nil?
165
+ cmd_str = executable + " -v -r"
166
+ else
167
+ cmd_str = "#{simulator[:command]} #{simulator[:pre_support]} #{executable} #{simulator[:post_support]}"
168
+ end
169
+ output = execute(cmd_str)
170
+ test_results = $cfg['compiler']['build_path'] + test_base
171
+ if output.match(/OK$/m).nil?
172
+ test_results += '.testfail'
173
+ else
174
+ test_results += '.testpass'
175
+ end
176
+ File.open(test_results, 'w') { |f| f.print output }
177
+ end
178
+ end
@@ -0,0 +1,9 @@
1
+ Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
+
3
+ Unity Project - A Test Framework for C
4
+ Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
+ [Released under MIT License. Please refer to license.txt for details]
6
+
7
+ This Framework is an optional add-on to Unity. By including unity_framework.h in place of unity.h,
8
+ you may now work with Unity in a manner similar to CppUTest. This framework adds the concepts of
9
+ test groups and gives finer control of your tests over the command line.
@@ -0,0 +1,381 @@
1
+ //- Copyright (c) 2010 James Grenning and Contributed to Unity Project
2
+ /* ==========================================
3
+ Unity Project - A Test Framework for C
4
+ Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5
+ [Released under MIT License. Please refer to license.txt for details]
6
+ ========================================== */
7
+
8
+ #include "unity_fixture.h"
9
+ #include "unity_internals.h"
10
+ #include <string.h>
11
+
12
+ UNITY_FIXTURE_T UnityFixture;
13
+
14
+ //If you decide to use the function pointer approach.
15
+ int (*outputChar)(int) = putchar;
16
+
17
+ int verbose = 0;
18
+
19
+ void setUp(void) { /*does nothing*/ }
20
+ void tearDown(void) { /*does nothing*/ }
21
+
22
+ void announceTestRun(unsigned int runNumber)
23
+ {
24
+ UnityPrint("Unity test run ");
25
+ UnityPrintNumber(runNumber+1);
26
+ UnityPrint(" of ");
27
+ UnityPrintNumber(UnityFixture.RepeatCount);
28
+ UNITY_OUTPUT_CHAR('\n');
29
+ }
30
+
31
+ int UnityMain(int argc, char* argv[], void (*runAllTests)())
32
+ {
33
+ int result = UnityGetCommandLineOptions(argc, argv);
34
+ unsigned int r;
35
+ if (result != 0)
36
+ return result;
37
+
38
+ for (r = 0; r < UnityFixture.RepeatCount; r++)
39
+ {
40
+ announceTestRun(r);
41
+ UnityBegin();
42
+ runAllTests();
43
+ UNITY_OUTPUT_CHAR('\n');
44
+ UnityEnd();
45
+ }
46
+
47
+ return UnityFailureCount();
48
+ }
49
+
50
+ static int selected(const char * filter, const char * name)
51
+ {
52
+ if (filter == 0)
53
+ return 1;
54
+ return strstr(name, filter) ? 1 : 0;
55
+ }
56
+
57
+ static int testSelected(const char* test)
58
+ {
59
+ return selected(UnityFixture.NameFilter, test);
60
+ }
61
+
62
+ static int groupSelected(const char* group)
63
+ {
64
+ return selected(UnityFixture.GroupFilter, group);
65
+ }
66
+
67
+ static void runTestCase()
68
+ {
69
+
70
+ }
71
+
72
+ void UnityTestRunner(unityfunction* setup,
73
+ unityfunction* testBody,
74
+ unityfunction* teardown,
75
+ const char * printableName,
76
+ const char * group,
77
+ const char * name,
78
+ const char * file, int line)
79
+ {
80
+ if (testSelected(name) && groupSelected(group))
81
+ {
82
+ Unity.CurrentTestFailed = 0;
83
+ Unity.TestFile = file;
84
+ Unity.CurrentTestName = printableName;
85
+ Unity.CurrentTestLineNumber = line;
86
+ if (!UnityFixture.Verbose)
87
+ UNITY_OUTPUT_CHAR('.');
88
+ else
89
+ UnityPrint(printableName);
90
+
91
+ Unity.NumberOfTests++;
92
+ UnityMalloc_StartTest();
93
+ UnityPointer_Init();
94
+
95
+ runTestCase();
96
+ if (TEST_PROTECT())
97
+ {
98
+ setup();
99
+ testBody();
100
+ }
101
+ if (TEST_PROTECT())
102
+ {
103
+ teardown();
104
+ }
105
+ if (TEST_PROTECT())
106
+ {
107
+ UnityPointer_UndoAllSets();
108
+ if (!Unity.CurrentTestFailed)
109
+ UnityMalloc_EndTest();
110
+ UnityConcludeFixtureTest();
111
+ }
112
+ else
113
+ {
114
+ //aborting - jwg - di i need these for the other TEST_PROTECTS?
115
+ }
116
+ }
117
+ }
118
+
119
+ void UnityIgnoreTest()
120
+ {
121
+ Unity.NumberOfTests++;
122
+ Unity.CurrentTestIgnored = 1;
123
+ UNITY_OUTPUT_CHAR('!');
124
+ }
125
+
126
+
127
+ //-------------------------------------------------
128
+ //Malloc and free stuff
129
+ //
130
+ #define MALLOC_DONT_FAIL -1
131
+ static int malloc_count;
132
+ static int malloc_fail_countdown = MALLOC_DONT_FAIL;
133
+
134
+ void UnityMalloc_StartTest()
135
+ {
136
+ malloc_count = 0;
137
+ malloc_fail_countdown = MALLOC_DONT_FAIL;
138
+ }
139
+
140
+ void UnityMalloc_EndTest()
141
+ {
142
+ malloc_fail_countdown = MALLOC_DONT_FAIL;
143
+ if (malloc_count != 0)
144
+ {
145
+ TEST_FAIL_MESSAGE("This test leaks!");
146
+ }
147
+ }
148
+
149
+ void UnityMalloc_MakeMallocFailAfterCount(int countdown)
150
+ {
151
+ malloc_fail_countdown = countdown;
152
+ }
153
+
154
+ #ifdef malloc
155
+ #undef malloc
156
+ #endif
157
+
158
+ #ifdef free
159
+ #undef free
160
+ #endif
161
+
162
+ #include <stdlib.h>
163
+ #include <string.h>
164
+
165
+ typedef struct GuardBytes
166
+ {
167
+ int size;
168
+ char guard[sizeof(int)];
169
+ } Guard;
170
+
171
+
172
+ static const char * end = "END";
173
+
174
+ void * unity_malloc(size_t size)
175
+ {
176
+ char* mem;
177
+ Guard* guard;
178
+
179
+ if (malloc_fail_countdown != MALLOC_DONT_FAIL)
180
+ {
181
+ if (malloc_fail_countdown == 0)
182
+ return 0;
183
+ malloc_fail_countdown--;
184
+ }
185
+
186
+ malloc_count++;
187
+
188
+ guard = (Guard*)malloc(size + sizeof(Guard) + 4);
189
+ guard->size = size;
190
+ mem = (char*)&(guard[1]);
191
+ memcpy(&mem[size], end, strlen(end) + 1);
192
+
193
+ return (void*)mem;
194
+ }
195
+
196
+ static int isOverrun(void * mem)
197
+ {
198
+ Guard* guard = (Guard*)mem;
199
+ char* memAsChar = (char*)mem;
200
+ guard--;
201
+
202
+ return strcmp(&memAsChar[guard->size], end) != 0;
203
+ }
204
+
205
+ static void release_memory(void * mem)
206
+ {
207
+ Guard* guard = (Guard*)mem;
208
+ guard--;
209
+
210
+ malloc_count--;
211
+ free(guard);
212
+ }
213
+
214
+ void unity_free(void * mem)
215
+ {
216
+ int overrun = isOverrun(mem);//strcmp(&memAsChar[guard->size], end) != 0;
217
+ release_memory(mem);
218
+ if (overrun)
219
+ {
220
+ TEST_FAIL_MESSAGE("Buffer overrun detected during free()");
221
+ }
222
+ }
223
+
224
+ void* unity_calloc(size_t num, size_t size)
225
+ {
226
+ void* mem = unity_malloc(num * size);
227
+ memset(mem, 0, num*size);
228
+ return mem;
229
+ }
230
+
231
+ void* unity_realloc(void * oldMem, size_t size)
232
+ {
233
+ Guard* guard = (Guard*)oldMem;
234
+ // char* memAsChar = (char*)oldMem;
235
+ void* newMem;
236
+
237
+ if (oldMem == 0)
238
+ return unity_malloc(size);
239
+
240
+ guard--;
241
+ if (isOverrun(oldMem))
242
+ {
243
+ release_memory(oldMem);
244
+ TEST_FAIL_MESSAGE("Buffer overrun detected during realloc()");
245
+ }
246
+
247
+ if (size == 0)
248
+ {
249
+ release_memory(oldMem);
250
+ return 0;
251
+ }
252
+
253
+ if (guard->size >= size)
254
+ return oldMem;
255
+
256
+ newMem = unity_malloc(size);
257
+ memcpy(newMem, oldMem, size);
258
+ unity_free(oldMem);
259
+ return newMem;
260
+ }
261
+
262
+
263
+ //--------------------------------------------------------
264
+ //Automatic pointer restoration functions
265
+ typedef struct _PointerPair
266
+ {
267
+ struct _PointerPair * next;
268
+ void ** pointer;
269
+ void * old_value;
270
+ } PointerPair;
271
+
272
+ enum {MAX_POINTERS=50};
273
+ static PointerPair pointer_store[MAX_POINTERS];
274
+ static int pointer_index = 0;
275
+
276
+ void UnityPointer_Init()
277
+ {
278
+ pointer_index = 0;
279
+ }
280
+
281
+ void UnityPointer_Set(void ** pointer, void * newValue)
282
+ {
283
+ if (pointer_index >= MAX_POINTERS)
284
+ TEST_FAIL_MESSAGE("Too many pointers set");
285
+
286
+ pointer_store[pointer_index].pointer = pointer;
287
+ pointer_store[pointer_index].old_value = *pointer;
288
+ *pointer = newValue;
289
+ pointer_index++;
290
+ }
291
+
292
+ void UnityPointer_UndoAllSets()
293
+ {
294
+ while (pointer_index > 0)
295
+ {
296
+ pointer_index--;
297
+ *(pointer_store[pointer_index].pointer) =
298
+ pointer_store[pointer_index].old_value;
299
+
300
+ }
301
+ }
302
+
303
+ int UnityFailureCount()
304
+ {
305
+ return Unity.TestFailures;
306
+ }
307
+
308
+ int UnityGetCommandLineOptions(int argc, char* argv[])
309
+ {
310
+ int i;
311
+ UnityFixture.Verbose = 0;
312
+ UnityFixture.GroupFilter = 0;
313
+ UnityFixture.NameFilter = 0;
314
+ UnityFixture.RepeatCount = 1;
315
+
316
+ if (argc == 1)
317
+ return 0;
318
+
319
+ for (i = 1; i < argc; )
320
+ {
321
+ if (strcmp(argv[i], "-v") == 0)
322
+ {
323
+ UnityFixture.Verbose = 1;
324
+ i++;
325
+ }
326
+ else if (strcmp(argv[i], "-g") == 0)
327
+ {
328
+ i++;
329
+ if (i >= argc)
330
+ return 1;
331
+ UnityFixture.GroupFilter = argv[i];
332
+ i++;
333
+ }
334
+ else if (strcmp(argv[i], "-n") == 0)
335
+ {
336
+ i++;
337
+ if (i >= argc)
338
+ return 1;
339
+ UnityFixture.NameFilter = argv[i];
340
+ i++;
341
+ }
342
+ else if (strcmp(argv[i], "-r") == 0)
343
+ {
344
+ UnityFixture.RepeatCount = 2;
345
+ i++;
346
+ if (i < argc)
347
+ {
348
+ if (*(argv[i]) >= '0' && *(argv[i]) <= '9')
349
+ {
350
+ UnityFixture.RepeatCount = atoi(argv[i]);
351
+ i++;
352
+ }
353
+ }
354
+ }
355
+ }
356
+ return 0;
357
+ }
358
+
359
+ void UnityConcludeFixtureTest()
360
+ {
361
+ if (Unity.CurrentTestIgnored)
362
+ {
363
+ Unity.TestIgnores++;
364
+ }
365
+ else if (!Unity.CurrentTestFailed)
366
+ {
367
+ if (UnityFixture.Verbose)
368
+ {
369
+ UnityPrint(" PASS");
370
+ UNITY_OUTPUT_CHAR('\n');
371
+ }
372
+ }
373
+ else if (Unity.CurrentTestFailed)
374
+ {
375
+ Unity.TestFailures++;
376
+ }
377
+
378
+ Unity.CurrentTestFailed = 0;
379
+ Unity.CurrentTestIgnored = 0;
380
+ }
381
+