ceedling 0.19.0 → 0.20.2

Sign up to get free protection for your applications and to get access to all the features.
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
+ }