ceedling 0.19.0 → 0.20.2

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 (426) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +10 -10
  3. data/bin/ceedling +205 -92
  4. data/ceedling-0.19.0.gem +0 -0
  5. data/config/test_environment.rb +12 -12
  6. data/docs/CeedlingPacket.md +866 -853
  7. data/docs/CeedlingPacket.odt +0 -0
  8. data/docs/CeedlingPacket.pdf +0 -0
  9. data/examples/temp_sensor/rakefile.rb +4 -4
  10. data/examples/temp_sensor/src/AdcConductor.c +42 -42
  11. data/examples/temp_sensor/src/AdcConductor.h +13 -13
  12. data/examples/temp_sensor/src/AdcHardware.c +27 -27
  13. data/examples/temp_sensor/src/AdcHardware.h +11 -11
  14. data/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -18
  15. data/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -10
  16. data/examples/temp_sensor/src/AdcModel.c +33 -33
  17. data/examples/temp_sensor/src/AdcModel.h +13 -13
  18. data/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -51
  19. data/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -10
  20. data/examples/temp_sensor/src/Executor.c +25 -25
  21. data/examples/temp_sensor/src/Executor.h +9 -9
  22. data/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -18
  23. data/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -7
  24. data/examples/temp_sensor/src/Main.c +46 -46
  25. data/examples/temp_sensor/src/Main.h +7 -7
  26. data/examples/temp_sensor/src/Model.c +10 -10
  27. data/examples/temp_sensor/src/Model.h +8 -8
  28. data/examples/temp_sensor/src/ModelConfig.h +7 -7
  29. data/examples/temp_sensor/src/TaskScheduler.c +72 -72
  30. data/examples/temp_sensor/src/TaskScheduler.h +11 -11
  31. data/examples/temp_sensor/src/TemperatureCalculator.c +27 -27
  32. data/examples/temp_sensor/src/TemperatureCalculator.h +8 -8
  33. data/examples/temp_sensor/src/TemperatureFilter.c +38 -38
  34. data/examples/temp_sensor/src/TemperatureFilter.h +10 -10
  35. data/examples/temp_sensor/src/TimerConductor.c +15 -15
  36. data/examples/temp_sensor/src/TimerConductor.h +9 -9
  37. data/examples/temp_sensor/src/TimerConfigurator.c +51 -51
  38. data/examples/temp_sensor/src/TimerConfigurator.h +15 -15
  39. data/examples/temp_sensor/src/TimerHardware.c +15 -15
  40. data/examples/temp_sensor/src/TimerHardware.h +8 -8
  41. data/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -55
  42. data/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -13
  43. data/examples/temp_sensor/src/TimerInterruptHandler.c +25 -25
  44. data/examples/temp_sensor/src/TimerInterruptHandler.h +10 -10
  45. data/examples/temp_sensor/src/TimerModel.c +9 -9
  46. data/examples/temp_sensor/src/TimerModel.h +8 -8
  47. data/examples/temp_sensor/src/Types.h +90 -90
  48. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -18
  49. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +8 -8
  50. data/examples/temp_sensor/src/UsartConductor.c +21 -21
  51. data/examples/temp_sensor/src/UsartConductor.h +7 -7
  52. data/examples/temp_sensor/src/UsartConfigurator.c +39 -39
  53. data/examples/temp_sensor/src/UsartConfigurator.h +13 -13
  54. data/examples/temp_sensor/src/UsartHardware.c +22 -22
  55. data/examples/temp_sensor/src/UsartHardware.h +9 -9
  56. data/examples/temp_sensor/src/UsartModel.c +34 -34
  57. data/examples/temp_sensor/src/UsartModel.h +10 -10
  58. data/examples/temp_sensor/src/UsartPutChar.c +16 -16
  59. data/examples/temp_sensor/src/UsartPutChar.h +8 -8
  60. data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -7
  61. data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -8
  62. data/examples/temp_sensor/test/TestAdcConductor.c +121 -121
  63. data/examples/temp_sensor/test/TestAdcHardware.c +44 -44
  64. data/examples/temp_sensor/test/TestAdcModel.c +33 -33
  65. data/examples/temp_sensor/test/TestExecutor.c +36 -36
  66. data/examples/temp_sensor/test/TestMain.c +24 -24
  67. data/examples/temp_sensor/test/TestModel.c +20 -20
  68. data/examples/temp_sensor/test/TestTaskScheduler.c +104 -104
  69. data/examples/temp_sensor/test/TestTemperatureCalculator.c +33 -33
  70. data/examples/temp_sensor/test/TestTemperatureFilter.c +79 -79
  71. data/examples/temp_sensor/test/TestTimerConductor.c +32 -32
  72. data/examples/temp_sensor/test/TestTimerHardware.c +26 -26
  73. data/examples/temp_sensor/test/TestTimerModel.c +18 -18
  74. data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -21
  75. data/examples/temp_sensor/test/TestUsartConductor.c +40 -40
  76. data/examples/temp_sensor/test/TestUsartHardware.c +36 -36
  77. data/examples/temp_sensor/test/TestUsartModel.c +36 -36
  78. data/examples/temp_sensor/test/support/UnityHelper.c +12 -12
  79. data/examples/temp_sensor/test/support/UnityHelper.h +12 -12
  80. data/lib/ceedling/configurator_builder.rb +1 -1
  81. data/lib/ceedling/tasks_base.rake +10 -2
  82. data/lib/ceedling/tool_executor.rb +3 -0
  83. data/lib/ceedling/version.rb +3 -3
  84. data/license.txt +1 -1
  85. data/plugins/bullseye/bullseye.rake +162 -162
  86. data/plugins/gcov/gcov.rake +152 -152
  87. data/plugins/module_generator/lib/module_generator.rb +145 -145
  88. data/plugins/module_generator/module_generator.rake +14 -14
  89. data/plugins/stdout_gtestlike_tests_report/assets/template.erb +84 -0
  90. data/plugins/stdout_gtestlike_tests_report/assets/template.erb copy +59 -0
  91. data/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml +4 -0
  92. data/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb +43 -0
  93. data/spec/system/deployment_spec.rb +0 -1
  94. data/test_graveyard/integration/paths_test.rb +80 -80
  95. data/test_graveyard/integration/rake_rules_aux_dependencies_test.rb +75 -75
  96. data/test_graveyard/integration/rake_rules_cmock_test.rb +74 -74
  97. data/test_graveyard/integration/rake_rules_preprocess_test.rb +178 -178
  98. data/test_graveyard/integration/rake_rules_test.rb +268 -268
  99. data/test_graveyard/integration/rake_tasks_test.rb +103 -103
  100. data/test_graveyard/integration_test_helper.rb +34 -34
  101. data/test_graveyard/rakefile_rules.rb +10 -10
  102. data/test_graveyard/rakefile_rules_aux_dependencies.rb +10 -10
  103. data/test_graveyard/rakefile_rules_cmock.rb +10 -10
  104. data/test_graveyard/rakefile_rules_preprocess.rb +10 -10
  105. data/test_graveyard/rakefile_tasks.rb +10 -10
  106. data/test_graveyard/system/file_system_test.rb +78 -78
  107. data/test_graveyard/system/project_mocks_test.rb +38 -38
  108. data/test_graveyard/system/project_simple_test.rb +39 -39
  109. data/test_graveyard/system/rule_mocks_test.rb +44 -44
  110. data/test_graveyard/system/rule_runners_test.rb +44 -44
  111. data/test_graveyard/system_test_helper.rb +73 -73
  112. data/test_graveyard/test_helper.rb +93 -93
  113. data/test_graveyard/unit/busted/configurator_builder_test.rb +569 -569
  114. data/test_graveyard/unit/busted/configurator_helper_test.rb +234 -234
  115. data/test_graveyard/unit/busted/configurator_test.rb +232 -232
  116. data/test_graveyard/unit/busted/configurator_validator_test.rb +169 -169
  117. data/test_graveyard/unit/busted/deep_merge_fix_test.rb +55 -55
  118. data/test_graveyard/unit/busted/dependinator_test.rb +129 -129
  119. data/test_graveyard/unit/busted/file_finder_helper_test.rb +45 -45
  120. data/test_graveyard/unit/busted/file_finder_test.rb +114 -114
  121. data/test_graveyard/unit/busted/file_path_utils_test.rb +97 -97
  122. data/test_graveyard/unit/busted/file_system_utils_test.rb +21 -21
  123. data/test_graveyard/unit/busted/generator_test.rb +187 -187
  124. data/test_graveyard/unit/busted/generator_test_results_test.rb +129 -129
  125. data/test_graveyard/unit/busted/generator_test_runner_test.rb +475 -475
  126. data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +39 -39
  127. data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +156 -156
  128. data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +93 -93
  129. data/test_graveyard/unit/busted/preprocessinator_test.rb +57 -57
  130. data/test_graveyard/unit/busted/project_file_loader_test.rb +142 -142
  131. data/test_graveyard/unit/busted/setupinator_test.rb +45 -45
  132. data/test_graveyard/unit/busted/streaminator_test.rb +49 -49
  133. data/test_graveyard/unit/busted/task_invoker_test.rb +69 -69
  134. data/test_graveyard/unit/busted/test_includes_extractor_test.rb +111 -111
  135. data/test_graveyard/unit/busted/test_invoker_helper_test.rb +62 -62
  136. data/test_graveyard/unit/busted/test_invoker_test.rb +47 -47
  137. data/test_graveyard/unit/busted/tool_executor_helper_test.rb +100 -100
  138. data/test_graveyard/unit/busted/tool_executor_test.rb +351 -351
  139. data/test_graveyard/unit/busted/verbosinator_test.rb +65 -65
  140. data/test_graveyard/unit/preprocessinator_extractor_test.rb +731 -731
  141. data/test_graveyard/unit_test_helper.rb +16 -16
  142. data/vendor/c_exception/LICENSE.txt +30 -30
  143. data/vendor/c_exception/README.md +11 -1
  144. data/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  145. data/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  146. data/vendor/c_exception/docs/readme.txt +261 -242
  147. data/vendor/c_exception/lib/CException.c +46 -46
  148. data/vendor/c_exception/lib/CException.h +110 -86
  149. data/vendor/c_exception/makefile +23 -23
  150. data/vendor/c_exception/test/CExceptionConfig.h +46 -46
  151. data/vendor/c_exception/test/TestException.c +391 -342
  152. data/vendor/c_exception/test/TestException_Runner.c +5 -12
  153. data/vendor/c_exception/vendor/unity/README.md +211 -0
  154. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +1 -1
  155. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +38 -38
  156. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -36
  157. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -202
  158. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +391 -320
  159. data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +2 -0
  160. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +260 -0
  161. data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +8 -0
  162. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +135 -0
  163. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +148 -139
  164. data/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  165. data/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  166. data/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +224 -216
  167. data/vendor/c_exception/vendor/unity/docs/license.txt +21 -31
  168. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +40 -15
  169. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -0
  170. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +32 -25
  171. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +29 -22
  172. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +40 -14
  173. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +2 -0
  174. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +2 -2
  175. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -1
  176. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +2 -0
  177. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -37
  178. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
  179. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +135 -94
  180. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +13 -17
  181. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -18
  182. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +30 -0
  183. data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +60 -0
  184. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +4 -3
  185. data/vendor/c_exception/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  186. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +182 -27
  187. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +13 -0
  188. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +8 -6
  189. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +2 -2
  190. data/vendor/c_exception/vendor/unity/release/build.info +1 -1
  191. data/vendor/c_exception/vendor/unity/release/version.info +1 -1
  192. data/vendor/c_exception/vendor/unity/src/unity.c +1333 -1145
  193. data/vendor/c_exception/vendor/unity/src/unity.h +290 -307
  194. data/vendor/c_exception/vendor/unity/src/unity_internals.h +758 -620
  195. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +7 -3
  196. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +7 -3
  197. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
  198. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
  199. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +4 -3
  200. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +4 -3
  201. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  202. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
  203. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -5
  204. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +4 -3
  205. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +4 -3
  206. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -5
  207. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +4 -3
  208. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -6
  209. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +9 -5
  210. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -3
  211. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +7 -3
  212. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +9 -5
  213. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -3
  214. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +10 -6
  215. data/vendor/c_exception/vendor/unity/{rakefile.rb → test/rakefile} +60 -61
  216. data/vendor/c_exception/vendor/unity/{rakefile_helper.rb → test/rakefile_helper.rb} +255 -249
  217. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +83 -0
  218. data/vendor/c_exception/vendor/unity/{targets → test/targets}/clang_strict.yml +83 -83
  219. data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
  220. data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
  221. data/vendor/c_exception/vendor/unity/{targets/gcc_64.yml → test/targets/gcc_auto_limits.yml} +46 -45
  222. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -0
  223. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -0
  224. data/vendor/{cmock/vendor/c_exception/vendor/unity/targets/gcc_64.yml → c_exception/vendor/unity/test/targets/gcc_manual_math.yml} +46 -45
  225. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/hitech_picc18.yml +101 -101
  226. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_arm_v4.yml +89 -89
  227. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_arm_v5.yml +79 -79
  228. data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_arm_v5_3.yml +79 -79
  229. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
  230. data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_cortexm3_v5.yml +83 -83
  231. data/vendor/{cmock/vendor/c_exception/vendor/unity → c_exception/vendor/unity/test}/targets/iar_msp430.yml +94 -94
  232. data/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_sh2a_v6.yml +85 -85
  233. data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -51
  234. data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +8 -8
  235. data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +68 -51
  236. data/vendor/{cmock/vendor/c_exception/vendor/unity/test → c_exception/vendor/unity/test/tests}/test_generate_test_runner.rb +102 -88
  237. data/vendor/{cmock/vendor/c_exception/vendor/unity/test → c_exception/vendor/unity/test/tests}/testparameterized.c +104 -101
  238. data/vendor/c_exception/vendor/unity/test/{testunity.c → tests/testunity.c} +3682 -3447
  239. data/vendor/cmock/docs/CMock_Summary.md +3 -0
  240. data/vendor/cmock/lib/cmock_config.rb +1 -0
  241. data/vendor/cmock/lib/cmock_file_writer.rb +7 -3
  242. data/vendor/cmock/lib/cmock_generator.rb +3 -2
  243. data/vendor/cmock/lib/cmock_header_parser.rb +12 -5
  244. data/vendor/cmock/release/version.info +1 -1
  245. data/vendor/cmock/test/system/test_compilation/parsing.h +3 -0
  246. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +7 -0
  247. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +57 -1
  248. data/vendor/cmock/vendor/c_exception/LICENSE.txt +30 -30
  249. data/vendor/cmock/vendor/c_exception/README.md +11 -1
  250. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  251. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  252. data/vendor/cmock/vendor/c_exception/docs/readme.txt +261 -242
  253. data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -46
  254. data/vendor/cmock/vendor/c_exception/lib/CException.h +110 -86
  255. data/vendor/cmock/vendor/c_exception/makefile +23 -23
  256. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +46 -46
  257. data/vendor/cmock/vendor/c_exception/test/TestException.c +391 -342
  258. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +5 -12
  259. data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +211 -0
  260. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +1 -1
  261. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +38 -38
  262. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -36
  263. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -202
  264. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +391 -320
  265. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parseOutput.rb +2 -0
  266. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +260 -0
  267. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +8 -0
  268. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +135 -0
  269. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +148 -139
  270. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  271. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  272. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +224 -216
  273. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +21 -31
  274. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +40 -15
  275. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -0
  276. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +32 -25
  277. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +29 -22
  278. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +40 -14
  279. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +2 -0
  280. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +2 -2
  281. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +0 -1
  282. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +2 -0
  283. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -37
  284. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
  285. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +135 -94
  286. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +13 -17
  287. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -18
  288. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +30 -0
  289. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +60 -0
  290. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +4 -3
  291. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  292. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +182 -27
  293. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +13 -0
  294. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +8 -6
  295. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +2 -2
  296. data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +1 -1
  297. data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +1 -1
  298. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +1333 -1145
  299. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +290 -307
  300. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +758 -620
  301. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +7 -3
  302. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +7 -3
  303. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
  304. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
  305. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +4 -3
  306. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +4 -3
  307. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  308. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
  309. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -5
  310. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +4 -3
  311. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +4 -3
  312. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -5
  313. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +4 -3
  314. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -6
  315. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +9 -5
  316. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -3
  317. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +7 -3
  318. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +9 -5
  319. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -3
  320. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +10 -6
  321. data/vendor/cmock/vendor/c_exception/vendor/unity/{rakefile.rb → test/rakefile} +60 -61
  322. data/vendor/cmock/vendor/c_exception/vendor/unity/{rakefile_helper.rb → test/rakefile_helper.rb} +255 -249
  323. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +83 -0
  324. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/clang_strict.yml +83 -83
  325. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
  326. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
  327. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets/gcc_32.yml → test/targets/gcc_auto_limits.yml} +46 -44
  328. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -0
  329. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -0
  330. data/vendor/{c_exception/vendor/unity/targets/gcc_32.yml → cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml} +46 -44
  331. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/hitech_picc18.yml +101 -101
  332. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_arm_v4.yml +89 -89
  333. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_arm_v5.yml +79 -79
  334. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_arm_v5_3.yml +79 -79
  335. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
  336. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_cortexm3_v5.yml +83 -83
  337. data/vendor/{c_exception/vendor/unity → cmock/vendor/c_exception/vendor/unity/test}/targets/iar_msp430.yml +94 -94
  338. data/vendor/cmock/vendor/c_exception/vendor/unity/{targets → test/targets}/iar_sh2a_v6.yml +85 -85
  339. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -51
  340. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +8 -8
  341. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +68 -51
  342. data/vendor/{c_exception/vendor/unity/test → cmock/vendor/c_exception/vendor/unity/test/tests}/test_generate_test_runner.rb +102 -88
  343. data/vendor/{c_exception/vendor/unity/test → cmock/vendor/c_exception/vendor/unity/test/tests}/testparameterized.c +104 -101
  344. data/vendor/cmock/vendor/c_exception/vendor/unity/test/{testunity.c → tests/testunity.c} +3682 -3447
  345. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +30 -13
  346. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +260 -0
  347. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +96 -93
  348. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
  349. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -19
  350. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +18 -17
  351. data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +66 -5
  352. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +2 -1
  353. data/vendor/cmock/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  354. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +187 -27
  355. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +14 -0
  356. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +6 -5
  357. data/vendor/cmock/vendor/unity/release/version.info +1 -1
  358. data/vendor/cmock/vendor/unity/src/unity.c +38 -27
  359. data/vendor/cmock/vendor/unity/src/unity.h +5 -0
  360. data/vendor/cmock/vendor/unity/src/unity_internals.h +22 -18
  361. data/vendor/cmock/vendor/unity/test/Makefile +52 -0
  362. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +4 -0
  363. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +4 -0
  364. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +4 -0
  365. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +7 -4
  366. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +6 -4
  367. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +4 -0
  368. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +4 -0
  369. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +4 -0
  370. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +4 -0
  371. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +4 -0
  372. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +4 -0
  373. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -1
  374. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -1
  375. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +0 -1
  376. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -1
  377. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -1
  378. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +0 -1
  379. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +0 -1
  380. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -1
  381. data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +0 -1
  382. data/vendor/cmock/vendor/unity/test/testdata/testsample.c +19 -2
  383. data/vendor/cmock/vendor/unity/test/tests/testunity.c +55 -4
  384. data/vendor/unity/auto/generate_test_runner.rb +4 -2
  385. data/vendor/unity/auto/stylize_as_junit.rb +260 -0
  386. data/vendor/unity/extras/fixture/src/unity_fixture.c +24 -41
  387. data/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
  388. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +5 -7
  389. data/vendor/unity/extras/fixture/test/Makefile +53 -8
  390. data/vendor/unity/extras/fixture/test/{testunity_fixture.c → template_fixture_tests.c} +0 -0
  391. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +129 -32
  392. data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +6 -0
  393. data/vendor/unity/extras/fixture/test/unity_output_Spy.c +4 -4
  394. data/vendor/unity/release/version.info +1 -1
  395. data/vendor/unity/src/unity.c +32 -21
  396. data/vendor/unity/src/unity.h +5 -0
  397. data/vendor/unity/src/unity_internals.h +7 -3
  398. data/vendor/unity/test/Makefile +52 -0
  399. data/vendor/unity/test/expectdata/testsample_cmd.c +4 -0
  400. data/vendor/unity/test/expectdata/testsample_def.c +4 -0
  401. data/vendor/unity/test/expectdata/testsample_head1.c +4 -0
  402. data/vendor/unity/test/expectdata/testsample_head1.h +7 -4
  403. data/vendor/unity/test/expectdata/testsample_mock_head1.h +6 -4
  404. data/vendor/unity/test/expectdata/testsample_new1.c +4 -0
  405. data/vendor/unity/test/expectdata/testsample_new2.c +4 -0
  406. data/vendor/unity/test/expectdata/testsample_param.c +4 -0
  407. data/vendor/unity/test/expectdata/testsample_run1.c +4 -0
  408. data/vendor/unity/test/expectdata/testsample_run2.c +4 -0
  409. data/vendor/unity/test/expectdata/testsample_yaml.c +4 -0
  410. data/vendor/unity/test/testdata/testsample.c +19 -2
  411. data/vendor/unity/test/tests/testunity.c +35 -4
  412. metadata +75 -52
  413. data/ceedling-0.18.0.gem +0 -0
  414. data/docs/CeedlingLogo.png +0 -0
  415. data/vendor/c_exception/vendor/unity/Gemfile +0 -4
  416. data/vendor/c_exception/vendor/unity/Gemfile.lock +0 -12
  417. data/vendor/c_exception/vendor/unity/examples/example_3/makefile +0 -41
  418. data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +0 -46
  419. data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +0 -50
  420. data/vendor/c_exception/vendor/unity/makefile +0 -37
  421. data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile +0 -4
  422. data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile.lock +0 -12
  423. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/makefile +0 -41
  424. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +0 -46
  425. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +0 -50
  426. data/vendor/cmock/vendor/c_exception/vendor/unity/makefile +0 -37
@@ -8,37 +8,31 @@
8
8
  #ifndef UNITY_FIXTURE_INTERNALS_H_
9
9
  #define UNITY_FIXTURE_INTERNALS_H_
10
10
 
11
- typedef struct _UNITY_FIXTURE_T
11
+ struct _UnityFixture
12
12
  {
13
13
  int Verbose;
14
14
  unsigned int RepeatCount;
15
15
  const char* NameFilter;
16
16
  const char* GroupFilter;
17
- } UNITY_FIXTURE_T;
17
+ };
18
18
 
19
19
  typedef void unityfunction(void);
20
- void UnityTestRunner(unityfunction * setup,
21
- unityfunction * body,
22
- unityfunction * teardown,
23
- const char * printableName,
24
- const char * group,
25
- const char * name,
26
- const char * file, int line);
20
+ void UnityTestRunner(unityfunction* setup,
21
+ unityfunction* body,
22
+ unityfunction* teardown,
23
+ const char* printableName,
24
+ const char* group,
25
+ const char* name,
26
+ const char* file, unsigned int line);
27
27
 
28
- void UnityIgnoreTest(const char * printableName);
28
+ void UnityIgnoreTest(const char* printableName, const char* group, const char* name);
29
29
  void UnityMalloc_StartTest(void);
30
30
  void UnityMalloc_EndTest(void);
31
- int UnityFailureCount(void);
32
- int UnityGetCommandLineOptions(int argc, char* argv[]);
31
+ int UnityGetCommandLineOptions(int argc, const char* argv[]);
33
32
  void UnityConcludeFixtureTest(void);
34
33
 
35
- void UnityPointer_Set(void ** ptr, void * newValue);
34
+ void UnityPointer_Set(void** ptr, void* newValue, UNITY_LINE_TYPE line);
36
35
  void UnityPointer_UndoAllSets(void);
37
36
  void UnityPointer_Init(void);
38
37
 
39
- void UnityAssertEqualPointer(const void * expected,
40
- const void * actual,
41
- const char* msg,
42
- const UNITY_LINE_TYPE lineNumber);
43
-
44
38
  #endif /* UNITY_FIXTURE_INTERNALS_H_ */
@@ -8,9 +8,39 @@
8
8
  #ifndef UNITY_FIXTURE_MALLOC_OVERRIDES_H_
9
9
  #define UNITY_FIXTURE_MALLOC_OVERRIDES_H_
10
10
 
11
+ #include <stddef.h>
12
+
13
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
14
+ // Define this macro to remove the use of stdlib.h, malloc, and free.
15
+ // Many embedded systems do not have a heap or malloc/free by default.
16
+ // This internal unity_malloc() provides allocated memory deterministically from
17
+ // the end of an array only, unity_free() only releases from end-of-array,
18
+ // blocks are not coalesced, and memory not freed in LIFO order is stranded.
19
+ #ifndef UNITY_INTERNAL_HEAP_SIZE_BYTES
20
+ #define UNITY_INTERNAL_HEAP_SIZE_BYTES 256
21
+ #endif
22
+ #endif
23
+
24
+ // These functions are used by the Unity Fixture to allocate and release memory
25
+ // on the heap and can be overridden with platform-specific implementations.
26
+ // For example, when using FreeRTOS UNITY_FIXTURE_MALLOC becomes pvPortMalloc()
27
+ // and UNITY_FIXTURE_FREE becomes vPortFree().
28
+ #if !defined(UNITY_FIXTURE_MALLOC) || !defined(UNITY_FIXTURE_FREE)
29
+ #define UNITY_FIXTURE_MALLOC(size) malloc(size)
30
+ #define UNITY_FIXTURE_FREE(ptr) free(ptr)
31
+ #else
32
+ extern void* UNITY_FIXTURE_MALLOC(size_t size);
33
+ extern void UNITY_FIXTURE_FREE(void* ptr);
34
+ #endif
35
+
11
36
  #define malloc unity_malloc
12
37
  #define calloc unity_calloc
13
38
  #define realloc unity_realloc
14
39
  #define free unity_free
15
40
 
41
+ void* unity_malloc(size_t size);
42
+ void* unity_calloc(size_t num, size_t size);
43
+ void* unity_realloc(void * oldMem, size_t size);
44
+ void unity_free(void * mem);
45
+
16
46
  #endif /* UNITY_FIXTURE_MALLOC_OVERRIDES_H_ */
@@ -0,0 +1,60 @@
1
+ CC = gcc
2
+ #DEBUG = -O0 -g
3
+ CFLAGS += -std=c99
4
+ CFLAGS += -pedantic
5
+ CFLAGS += -Wall
6
+ CFLAGS += -Wextra
7
+ CFLAGS += -Werror
8
+ CFLAGS += $(DEBUG)
9
+ DEFINES = -D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar
10
+ SRC = ../src/unity_fixture.c \
11
+ ../../../src/unity.c \
12
+ unity_fixture_Test.c \
13
+ unity_fixture_TestRunner.c \
14
+ unity_output_Spy.c \
15
+ main/AllTests.c
16
+
17
+ INC_DIR = -I../src -I../../../src/
18
+ TARGET = ../build/fixture_tests.exe
19
+
20
+ all: default noStdlibMalloc 32bits
21
+
22
+ default: ../build/
23
+ $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET)
24
+ @ echo "default build"
25
+ ./$(TARGET)
26
+
27
+ 32bits: ../build/
28
+ $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m32
29
+ @ echo "32bits build"
30
+ ./$(TARGET)
31
+
32
+ noStdlibMalloc: ../build/
33
+ $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_EXCLUDE_STDLIB_MALLOC
34
+ @ echo "build with noStdlibMalloc"
35
+ ./$(TARGET)
36
+
37
+ clangEverything:
38
+ clang $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m64 -Weverything
39
+
40
+ ../build :
41
+ mkdir -p ../build
42
+
43
+ clean:
44
+ rm -f $(TARGET)
45
+
46
+ # These extended flags DO get included before any target build runs
47
+ CFLAGS += -Wbad-function-cast
48
+ CFLAGS += -Wcast-qual
49
+ CFLAGS += -Wconversion
50
+ CFLAGS += -Wformat=2
51
+ CFLAGS += -Wmissing-prototypes
52
+ CFLAGS += -Wold-style-definition
53
+ CFLAGS += -Wpointer-arith
54
+ CFLAGS += -Wshadow
55
+ CFLAGS += -Wstrict-overflow=5
56
+ CFLAGS += -Wstrict-prototypes
57
+ CFLAGS += -Wswitch-default
58
+ CFLAGS += -Wundef
59
+ CFLAGS += -Wunused
60
+ CFLAGS += -fstrict-aliasing
@@ -7,14 +7,15 @@
7
7
 
8
8
  #include "unity_fixture.h"
9
9
 
10
- static void runAllTests()
10
+ static void runAllTests(void)
11
11
  {
12
12
  RUN_TEST_GROUP(UnityFixture);
13
13
  RUN_TEST_GROUP(UnityCommandOptions);
14
- RUN_TEST_GROUP(LeakDetection)
14
+ RUN_TEST_GROUP(LeakDetection);
15
+ RUN_TEST_GROUP(InternalMalloc);
15
16
  }
16
17
 
17
- int main(int argc, char* argv[])
18
+ int main(int argc, const char* argv[])
18
19
  {
19
20
  return UnityMain(argc, argv, runAllTests);
20
21
  }
@@ -10,7 +10,7 @@
10
10
  #include <stdlib.h>
11
11
  #include <string.h>
12
12
 
13
- extern UNITY_FIXTURE_T UnityFixture;
13
+ extern struct _UnityFixture UnityFixture;
14
14
 
15
15
  TEST_GROUP(UnityFixture);
16
16
 
@@ -22,14 +22,13 @@ TEST_TEAR_DOWN(UnityFixture)
22
22
  {
23
23
  }
24
24
 
25
- int my_int;
26
- int* pointer1 = 0;
27
- int* pointer2 = (int*)2;
28
- int* pointer3 = (int*)3;
29
- int int1;
30
- int int2;
31
- int int3;
32
- int int4;
25
+ static int* pointer1 = 0;
26
+ static int* pointer2 = (int*)2;
27
+ static int* pointer3 = (int*)3;
28
+ static int int1;
29
+ static int int2;
30
+ static int int3;
31
+ static int int4;
33
32
 
34
33
  TEST(UnityFixture, PointerSetting)
35
34
  {
@@ -79,9 +78,10 @@ TEST(UnityFixture, ReallocLargerNeeded)
79
78
  {
80
79
  void* m1 = malloc(10);
81
80
  void* m2;
81
+ CHECK(m1);
82
82
  strcpy((char*)m1, "123456789");
83
83
  m2 = realloc(m1, 15);
84
- CHECK(m1 != m2);
84
+ // CHECK(m1 != m2); //Depends on implementation
85
85
  STRCMP_EQUAL("123456789", m2);
86
86
  free(m2);
87
87
  }
@@ -104,14 +104,15 @@ TEST(UnityFixture, CallocFillsWithZero)
104
104
  {
105
105
  void* m = calloc(3, sizeof(char));
106
106
  char* s = (char*)m;
107
+ CHECK(m);
107
108
  TEST_ASSERT_BYTES_EQUAL(0, s[0]);
108
109
  TEST_ASSERT_BYTES_EQUAL(0, s[1]);
109
110
  TEST_ASSERT_BYTES_EQUAL(0, s[2]);
110
111
  free(m);
111
112
  }
112
113
 
113
- char *p1;
114
- char *p2;
114
+ static char *p1;
115
+ static char *p2;
115
116
 
116
117
  TEST(UnityFixture, PointerSet)
117
118
  {
@@ -122,7 +123,7 @@ TEST(UnityFixture, PointerSet)
122
123
  p1 = &c1;
123
124
  p2 = &c2;
124
125
 
125
- UnityPointer_Init(10);
126
+ UnityPointer_Init();
126
127
  UT_PTR_SET(p1, &newC1);
127
128
  UT_PTR_SET(p2, &newC2);
128
129
  TEST_ASSERT_POINTERS_EQUAL(&newC1, p1);
@@ -132,14 +133,19 @@ TEST(UnityFixture, PointerSet)
132
133
  TEST_ASSERT_POINTERS_EQUAL(&c2, p2);
133
134
  }
134
135
 
136
+ TEST(UnityFixture, FreeNULLSafety)
137
+ {
138
+ free(NULL);
139
+ }
140
+
135
141
  //------------------------------------------------------------
136
142
 
137
143
  TEST_GROUP(UnityCommandOptions);
138
144
 
139
- int savedVerbose;
140
- int savedRepeat;
141
- const char* savedName;
142
- const char* savedGroup;
145
+ static int savedVerbose;
146
+ static unsigned int savedRepeat;
147
+ static const char* savedName;
148
+ static const char* savedGroup;
143
149
 
144
150
  TEST_SETUP(UnityCommandOptions)
145
151
  {
@@ -158,7 +164,7 @@ TEST_TEAR_DOWN(UnityCommandOptions)
158
164
  }
159
165
 
160
166
 
161
- static char* noOptions[] = {
167
+ static const char* noOptions[] = {
162
168
  "testrunner.exe"
163
169
  };
164
170
 
@@ -171,7 +177,7 @@ TEST(UnityCommandOptions, DefaultOptions)
171
177
  TEST_ASSERT_EQUAL(1, UnityFixture.RepeatCount);
172
178
  }
173
179
 
174
- static char* verbose[] = {
180
+ static const char* verbose[] = {
175
181
  "testrunner.exe",
176
182
  "-v"
177
183
  };
@@ -182,7 +188,7 @@ TEST(UnityCommandOptions, OptionVerbose)
182
188
  TEST_ASSERT_EQUAL(1, UnityFixture.Verbose);
183
189
  }
184
190
 
185
- static char* group[] = {
191
+ static const char* group[] = {
186
192
  "testrunner.exe",
187
193
  "-g", "groupname"
188
194
  };
@@ -193,7 +199,7 @@ TEST(UnityCommandOptions, OptionSelectTestByGroup)
193
199
  STRCMP_EQUAL("groupname", UnityFixture.GroupFilter);
194
200
  }
195
201
 
196
- static char* name[] = {
202
+ static const char* name[] = {
197
203
  "testrunner.exe",
198
204
  "-n", "testname"
199
205
  };
@@ -204,7 +210,7 @@ TEST(UnityCommandOptions, OptionSelectTestByName)
204
210
  STRCMP_EQUAL("testname", UnityFixture.NameFilter);
205
211
  }
206
212
 
207
- static char* repeat[] = {
213
+ static const char* repeat[] = {
208
214
  "testrunner.exe",
209
215
  "-r", "99"
210
216
  };
@@ -221,7 +227,7 @@ TEST(UnityCommandOptions, OptionSelectRepeatTestsSpecificCount)
221
227
  TEST_ASSERT_EQUAL(99, UnityFixture.RepeatCount);
222
228
  }
223
229
 
224
- static char* multiple[] = {
230
+ static const char* multiple[] = {
225
231
  "testrunner.exe",
226
232
  "-v",
227
233
  "-g", "groupname",
@@ -238,7 +244,7 @@ TEST(UnityCommandOptions, MultipleOptions)
238
244
  TEST_ASSERT_EQUAL(98, UnityFixture.RepeatCount);
239
245
  }
240
246
 
241
- static char* dashRNotLast[] = {
247
+ static const char* dashRNotLast[] = {
242
248
  "testrunner.exe",
243
249
  "-v",
244
250
  "-g", "gggg",
@@ -255,7 +261,7 @@ TEST(UnityCommandOptions, MultipleOptionsDashRNotLastAndNoValueSpecified)
255
261
  TEST_ASSERT_EQUAL(2, UnityFixture.RepeatCount);
256
262
  }
257
263
 
258
- static char* unknownCommand[] = {
264
+ static const char* unknownCommand[] = {
259
265
  "testrunner.exe",
260
266
  "-v",
261
267
  "-g", "groupname",
@@ -272,6 +278,10 @@ TEST(UnityCommandOptions, UnknownCommandIsIgnored)
272
278
  TEST_ASSERT_EQUAL(98, UnityFixture.RepeatCount);
273
279
  }
274
280
 
281
+ IGNORE_TEST(UnityCommandOptions, TestShouldBeIgnored)
282
+ {
283
+ TEST_FAIL_MESSAGE("This test should not run!");
284
+ }
275
285
 
276
286
  //------------------------------------------------------------
277
287
 
@@ -279,7 +289,11 @@ TEST_GROUP(LeakDetection);
279
289
 
280
290
  TEST_SETUP(LeakDetection)
281
291
  {
292
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
293
+ UnityOutputCharSpy_Create(200);
294
+ #else
282
295
  UnityOutputCharSpy_Create(1000);
296
+ #endif
283
297
  }
284
298
 
285
299
  TEST_TEAR_DOWN(LeakDetection)
@@ -299,22 +313,41 @@ TEST_TEAR_DOWN(LeakDetection)
299
313
  memcpy(Unity.AbortFrame, TestAbortFrame, sizeof(jmp_buf)); \
300
314
  }
301
315
 
316
+ // This tricky set of defines lets us see if we are using the Spy, returns 1 if true
317
+ #define USING_SPY_AS(a) EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0)
318
+ #define ASSIGN_VALUE(a) VAL_##a
319
+ #define VAL_UnityOutputCharSpy_OutputChar 0, 1
320
+ #define EXPAND_AND_USE_2ND(a, b) SECOND_PARAM(a, b, throwaway)
321
+ #define SECOND_PARAM(a, b, ...) b
322
+ #if USING_SPY_AS(UNITY_OUTPUT_CHAR)
323
+ #define USING_OUTPUT_SPY // UNITY_OUTPUT_CHAR = UnityOutputCharSpy_OutputChar
324
+ #endif
302
325
  TEST(LeakDetection, DetectsLeak)
303
326
  {
327
+ #ifndef USING_OUTPUT_SPY
328
+ TEST_IGNORE_MESSAGE("Build with '-D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar' to enable tests");
329
+ #else
304
330
  void* m = malloc(10);
331
+ TEST_ASSERT_NOT_NULL(m);
305
332
  UnityOutputCharSpy_Enable(1);
306
333
  EXPECT_ABORT_BEGIN
307
334
  UnityMalloc_EndTest();
308
335
  EXPECT_ABORT_END
309
336
  UnityOutputCharSpy_Enable(0);
337
+ Unity.CurrentTestFailed = 0;
310
338
  CHECK(strstr(UnityOutputCharSpy_Get(), "This test leaks!"));
311
339
  free(m);
312
- Unity.CurrentTestFailed = 0;
340
+ #endif
313
341
  }
314
342
 
315
343
  TEST(LeakDetection, BufferOverrunFoundDuringFree)
316
344
  {
345
+ #ifndef USING_OUTPUT_SPY
346
+ UNITY_PRINT_EOL();
347
+ TEST_IGNORE();
348
+ #else
317
349
  void* m = malloc(10);
350
+ TEST_ASSERT_NOT_NULL(m);
318
351
  char* s = (char*)m;
319
352
  s[10] = (char)0xFF;
320
353
  UnityOutputCharSpy_Enable(1);
@@ -322,13 +355,19 @@ TEST(LeakDetection, BufferOverrunFoundDuringFree)
322
355
  free(m);
323
356
  EXPECT_ABORT_END
324
357
  UnityOutputCharSpy_Enable(0);
325
- CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during free()"));
326
358
  Unity.CurrentTestFailed = 0;
359
+ CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during free()"));
360
+ #endif
327
361
  }
328
362
 
329
363
  TEST(LeakDetection, BufferOverrunFoundDuringRealloc)
330
364
  {
365
+ #ifndef USING_OUTPUT_SPY
366
+ UNITY_PRINT_EOL();
367
+ TEST_IGNORE();
368
+ #else
331
369
  void* m = malloc(10);
370
+ TEST_ASSERT_NOT_NULL(m);
332
371
  char* s = (char*)m;
333
372
  s[10] = (char)0xFF;
334
373
  UnityOutputCharSpy_Enable(1);
@@ -336,6 +375,122 @@ TEST(LeakDetection, BufferOverrunFoundDuringRealloc)
336
375
  m = realloc(m, 100);
337
376
  EXPECT_ABORT_END
338
377
  UnityOutputCharSpy_Enable(0);
378
+ Unity.CurrentTestFailed = 0;
379
+ CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during realloc()"));
380
+ #endif
381
+ }
382
+
383
+ TEST(LeakDetection, BufferGuardWriteFoundDuringFree)
384
+ {
385
+ #ifndef USING_OUTPUT_SPY
386
+ UNITY_PRINT_EOL();
387
+ TEST_IGNORE();
388
+ #else
389
+ void* m = malloc(10);
390
+ TEST_ASSERT_NOT_NULL(m);
391
+ char* s = (char*)m;
392
+ s[-1] = (char)0x00; // Will not detect 0
393
+ s[-2] = (char)0x01;
394
+ UnityOutputCharSpy_Enable(1);
395
+ EXPECT_ABORT_BEGIN
396
+ free(m);
397
+ EXPECT_ABORT_END
398
+ UnityOutputCharSpy_Enable(0);
399
+ Unity.CurrentTestFailed = 0;
400
+ CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during free()"));
401
+ #endif
402
+ }
403
+
404
+ TEST(LeakDetection, BufferGuardWriteFoundDuringRealloc)
405
+ {
406
+ #ifndef USING_OUTPUT_SPY
407
+ UNITY_PRINT_EOL();
408
+ TEST_IGNORE();
409
+ #else
410
+ void* m = malloc(10);
411
+ TEST_ASSERT_NOT_NULL(m);
412
+ char* s = (char*)m;
413
+ s[-1] = (char)0x0A;
414
+ UnityOutputCharSpy_Enable(1);
415
+ EXPECT_ABORT_BEGIN
416
+ m = realloc(m, 100);
417
+ EXPECT_ABORT_END
418
+ UnityOutputCharSpy_Enable(0);
419
+ Unity.CurrentTestFailed = 0;
339
420
  CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during realloc()"));
421
+ #endif
422
+ }
423
+
424
+ TEST(LeakDetection, PointerSettingMax)
425
+ {
426
+ #ifndef USING_OUTPUT_SPY
427
+ UNITY_PRINT_EOL();
428
+ TEST_IGNORE();
429
+ #else
430
+ int i;
431
+ for (i = 0; i < 50; i++) UT_PTR_SET(pointer1, &int1);
432
+ UnityOutputCharSpy_Enable(1);
433
+ EXPECT_ABORT_BEGIN
434
+ UT_PTR_SET(pointer1, &int1);
435
+ EXPECT_ABORT_END
436
+ UnityOutputCharSpy_Enable(0);
340
437
  Unity.CurrentTestFailed = 0;
438
+ CHECK(strstr(UnityOutputCharSpy_Get(), "Too many pointers set"));
439
+ #endif
440
+ }
441
+
442
+ //------------------------------------------------------------
443
+
444
+ TEST_GROUP(InternalMalloc);
445
+
446
+ TEST_SETUP(InternalMalloc) { }
447
+ TEST_TEAR_DOWN(InternalMalloc) { }
448
+
449
+ TEST(InternalMalloc, MallocPastBufferFails)
450
+ {
451
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
452
+ void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
453
+ TEST_ASSERT_NOT_NULL(m);
454
+ void* n = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
455
+ TEST_ASSERT_NULL(n);
456
+ free(m);
457
+ #endif
458
+ }
459
+
460
+ TEST(InternalMalloc, CallocPastBufferFails)
461
+ {
462
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
463
+ void* m = calloc(1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
464
+ TEST_ASSERT_NOT_NULL(m);
465
+ void* n = calloc(1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
466
+ TEST_ASSERT_NULL(n);
467
+ free(m);
468
+ #endif
469
+ }
470
+
471
+ TEST(InternalMalloc, MallocThenReallocGrowsMemoryInPlace)
472
+ {
473
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
474
+ void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
475
+ TEST_ASSERT_NOT_NULL(m);
476
+ void* n = realloc(m, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 9);
477
+ TEST_ASSERT_EQUAL(m, n);
478
+ free(n);
479
+ #endif
480
+ }
481
+
482
+ TEST(InternalMalloc, ReallocFailDoesNotFreeMem)
483
+ {
484
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
485
+ void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
486
+ TEST_ASSERT_NOT_NULL(m);
487
+ void* n1 = malloc(10);
488
+ void* out_of_mem = realloc(n1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
489
+ TEST_ASSERT_NULL(out_of_mem);
490
+ void* n2 = malloc(10);
491
+ TEST_ASSERT_NOT_EQUAL(n2, n1);
492
+ free(n2);
493
+ free(n1);
494
+ free(m);
495
+ #endif
341
496
  }