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
@@ -64,7 +64,7 @@ int UnityMain(int argc, const char* argv[], void (*runAllTests)(void));
64
64
  TEST_##group##_GROUP_RUNNER(); }
65
65
 
66
66
  //CppUTest Compatibility Macros
67
- #define UT_PTR_SET(ptr, newPointerValue) UnityPointer_Set((void**)&(ptr), (void*)(newPointerValue))
67
+ #define UT_PTR_SET(ptr, newPointerValue) UnityPointer_Set((void**)&(ptr), (void*)(newPointerValue), __LINE__)
68
68
  #define TEST_ASSERT_POINTERS_EQUAL(expected, actual) TEST_ASSERT_EQUAL_PTR((expected), (actual))
69
69
  #define TEST_ASSERT_BYTES_EQUAL(expected, actual) TEST_ASSERT_EQUAL_HEX8(0xff & (expected), 0xff & (actual))
70
70
  #define FAIL(message) TEST_FAIL_MESSAGE((message))
@@ -8,39 +8,32 @@
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
+ extern struct _UnityFixture UnityFixture;
18
19
 
19
20
  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);
21
+ void UnityTestRunner(unityfunction* setup,
22
+ unityfunction* body,
23
+ unityfunction* teardown,
24
+ const char* printableName,
25
+ const char* group,
26
+ const char* name,
27
+ const char* file, unsigned int line);
27
28
 
28
- void UnityIgnoreTest(const char * printableName, const char * group, const char * name);
29
+ void UnityIgnoreTest(const char* printableName, const char* group, const char* name);
29
30
  void UnityMalloc_StartTest(void);
30
31
  void UnityMalloc_EndTest(void);
31
- UNITY_COUNTER_TYPE UnityFailureCount(void);
32
- UNITY_COUNTER_TYPE UnityIgnoreCount(void);
33
- UNITY_COUNTER_TYPE UnityTestsCount(void);
34
32
  int UnityGetCommandLineOptions(int argc, const char* argv[]);
35
33
  void UnityConcludeFixtureTest(void);
36
34
 
37
- void UnityPointer_Set(void ** ptr, void * newValue);
35
+ void UnityPointer_Set(void** ptr, void* newValue, UNITY_LINE_TYPE line);
38
36
  void UnityPointer_UndoAllSets(void);
39
37
  void UnityPointer_Init(void);
40
38
 
41
- void UnityAssertEqualPointer(const void * expected,
42
- const void * actual,
43
- const char* msg,
44
- const UNITY_LINE_TYPE lineNumber);
45
-
46
39
  #endif /* UNITY_FIXTURE_INTERNALS_H_ */
@@ -10,26 +10,27 @@
10
10
 
11
11
  #include <stddef.h>
12
12
 
13
- // This function is used by the Unity Fixture to allocate memory on
14
- // the heap and can be overridden with platform-specific heap
15
- // implementations. For example, when using FreeRTOS
16
- // UNITY_FIXTURE_MALLOC becomes pvPortMalloc().
17
-
18
- #ifndef UNITY_FIXTURE_MALLOC
19
- #define UNITY_FIXTURE_MALLOC( SIZE ) malloc( ( SIZE ) )
20
- #else
21
- extern void * UNITY_FIXTURE_MALLOC(size_t size);
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
22
  #endif
23
23
 
24
- // This function is used by the Unity Fixture to release memory in the
25
- // heap and can be overridden with platform-specific heap
26
- // implementations. For example, when using FreeRTOS
27
- // UNITY_FIXTURE_FREE becomes vPortFree().
28
-
29
- #ifndef UNITY_FIXTURE_FREE
30
- #define UNITY_FIXTURE_FREE( PTR ) free( ( PTR ) )
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
31
  #else
32
- extern void UNITY_FIXTURE_FREE(void *ptr);
32
+ extern void* UNITY_FIXTURE_MALLOC(size_t size);
33
+ extern void UNITY_FIXTURE_FREE(void* ptr);
33
34
  #endif
34
35
 
35
36
  #define malloc unity_malloc
@@ -1,8 +1,14 @@
1
1
  CC = gcc
2
- CFLAGS += -Werror
2
+ ifeq ($(shell uname -s), Darwin)
3
+ CC = clang
4
+ endif
5
+ #DEBUG = -O0 -g
3
6
  CFLAGS += -std=c99
4
7
  CFLAGS += -pedantic
5
- CFLAGS += -Wundef
8
+ CFLAGS += -Wall
9
+ CFLAGS += -Wextra
10
+ CFLAGS += -Werror
11
+ CFLAGS += $(DEBUG)
6
12
  DEFINES = -D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar
7
13
  SRC = ../src/unity_fixture.c \
8
14
  ../../../src/unity.c \
@@ -12,8 +18,63 @@ SRC = ../src/unity_fixture.c \
12
18
  main/AllTests.c
13
19
 
14
20
  INC_DIR = -I../src -I../../../src/
15
- TARGET = fixture_tests.exe
21
+ BUILD_DIR = ../build
22
+ TARGET = ../build/fixture_tests.exe
23
+
24
+ all: default noStdlibMalloc 32bits
25
+
26
+ default: $(BUILD_DIR)
27
+ $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_SUPPORT_64
28
+ @ echo "default build"
29
+ ./$(TARGET)
30
+
31
+ 32bits: $(BUILD_DIR)
32
+ $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m32
33
+ @ echo "32bits build"
34
+ ./$(TARGET)
16
35
 
17
- all:
18
- $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET)
36
+ noStdlibMalloc: $(BUILD_DIR)
37
+ $(CC) $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -D UNITY_EXCLUDE_STDLIB_MALLOC
38
+ @ echo "build with noStdlibMalloc"
19
39
  ./$(TARGET)
40
+
41
+ clang89: ../build/
42
+ clang $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m32 -std=c89 -Wno-comment
43
+ clang $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -m32 \
44
+ -D UNITY_EXCLUDE_STDLIB_MALLOC -std=c89 -Wno-comment ; ./$(TARGET)
45
+
46
+ clangEverything:
47
+ clang $(CFLAGS) $(DEFINES) $(SRC) $(INC_DIR) -o $(TARGET) -Weverything
48
+
49
+ $(BUILD_DIR):
50
+ mkdir -p $(BUILD_DIR)
51
+
52
+ clean:
53
+ rm -f $(TARGET) $(BUILD_DIR)/*.gc*
54
+
55
+ coverage: $(BUILD_DIR)
56
+ cd $(BUILD_DIR) && \
57
+ $(CC) $(DEFINES) $(foreach i, $(SRC), ../test/$(i)) $(INC_DIR) -o $(TARGET) -fprofile-arcs -ftest-coverage
58
+ rm -f $(BUILD_DIR)/*.gcda
59
+ ./$(TARGET) > /dev/null ; ./$(TARGET) -v > /dev/null
60
+ cd $(BUILD_DIR) && \
61
+ gcov unity_fixture.c | head -3
62
+ grep '###' $(BUILD_DIR)/unity_fixture.c.gcov -C2 || true # Show uncovered lines
63
+
64
+ # These extended flags DO get included before any target build runs
65
+ CFLAGS += -Wbad-function-cast
66
+ CFLAGS += -Wcast-qual
67
+ CFLAGS += -Wconversion
68
+ CFLAGS += -Wformat=2
69
+ CFLAGS += -Wmissing-prototypes
70
+ CFLAGS += -Wold-style-definition
71
+ CFLAGS += -Wpointer-arith
72
+ CFLAGS += -Wshadow
73
+ CFLAGS += -Wstrict-overflow=5
74
+ CFLAGS += -Wstrict-prototypes
75
+ CFLAGS += -Wswitch-default
76
+ CFLAGS += -Wundef
77
+ CFLAGS += -Wno-error=undef # Warning only, this should not stop the build
78
+ CFLAGS += -Wunreachable-code
79
+ CFLAGS += -Wunused
80
+ CFLAGS += -fstrict-aliasing
@@ -11,7 +11,8 @@ 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
18
  int main(int argc, const char* argv[])
@@ -10,8 +10,6 @@
10
10
  #include <stdlib.h>
11
11
  #include <string.h>
12
12
 
13
- extern UNITY_FIXTURE_T UnityFixture;
14
-
15
13
  TEST_GROUP(UnityFixture);
16
14
 
17
15
  TEST_SETUP(UnityFixture)
@@ -22,14 +20,13 @@ TEST_TEAR_DOWN(UnityFixture)
22
20
  {
23
21
  }
24
22
 
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;
23
+ static int* pointer1 = 0;
24
+ static int* pointer2 = (int*)2;
25
+ static int* pointer3 = (int*)3;
26
+ static int int1;
27
+ static int int2;
28
+ static int int3;
29
+ static int int4;
33
30
 
34
31
  TEST(UnityFixture, PointerSetting)
35
32
  {
@@ -79,9 +76,10 @@ TEST(UnityFixture, ReallocLargerNeeded)
79
76
  {
80
77
  void* m1 = malloc(10);
81
78
  void* m2;
79
+ CHECK(m1);
82
80
  strcpy((char*)m1, "123456789");
83
81
  m2 = realloc(m1, 15);
84
- CHECK(m1 != m2);
82
+ // CHECK(m1 != m2); //Depends on implementation
85
83
  STRCMP_EQUAL("123456789", m2);
86
84
  free(m2);
87
85
  }
@@ -104,14 +102,15 @@ TEST(UnityFixture, CallocFillsWithZero)
104
102
  {
105
103
  void* m = calloc(3, sizeof(char));
106
104
  char* s = (char*)m;
105
+ CHECK(m);
107
106
  TEST_ASSERT_BYTES_EQUAL(0, s[0]);
108
107
  TEST_ASSERT_BYTES_EQUAL(0, s[1]);
109
108
  TEST_ASSERT_BYTES_EQUAL(0, s[2]);
110
109
  free(m);
111
110
  }
112
111
 
113
- char *p1;
114
- char *p2;
112
+ static char *p1;
113
+ static char *p2;
115
114
 
116
115
  TEST(UnityFixture, PointerSet)
117
116
  {
@@ -134,17 +133,33 @@ TEST(UnityFixture, PointerSet)
134
133
 
135
134
  TEST(UnityFixture, FreeNULLSafety)
136
135
  {
137
- unity_free(NULL);
136
+ free(NULL);
137
+ }
138
+
139
+ TEST(UnityFixture, ConcludeTestIncrementsFailCount)
140
+ {
141
+ _U_UINT savedFails = Unity.TestFailures;
142
+ _U_UINT savedIgnores = Unity.TestIgnores;
143
+ UnityOutputCharSpy_Enable(1);
144
+ Unity.CurrentTestFailed = 1;
145
+ UnityConcludeFixtureTest(); // Resets TestFailed for this test to pass
146
+ Unity.CurrentTestIgnored = 1;
147
+ UnityConcludeFixtureTest(); // Resets TestIgnored
148
+ UnityOutputCharSpy_Enable(0);
149
+ TEST_ASSERT_EQUAL(savedFails + 1, Unity.TestFailures);
150
+ TEST_ASSERT_EQUAL(savedIgnores + 1, Unity.TestIgnores);
151
+ Unity.TestFailures = savedFails;
152
+ Unity.TestIgnores = savedIgnores;
138
153
  }
139
154
 
140
155
  //------------------------------------------------------------
141
156
 
142
157
  TEST_GROUP(UnityCommandOptions);
143
158
 
144
- int savedVerbose;
145
- int savedRepeat;
146
- const char* savedName;
147
- const char* savedGroup;
159
+ static int savedVerbose;
160
+ static unsigned int savedRepeat;
161
+ static const char* savedName;
162
+ static const char* savedGroup;
148
163
 
149
164
  TEST_SETUP(UnityCommandOptions)
150
165
  {
@@ -277,6 +292,21 @@ TEST(UnityCommandOptions, UnknownCommandIsIgnored)
277
292
  TEST_ASSERT_EQUAL(98, UnityFixture.RepeatCount);
278
293
  }
279
294
 
295
+ TEST(UnityCommandOptions, GroupOrNameFilterWithoutStringFails)
296
+ {
297
+ TEST_ASSERT_EQUAL(1, UnityGetCommandLineOptions(3, unknownCommand));
298
+ TEST_ASSERT_EQUAL(1, UnityGetCommandLineOptions(5, unknownCommand));
299
+ TEST_ASSERT_EQUAL(1, UnityMain(3, unknownCommand, NULL));
300
+ }
301
+
302
+ TEST(UnityCommandOptions, GroupFilterReallyFilters)
303
+ {
304
+ _U_UINT saved = Unity.NumberOfTests;
305
+ TEST_ASSERT_EQUAL(0, UnityGetCommandLineOptions(4, unknownCommand));
306
+ UnityIgnoreTest(NULL, "non-matching", NULL);
307
+ TEST_ASSERT_EQUAL(saved, Unity.NumberOfTests);
308
+ }
309
+
280
310
  IGNORE_TEST(UnityCommandOptions, TestShouldBeIgnored)
281
311
  {
282
312
  TEST_FAIL_MESSAGE("This test should not run!");
@@ -288,7 +318,11 @@ TEST_GROUP(LeakDetection);
288
318
 
289
319
  TEST_SETUP(LeakDetection)
290
320
  {
321
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
322
+ UnityOutputCharSpy_Create(200);
323
+ #else
291
324
  UnityOutputCharSpy_Create(1000);
325
+ #endif
292
326
  }
293
327
 
294
328
  TEST_TEAR_DOWN(LeakDetection)
@@ -308,21 +342,35 @@ TEST_TEAR_DOWN(LeakDetection)
308
342
  memcpy(Unity.AbortFrame, TestAbortFrame, sizeof(jmp_buf)); \
309
343
  }
310
344
 
311
- // This tricky set of defines lets us see if we are using the Spy, returns 1 if true, else 0
312
- #define USING_SPY_AS(a) EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0)
313
- #define ASSIGN_VALUE(a) VAL_FUNC_##a
314
- #define VAL_FUNC_UnityOutputCharSpy_OutputChar() 0, 1
315
- #define EXPAND_AND_USE_2ND(a, b) SECOND_PARAM(a, b, throwaway)
316
- #define SECOND_PARAM(a, b, ...) b
317
- #if USING_SPY_AS(UNITY_OUTPUT_CHAR())
345
+ // This tricky set of defines lets us see if we are using the Spy, returns 1 if true
346
+ #ifdef __STDC_VERSION__
347
+
348
+ #if __STDC_VERSION__ >= 199901L
349
+ #define USING_SPY_AS(a) EXPAND_AND_USE_2ND(ASSIGN_VALUE(a), 0)
350
+ #define ASSIGN_VALUE(a) VAL_##a
351
+ #define VAL_UnityOutputCharSpy_OutputChar 0, 1
352
+ #define EXPAND_AND_USE_2ND(a, b) SECOND_PARAM(a, b, throwaway)
353
+ #define SECOND_PARAM(a, b, ...) b
354
+ #if USING_SPY_AS(UNITY_OUTPUT_CHAR)
355
+ #define USING_OUTPUT_SPY // UNITY_OUTPUT_CHAR = UnityOutputCharSpy_OutputChar
356
+ #endif
357
+ #endif // >= 199901
358
+
359
+ #else // __STDC_VERSION__ else
360
+ #define UnityOutputCharSpy_OutputChar 42
361
+ #if UNITY_OUTPUT_CHAR == UnityOutputCharSpy_OutputChar // Works if no -Wundef -Werror
318
362
  #define USING_OUTPUT_SPY
319
363
  #endif
364
+ #undef UnityOutputCharSpy_OutputChar
365
+ #endif // __STDC_VERSION__
366
+
320
367
  TEST(LeakDetection, DetectsLeak)
321
368
  {
322
369
  #ifndef USING_OUTPUT_SPY
323
370
  TEST_IGNORE_MESSAGE("Build with '-D UNITY_OUTPUT_CHAR=UnityOutputCharSpy_OutputChar' to enable tests");
324
371
  #else
325
372
  void* m = malloc(10);
373
+ TEST_ASSERT_NOT_NULL(m);
326
374
  UnityOutputCharSpy_Enable(1);
327
375
  EXPECT_ABORT_BEGIN
328
376
  UnityMalloc_EndTest();
@@ -337,11 +385,11 @@ TEST(LeakDetection, DetectsLeak)
337
385
  TEST(LeakDetection, BufferOverrunFoundDuringFree)
338
386
  {
339
387
  #ifndef USING_OUTPUT_SPY
340
- UNITY_PRINT_EOL();
341
388
  TEST_IGNORE();
342
389
  #else
343
390
  void* m = malloc(10);
344
391
  char* s = (char*)m;
392
+ TEST_ASSERT_NOT_NULL(m);
345
393
  s[10] = (char)0xFF;
346
394
  UnityOutputCharSpy_Enable(1);
347
395
  EXPECT_ABORT_BEGIN
@@ -356,11 +404,11 @@ TEST(LeakDetection, BufferOverrunFoundDuringFree)
356
404
  TEST(LeakDetection, BufferOverrunFoundDuringRealloc)
357
405
  {
358
406
  #ifndef USING_OUTPUT_SPY
359
- UNITY_PRINT_EOL();
360
407
  TEST_IGNORE();
361
408
  #else
362
409
  void* m = malloc(10);
363
410
  char* s = (char*)m;
411
+ TEST_ASSERT_NOT_NULL(m);
364
412
  s[10] = (char)0xFF;
365
413
  UnityOutputCharSpy_Enable(1);
366
414
  EXPECT_ABORT_BEGIN
@@ -371,3 +419,115 @@ TEST(LeakDetection, BufferOverrunFoundDuringRealloc)
371
419
  CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during realloc()"));
372
420
  #endif
373
421
  }
422
+
423
+ TEST(LeakDetection, BufferGuardWriteFoundDuringFree)
424
+ {
425
+ #ifndef USING_OUTPUT_SPY
426
+ TEST_IGNORE();
427
+ #else
428
+ void* m = malloc(10);
429
+ char* s = (char*)m;
430
+ TEST_ASSERT_NOT_NULL(m);
431
+ s[-1] = (char)0x00; // Will not detect 0
432
+ s[-2] = (char)0x01;
433
+ UnityOutputCharSpy_Enable(1);
434
+ EXPECT_ABORT_BEGIN
435
+ free(m);
436
+ EXPECT_ABORT_END
437
+ UnityOutputCharSpy_Enable(0);
438
+ Unity.CurrentTestFailed = 0;
439
+ CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during free()"));
440
+ #endif
441
+ }
442
+
443
+ TEST(LeakDetection, BufferGuardWriteFoundDuringRealloc)
444
+ {
445
+ #ifndef USING_OUTPUT_SPY
446
+ TEST_IGNORE();
447
+ #else
448
+ void* m = malloc(10);
449
+ char* s = (char*)m;
450
+ TEST_ASSERT_NOT_NULL(m);
451
+ s[-1] = (char)0x0A;
452
+ UnityOutputCharSpy_Enable(1);
453
+ EXPECT_ABORT_BEGIN
454
+ m = realloc(m, 100);
455
+ EXPECT_ABORT_END
456
+ UnityOutputCharSpy_Enable(0);
457
+ Unity.CurrentTestFailed = 0;
458
+ CHECK(strstr(UnityOutputCharSpy_Get(), "Buffer overrun detected during realloc()"));
459
+ #endif
460
+ }
461
+
462
+ TEST(LeakDetection, PointerSettingMax)
463
+ {
464
+ #ifndef USING_OUTPUT_SPY
465
+ TEST_IGNORE();
466
+ #else
467
+ int i;
468
+ for (i = 0; i < 50; i++) UT_PTR_SET(pointer1, &int1);
469
+ UnityOutputCharSpy_Enable(1);
470
+ EXPECT_ABORT_BEGIN
471
+ UT_PTR_SET(pointer1, &int1);
472
+ EXPECT_ABORT_END
473
+ UnityOutputCharSpy_Enable(0);
474
+ Unity.CurrentTestFailed = 0;
475
+ CHECK(strstr(UnityOutputCharSpy_Get(), "Too many pointers set"));
476
+ #endif
477
+ }
478
+
479
+ //------------------------------------------------------------
480
+
481
+ TEST_GROUP(InternalMalloc);
482
+
483
+ TEST_SETUP(InternalMalloc) { }
484
+ TEST_TEAR_DOWN(InternalMalloc) { }
485
+
486
+ TEST(InternalMalloc, MallocPastBufferFails)
487
+ {
488
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
489
+ void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
490
+ void* n = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
491
+ TEST_ASSERT_NOT_NULL(m);
492
+ TEST_ASSERT_NULL(n);
493
+ free(m);
494
+ #endif
495
+ }
496
+
497
+ TEST(InternalMalloc, CallocPastBufferFails)
498
+ {
499
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
500
+ void* m = calloc(1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
501
+ void* n = calloc(1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
502
+ TEST_ASSERT_NOT_NULL(m);
503
+ TEST_ASSERT_NULL(n);
504
+ free(m);
505
+ #endif
506
+ }
507
+
508
+ TEST(InternalMalloc, MallocThenReallocGrowsMemoryInPlace)
509
+ {
510
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
511
+ void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
512
+ void* n = realloc(m, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 9);
513
+ TEST_ASSERT_NOT_NULL(m);
514
+ TEST_ASSERT_EQUAL(m, n);
515
+ free(n);
516
+ #endif
517
+ }
518
+
519
+ TEST(InternalMalloc, ReallocFailDoesNotFreeMem)
520
+ {
521
+ #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
522
+ void* m = malloc(UNITY_INTERNAL_HEAP_SIZE_BYTES/2);
523
+ void* n1 = malloc(10);
524
+ void* out_of_mem = realloc(n1, UNITY_INTERNAL_HEAP_SIZE_BYTES/2 + 1);
525
+ void* n2 = malloc(10);
526
+ TEST_ASSERT_NOT_NULL(m);
527
+ TEST_ASSERT_NULL(out_of_mem);
528
+ TEST_ASSERT_NOT_EQUAL(n2, n1);
529
+ free(n2);
530
+ free(n1);
531
+ free(m);
532
+ #endif
533
+ }