ceedling 0.28.3 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1101) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +16 -16
  3. data/Gemfile.lock +17 -16
  4. data/README.md +107 -66
  5. data/Rakefile +11 -11
  6. data/assets/ceedling +3 -3
  7. data/assets/ceedling.cmd +1 -1
  8. data/assets/default_gitignore +5 -5
  9. data/assets/example_file.c +5 -5
  10. data/assets/example_file.h +6 -6
  11. data/assets/project_as_gem.yml +100 -90
  12. data/assets/project_with_guts.yml +101 -91
  13. data/assets/project_with_guts_gcov.yml +101 -91
  14. data/assets/test_example_file.c +13 -13
  15. data/assets/test_example_file_boom.c +13 -13
  16. data/assets/test_example_file_success.c +14 -14
  17. data/assets/test_example_file_verbose.c +12 -12
  18. data/bin/ceedling +337 -316
  19. data/ceedling.gemspec +36 -39
  20. data/ceedling.sublime-project +25 -0
  21. data/ceedling.sublime-workspace +1276 -0
  22. data/config/test_environment.rb +11 -11
  23. data/docs/CeedlingPacket.md +2119 -2060
  24. data/docs/ThrowTheSwitchCodingStandard.md +207 -207
  25. data/examples/blinky/project.yml +99 -98
  26. data/examples/blinky/rakefile.rb +31 -31
  27. data/examples/blinky/src/BlinkTask.c +21 -21
  28. data/examples/blinky/src/BlinkTask.h +6 -6
  29. data/examples/blinky/src/Configure.c +36 -36
  30. data/examples/blinky/src/Configure.h +6 -6
  31. data/examples/blinky/src/main.c +51 -51
  32. data/examples/blinky/src/main.h +9 -9
  33. data/examples/blinky/test/support/stub_interrupt.h +347 -347
  34. data/examples/blinky/test/support/stub_io.h +421 -421
  35. data/examples/blinky/test/support/stub_iom328p.h +883 -883
  36. data/examples/blinky/test/support/stub_sfr_defs.h +269 -269
  37. data/examples/blinky/test/test_BlinkTask.c +42 -42
  38. data/examples/blinky/test/test_Configure.c +29 -29
  39. data/examples/blinky/test/test_main.c +60 -60
  40. data/examples/temp_sensor/project.yml +76 -76
  41. data/examples/temp_sensor/rakefile.rb +6 -6
  42. data/examples/temp_sensor/src/AdcConductor.c +42 -42
  43. data/examples/temp_sensor/src/AdcConductor.h +13 -13
  44. data/examples/temp_sensor/src/AdcHardware.c +27 -27
  45. data/examples/temp_sensor/src/AdcHardware.h +11 -11
  46. data/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -18
  47. data/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -10
  48. data/examples/temp_sensor/src/AdcModel.c +33 -33
  49. data/examples/temp_sensor/src/AdcModel.h +13 -13
  50. data/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -51
  51. data/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -10
  52. data/examples/temp_sensor/src/Executor.c +25 -25
  53. data/examples/temp_sensor/src/Executor.h +9 -9
  54. data/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -18
  55. data/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -7
  56. data/examples/temp_sensor/src/Main.c +46 -46
  57. data/examples/temp_sensor/src/Main.h +7 -7
  58. data/examples/temp_sensor/src/Model.c +10 -10
  59. data/examples/temp_sensor/src/Model.h +8 -8
  60. data/examples/temp_sensor/src/ModelConfig.h +7 -7
  61. data/examples/temp_sensor/src/TaskScheduler.c +72 -72
  62. data/examples/temp_sensor/src/TaskScheduler.h +11 -11
  63. data/examples/temp_sensor/src/TemperatureCalculator.c +27 -27
  64. data/examples/temp_sensor/src/TemperatureCalculator.h +8 -8
  65. data/examples/temp_sensor/src/TemperatureFilter.c +38 -38
  66. data/examples/temp_sensor/src/TemperatureFilter.h +10 -10
  67. data/examples/temp_sensor/src/TimerConductor.c +15 -15
  68. data/examples/temp_sensor/src/TimerConductor.h +9 -9
  69. data/examples/temp_sensor/src/TimerConfigurator.c +51 -51
  70. data/examples/temp_sensor/src/TimerConfigurator.h +15 -15
  71. data/examples/temp_sensor/src/TimerHardware.c +15 -15
  72. data/examples/temp_sensor/src/TimerHardware.h +8 -8
  73. data/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -55
  74. data/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -13
  75. data/examples/temp_sensor/src/TimerInterruptHandler.c +25 -25
  76. data/examples/temp_sensor/src/TimerInterruptHandler.h +10 -10
  77. data/examples/temp_sensor/src/TimerModel.c +9 -9
  78. data/examples/temp_sensor/src/TimerModel.h +8 -8
  79. data/examples/temp_sensor/src/Types.h +90 -90
  80. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -18
  81. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +8 -8
  82. data/examples/temp_sensor/src/UsartConductor.c +21 -21
  83. data/examples/temp_sensor/src/UsartConductor.h +7 -7
  84. data/examples/temp_sensor/src/UsartConfigurator.c +39 -39
  85. data/examples/temp_sensor/src/UsartConfigurator.h +13 -13
  86. data/examples/temp_sensor/src/UsartHardware.c +22 -22
  87. data/examples/temp_sensor/src/UsartHardware.h +9 -9
  88. data/examples/temp_sensor/src/UsartModel.c +34 -34
  89. data/examples/temp_sensor/src/UsartModel.h +10 -10
  90. data/examples/temp_sensor/src/UsartPutChar.c +16 -16
  91. data/examples/temp_sensor/src/UsartPutChar.h +8 -8
  92. data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -7
  93. data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -8
  94. data/examples/temp_sensor/test/TestAdcConductor.c +121 -121
  95. data/examples/temp_sensor/test/TestAdcHardware.c +44 -44
  96. data/examples/temp_sensor/test/TestAdcModel.c +33 -33
  97. data/examples/temp_sensor/test/TestExecutor.c +36 -36
  98. data/examples/temp_sensor/test/TestMain.c +24 -24
  99. data/examples/temp_sensor/test/TestModel.c +20 -20
  100. data/examples/temp_sensor/test/TestTaskScheduler.c +104 -104
  101. data/examples/temp_sensor/test/TestTemperatureCalculator.c +36 -36
  102. data/examples/temp_sensor/test/TestTemperatureFilter.c +79 -79
  103. data/examples/temp_sensor/test/TestTimerConductor.c +32 -32
  104. data/examples/temp_sensor/test/TestTimerHardware.c +26 -26
  105. data/examples/temp_sensor/test/TestTimerModel.c +18 -18
  106. data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -21
  107. data/examples/temp_sensor/test/TestUsartConductor.c +40 -40
  108. data/examples/temp_sensor/test/TestUsartHardware.c +36 -36
  109. data/examples/temp_sensor/test/TestUsartModel.c +40 -40
  110. data/examples/temp_sensor/test/support/UnityHelper.c +12 -12
  111. data/examples/temp_sensor/test/support/UnityHelper.h +12 -12
  112. data/lib/ceedling.rb +99 -99
  113. data/lib/ceedling/build_invoker_utils.rb +39 -39
  114. data/lib/ceedling/cacheinator.rb +47 -42
  115. data/lib/ceedling/cacheinator_helper.rb +31 -12
  116. data/lib/ceedling/cmock_builder.rb +15 -15
  117. data/lib/ceedling/configurator.rb +363 -356
  118. data/lib/ceedling/configurator_builder.rb +458 -451
  119. data/lib/ceedling/configurator_plugins.rb +111 -111
  120. data/lib/ceedling/configurator_setup.rb +127 -127
  121. data/lib/ceedling/configurator_validator.rb +193 -193
  122. data/lib/ceedling/constants.rb +97 -97
  123. data/lib/ceedling/defaults.rb +418 -418
  124. data/lib/ceedling/dependinator.rb +98 -91
  125. data/lib/ceedling/erb_wrapper.rb +8 -8
  126. data/lib/ceedling/file_finder.rb +149 -149
  127. data/lib/ceedling/file_finder_helper.rb +54 -54
  128. data/lib/ceedling/file_path_utils.rb +200 -200
  129. data/lib/ceedling/file_system_utils.rb +69 -69
  130. data/lib/ceedling/file_system_wrapper.rb +9 -9
  131. data/lib/ceedling/file_wrapper.rb +83 -83
  132. data/lib/ceedling/flaginator.rb +74 -74
  133. data/lib/ceedling/generator.rb +183 -176
  134. data/lib/ceedling/generator_helper.rb +40 -40
  135. data/lib/ceedling/generator_test_results.rb +89 -89
  136. data/lib/ceedling/generator_test_results_sanity_checker.rb +65 -65
  137. data/lib/ceedling/generator_test_runner.rb +56 -52
  138. data/lib/ceedling/loginator.rb +31 -31
  139. data/lib/ceedling/makefile.rb +46 -46
  140. data/lib/ceedling/objects.yml +310 -307
  141. data/lib/ceedling/par_map.rb +19 -19
  142. data/lib/ceedling/plugin.rb +80 -80
  143. data/lib/ceedling/plugin_builder.rb +52 -52
  144. data/lib/ceedling/plugin_manager.rb +107 -107
  145. data/lib/ceedling/plugin_manager_helper.rb +19 -19
  146. data/lib/ceedling/plugin_reportinator.rb +76 -76
  147. data/lib/ceedling/plugin_reportinator_helper.rb +51 -51
  148. data/lib/ceedling/preprocessinator.rb +42 -43
  149. data/lib/ceedling/preprocessinator_extractor.rb +30 -30
  150. data/lib/ceedling/preprocessinator_file_handler.rb +21 -21
  151. data/lib/ceedling/preprocessinator_helper.rb +46 -46
  152. data/lib/ceedling/preprocessinator_includes_handler.rb +181 -96
  153. data/lib/ceedling/project_config_manager.rb +46 -37
  154. data/lib/ceedling/project_file_loader.rb +99 -99
  155. data/lib/ceedling/rake_utils.rb +17 -17
  156. data/lib/ceedling/rake_wrapper.rb +33 -33
  157. data/lib/ceedling/rakefile.rb +86 -86
  158. data/lib/ceedling/release_invoker.rb +73 -73
  159. data/lib/ceedling/release_invoker_helper.rb +19 -19
  160. data/lib/ceedling/reportinator.rb +26 -26
  161. data/lib/ceedling/rules_cmock.rake +9 -9
  162. data/lib/ceedling/rules_preprocess.rake +26 -26
  163. data/lib/ceedling/rules_release.rake +86 -86
  164. data/lib/ceedling/rules_release_deep_dependencies.rake +15 -15
  165. data/lib/ceedling/rules_tests.rake +74 -74
  166. data/lib/ceedling/rules_tests_deep_dependencies.rake +15 -15
  167. data/lib/ceedling/setupinator.rb +53 -53
  168. data/lib/ceedling/stream_wrapper.rb +28 -20
  169. data/lib/ceedling/streaminator.rb +40 -40
  170. data/lib/ceedling/streaminator_helper.rb +15 -15
  171. data/lib/ceedling/system_utils.rb +37 -37
  172. data/lib/ceedling/system_wrapper.rb +80 -80
  173. data/lib/ceedling/target_loader.rb +38 -38
  174. data/lib/ceedling/task_invoker.rb +117 -101
  175. data/lib/ceedling/tasks_base.rake +111 -112
  176. data/lib/ceedling/tasks_filesystem.rake +103 -100
  177. data/lib/ceedling/tasks_release.rake +30 -30
  178. data/lib/ceedling/tasks_release_deep_dependencies.rake +9 -9
  179. data/lib/ceedling/tasks_tests.rake +60 -55
  180. data/lib/ceedling/tasks_tests_deep_dependencies.rake +9 -9
  181. data/lib/ceedling/tasks_vendor.rake +35 -35
  182. data/lib/ceedling/test_includes_extractor.rb +85 -85
  183. data/lib/ceedling/test_invoker.rb +188 -164
  184. data/lib/ceedling/test_invoker_helper.rb +32 -32
  185. data/lib/ceedling/tool_executor.rb +229 -223
  186. data/lib/ceedling/tool_executor_helper.rb +164 -164
  187. data/lib/ceedling/verbosinator.rb +10 -10
  188. data/lib/ceedling/version.rb +36 -15
  189. data/lib/ceedling/yaml_wrapper.rb +17 -17
  190. data/license.txt +31 -31
  191. data/out.fail +22 -21
  192. data/plugins/beep/README.md +22 -22
  193. data/plugins/beep/lib/beep.rb +40 -40
  194. data/plugins/bullseye/assets/template.erb +15 -15
  195. data/plugins/bullseye/bullseye.rake +169 -169
  196. data/plugins/bullseye/config/defaults.yml +57 -57
  197. data/plugins/bullseye/lib/bullseye.rb +194 -194
  198. data/plugins/colour_report/lib/colour_report.rb +16 -0
  199. data/plugins/command_hooks/README.md +53 -52
  200. data/plugins/command_hooks/lib/command_hooks.rb +92 -75
  201. data/plugins/fake_function_framework/README.md +250 -250
  202. data/plugins/fake_function_framework/Rakefile +18 -18
  203. data/plugins/fake_function_framework/examples/fff_example/project.yml +71 -71
  204. data/plugins/fake_function_framework/examples/fff_example/rakefile.rb +7 -7
  205. data/plugins/fake_function_framework/examples/fff_example/src/bar.c +1 -1
  206. data/plugins/fake_function_framework/examples/fff_example/src/bar.h +14 -14
  207. data/plugins/fake_function_framework/examples/fff_example/src/custom_types.h +6 -6
  208. data/plugins/fake_function_framework/examples/fff_example/src/display.c +6 -6
  209. data/plugins/fake_function_framework/examples/fff_example/src/display.h +16 -16
  210. data/plugins/fake_function_framework/examples/fff_example/src/event_processor.c +93 -93
  211. data/plugins/fake_function_framework/examples/fff_example/src/event_processor.h +11 -11
  212. data/plugins/fake_function_framework/examples/fff_example/src/foo.c +16 -16
  213. data/plugins/fake_function_framework/examples/fff_example/src/foo.h +8 -8
  214. data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.c +1 -1
  215. data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.h +6 -6
  216. data/plugins/fake_function_framework/examples/fff_example/test/test_event_processor.c +155 -155
  217. data/plugins/fake_function_framework/examples/fff_example/test/test_foo.c +47 -47
  218. data/plugins/fake_function_framework/lib/fake_function_framework.rb +87 -87
  219. data/plugins/fake_function_framework/lib/fff_mock_generator.rb +163 -163
  220. data/plugins/fake_function_framework/spec/fff_mock_header_generator_spec.rb +304 -304
  221. data/plugins/fake_function_framework/spec/fff_mock_source_generator_spec.rb +148 -148
  222. data/plugins/fake_function_framework/spec/header_generator.rb +50 -50
  223. data/plugins/fake_function_framework/spec/spec_helper.rb +96 -96
  224. data/plugins/fake_function_framework/src/fff_unity_helper.h +32 -32
  225. data/plugins/gcov/README.md +101 -42
  226. data/plugins/gcov/assets/template.erb +15 -15
  227. data/plugins/gcov/config/defaults.yml +73 -66
  228. data/plugins/gcov/gcov.rake +220 -180
  229. data/plugins/gcov/lib/gcov.rb +113 -106
  230. data/plugins/gcov/lib/gcov_constants.rb +19 -18
  231. data/plugins/junit_tests_report/README.md +36 -0
  232. data/plugins/junit_tests_report/lib/junit_tests_report.rb +129 -118
  233. data/plugins/module_generator/config/module_generator.yml +3 -3
  234. data/plugins/module_generator/lib/module_generator.rb +70 -51
  235. data/plugins/module_generator/module_generator.rake +47 -43
  236. data/plugins/raw_output_report/lib/raw_output_report.rb +41 -41
  237. data/plugins/stdout_gtestlike_tests_report/assets/template.erb +84 -84
  238. data/plugins/stdout_gtestlike_tests_report/assets/template.erb copy +59 -59
  239. data/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml +4 -4
  240. data/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb +43 -43
  241. data/plugins/stdout_ide_tests_report/config/stdout_ide_tests_report.yml +4 -4
  242. data/plugins/stdout_ide_tests_report/lib/stdout_ide_tests_report.rb +44 -44
  243. data/plugins/stdout_pretty_tests_report/assets/template.erb +59 -59
  244. data/plugins/stdout_pretty_tests_report/config/stdout_pretty_tests_report.yml +4 -4
  245. data/plugins/stdout_pretty_tests_report/lib/stdout_pretty_tests_report.rb +47 -47
  246. data/plugins/subprojects/README.md +63 -63
  247. data/plugins/subprojects/config/defaults.yml +33 -33
  248. data/plugins/subprojects/lib/subprojects.rb +92 -92
  249. data/plugins/subprojects/subprojects.rake +78 -78
  250. data/plugins/teamcity_tests_report/config/teamcity_tests_report.yml +4 -4
  251. data/plugins/teamcity_tests_report/lib/teamcity_tests_report.rb +57 -57
  252. data/plugins/warnings_report/lib/warnings_report.rb +69 -69
  253. data/plugins/xml_tests_report/README.md +36 -0
  254. data/plugins/xml_tests_report/lib/xml_tests_report.rb +110 -108
  255. data/spec/build_invoker_utils_spec.rb +54 -54
  256. data/spec/ceedling_spec.rb +154 -154
  257. data/spec/configurator_builder_spec.rb +6 -6
  258. data/spec/configurator_helper_spec.rb +4 -4
  259. data/spec/configurator_spec.rb +9 -9
  260. data/spec/file_finder_helper_spec.rb +53 -53
  261. data/spec/gcov/gcov_deployment_spec.rb +70 -70
  262. data/spec/gcov/gcov_test_cases_spec.rb +91 -91
  263. data/spec/generator_test_results_sanity_checker_spec.rb +88 -88
  264. data/spec/generator_test_results_spec.rb +107 -107
  265. data/spec/par_map_spec.rb +57 -57
  266. data/spec/preprocessinator_extractor_spec.rb +45 -45
  267. data/spec/preprocessinator_includes_handler_spec.rb +202 -186
  268. data/spec/reportinator_spec.rb +19 -19
  269. data/spec/spec_helper.rb +27 -27
  270. data/spec/spec_system_helper.rb +575 -481
  271. data/spec/support/test_example.fail +22 -22
  272. data/spec/support/test_example.pass +22 -22
  273. data/spec/support/test_example_empty.pass +14 -14
  274. data/spec/support/test_example_ignore.pass +22 -22
  275. data/spec/support/test_example_mangled.pass +20 -20
  276. data/spec/support/test_example_with_time.pass +22 -22
  277. data/spec/system/deployment_spec.rb +219 -197
  278. data/spec/system_utils_spec.rb +56 -56
  279. data/spec/target_loader_spec.rb +30 -30
  280. data/spec/tool_executor_helper_spec.rb +310 -310
  281. data/spec/uncatagorized_specs_spec.rb +8 -8
  282. data/vendor/behaviors/Manifest.txt +9 -9
  283. data/vendor/behaviors/Rakefile +19 -19
  284. data/vendor/behaviors/lib/behaviors.rb +76 -76
  285. data/vendor/behaviors/lib/behaviors/reporttask.rb +158 -158
  286. data/vendor/behaviors/test/behaviors_tasks_test.rb +73 -73
  287. data/vendor/behaviors/test/behaviors_test.rb +50 -50
  288. data/vendor/behaviors/test/tasks_test/Rakefile +19 -19
  289. data/vendor/behaviors/test/tasks_test/lib/user.rb +2 -2
  290. data/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -17
  291. data/vendor/c_exception/Gemfile +4 -4
  292. data/vendor/c_exception/Gemfile.lock +12 -12
  293. data/vendor/c_exception/LICENSE.txt +30 -30
  294. data/vendor/c_exception/README.md +162 -162
  295. data/vendor/c_exception/Rakefile +42 -42
  296. data/vendor/c_exception/docs/CException.md +292 -292
  297. data/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -207
  298. data/vendor/c_exception/lib/CException.c +46 -46
  299. data/vendor/c_exception/lib/CException.h +115 -110
  300. data/vendor/c_exception/makefile +23 -23
  301. data/vendor/c_exception/test/CExceptionConfig.h +46 -46
  302. data/vendor/c_exception/test/TestException.c +391 -391
  303. data/vendor/c_exception/test/TestException_Runner.c +67 -67
  304. data/vendor/c_exception/vendor/unity/README.md +220 -0
  305. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +118 -0
  306. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
  307. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
  308. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +308 -0
  309. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +437 -0
  310. data/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
  311. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +252 -0
  312. data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +25 -0
  313. data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +6 -0
  314. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +139 -0
  315. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +136 -0
  316. data/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +146 -0
  317. data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
  318. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  319. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
  320. data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
  321. data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
  322. data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
  323. data/vendor/{cmock → c_exception}/vendor/unity/docs/license.txt +21 -21
  324. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +71 -0
  325. data/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +5 -0
  326. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
  327. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
  328. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -0
  329. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
  330. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
  331. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
  332. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
  333. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
  334. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +70 -0
  335. data/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +5 -0
  336. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
  337. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
  338. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -0
  339. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
  340. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
  341. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
  342. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
  343. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
  344. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
  345. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
  346. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
  347. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +43 -0
  348. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +249 -0
  349. data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +13 -0
  350. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
  351. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
  352. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -0
  353. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
  354. data/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
  355. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
  356. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
  357. data/vendor/c_exception/vendor/unity/examples/unity_config.h +237 -0
  358. data/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
  359. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -0
  360. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  361. data/vendor/{cmock → c_exception}/vendor/unity/extras/fixture/readme.txt +8 -8
  362. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +432 -0
  363. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +83 -0
  364. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +51 -0
  365. data/vendor/{unity → c_exception/vendor/unity}/extras/fixture/src/unity_fixture_malloc_overrides.h +47 -47
  366. data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +74 -0
  367. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +22 -0
  368. data/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -0
  369. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +543 -0
  370. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +57 -0
  371. data/vendor/{cmock → c_exception}/vendor/unity/extras/fixture/test/unity_output_Spy.c +57 -57
  372. data/vendor/{cmock → c_exception}/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -17
  373. data/vendor/c_exception/vendor/unity/release/build.info +2 -0
  374. data/vendor/c_exception/vendor/unity/release/version.info +2 -0
  375. data/vendor/c_exception/vendor/unity/src/unity.c +1517 -0
  376. data/vendor/c_exception/vendor/unity/src/unity.h +339 -0
  377. data/vendor/c_exception/vendor/unity/src/unity_internals.h +784 -0
  378. data/vendor/c_exception/vendor/unity/test/Makefile +63 -0
  379. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +61 -0
  380. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +57 -0
  381. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
  382. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
  383. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -0
  384. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +76 -0
  385. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  386. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
  387. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -0
  388. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -0
  389. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +77 -0
  390. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -0
  391. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -0
  392. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -0
  393. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +67 -0
  394. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +70 -0
  395. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +58 -0
  396. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +67 -0
  397. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +70 -0
  398. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +71 -0
  399. data/vendor/c_exception/vendor/unity/test/rakefile +125 -0
  400. data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +260 -0
  401. data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
  402. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +78 -0
  403. data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +78 -0
  404. data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
  405. data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
  406. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +47 -0
  407. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -0
  408. data/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +47 -0
  409. data/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +101 -0
  410. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +90 -0
  411. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +80 -0
  412. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +80 -0
  413. data/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +94 -0
  414. data/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +84 -0
  415. data/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +95 -0
  416. data/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +86 -0
  417. data/vendor/c_exception/vendor/unity/test/testdata/CException.h +11 -0
  418. data/vendor/c_exception/vendor/unity/test/testdata/Defs.h +8 -0
  419. data/vendor/c_exception/vendor/unity/test/testdata/cmock.h +14 -0
  420. data/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +13 -0
  421. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
  422. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +67 -0
  423. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
  424. data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +1252 -0
  425. data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +110 -0
  426. data/vendor/c_exception/vendor/unity/test/tests/testunity.c +4993 -0
  427. data/vendor/cmock/Gemfile +9 -9
  428. data/vendor/cmock/{docs/license.txt → LICENSE.txt} +18 -18
  429. data/vendor/cmock/README.md +34 -34
  430. data/vendor/cmock/config/production_environment.rb +14 -14
  431. data/vendor/cmock/config/test_environment.rb +16 -16
  432. data/vendor/cmock/docs/CMock_Summary.md +689 -603
  433. data/vendor/cmock/docs/ThrowTheSwitchCodingStandard.md +207 -207
  434. data/vendor/cmock/examples/make_example/Makefile +30 -30
  435. data/vendor/cmock/examples/make_example/src/foo.c +5 -5
  436. data/vendor/cmock/examples/make_example/src/foo.h +5 -5
  437. data/vendor/cmock/examples/make_example/src/main.c +15 -15
  438. data/vendor/cmock/examples/make_example/test/test_foo.c +17 -17
  439. data/vendor/cmock/examples/make_example/test/test_main.c +15 -15
  440. data/vendor/cmock/examples/temp_sensor/gcc.yml +44 -44
  441. data/vendor/cmock/examples/temp_sensor/iar_v4.yml +92 -92
  442. data/vendor/cmock/examples/temp_sensor/iar_v5.yml +81 -81
  443. data/vendor/cmock/examples/temp_sensor/rakefile.rb +42 -42
  444. data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +272 -272
  445. data/vendor/cmock/examples/temp_sensor/src/AT91SAM7X256.h +2556 -2556
  446. data/vendor/cmock/examples/temp_sensor/src/AdcConductor.c +42 -42
  447. data/vendor/cmock/examples/temp_sensor/src/AdcConductor.h +11 -11
  448. data/vendor/cmock/examples/temp_sensor/src/AdcHardware.c +27 -27
  449. data/vendor/cmock/examples/temp_sensor/src/AdcHardware.h +9 -9
  450. data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -18
  451. data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -10
  452. data/vendor/cmock/examples/temp_sensor/src/AdcModel.c +33 -33
  453. data/vendor/cmock/examples/temp_sensor/src/AdcModel.h +13 -13
  454. data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -51
  455. data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -10
  456. data/vendor/cmock/examples/temp_sensor/src/Executor.c +25 -25
  457. data/vendor/cmock/examples/temp_sensor/src/Executor.h +9 -9
  458. data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -18
  459. data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -7
  460. data/vendor/cmock/examples/temp_sensor/src/Main.c +46 -46
  461. data/vendor/cmock/examples/temp_sensor/src/Main.h +7 -7
  462. data/vendor/cmock/examples/temp_sensor/src/Model.c +10 -10
  463. data/vendor/cmock/examples/temp_sensor/src/Model.h +8 -8
  464. data/vendor/cmock/examples/temp_sensor/src/ModelConfig.h +7 -7
  465. data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.c +72 -72
  466. data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.h +11 -11
  467. data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.c +27 -27
  468. data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.h +6 -6
  469. data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.c +39 -39
  470. data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.h +10 -10
  471. data/vendor/cmock/examples/temp_sensor/src/TimerConductor.c +15 -15
  472. data/vendor/cmock/examples/temp_sensor/src/TimerConductor.h +9 -9
  473. data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.c +51 -51
  474. data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.h +15 -15
  475. data/vendor/cmock/examples/temp_sensor/src/TimerHardware.c +15 -15
  476. data/vendor/cmock/examples/temp_sensor/src/TimerHardware.h +8 -8
  477. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -55
  478. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -13
  479. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.c +25 -25
  480. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.h +10 -10
  481. data/vendor/cmock/examples/temp_sensor/src/TimerModel.c +9 -9
  482. data/vendor/cmock/examples/temp_sensor/src/TimerModel.h +8 -8
  483. data/vendor/cmock/examples/temp_sensor/src/Types.h +103 -103
  484. data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -18
  485. data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +6 -6
  486. data/vendor/cmock/examples/temp_sensor/src/UsartConductor.c +21 -21
  487. data/vendor/cmock/examples/temp_sensor/src/UsartConductor.h +7 -7
  488. data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.c +39 -39
  489. data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.h +13 -13
  490. data/vendor/cmock/examples/temp_sensor/src/UsartHardware.c +22 -22
  491. data/vendor/cmock/examples/temp_sensor/src/UsartHardware.h +9 -9
  492. data/vendor/cmock/examples/temp_sensor/src/UsartModel.c +34 -34
  493. data/vendor/cmock/examples/temp_sensor/src/UsartModel.h +10 -10
  494. data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.c +16 -16
  495. data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.h +8 -8
  496. data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -7
  497. data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -8
  498. data/vendor/cmock/examples/temp_sensor/test/TestAdcConductor.c +121 -121
  499. data/vendor/cmock/examples/temp_sensor/test/TestAdcHardware.c +44 -44
  500. data/vendor/cmock/examples/temp_sensor/test/TestAdcHardwareConfigurator.c +43 -43
  501. data/vendor/cmock/examples/temp_sensor/test/TestAdcModel.c +33 -33
  502. data/vendor/cmock/examples/temp_sensor/test/TestAdcTemperatureSensor.c +47 -47
  503. data/vendor/cmock/examples/temp_sensor/test/TestExecutor.c +36 -36
  504. data/vendor/cmock/examples/temp_sensor/test/TestMain.c +24 -24
  505. data/vendor/cmock/examples/temp_sensor/test/TestModel.c +20 -20
  506. data/vendor/cmock/examples/temp_sensor/test/TestTaskScheduler.c +104 -104
  507. data/vendor/cmock/examples/temp_sensor/test/TestTemperatureCalculator.c +33 -33
  508. data/vendor/cmock/examples/temp_sensor/test/TestTemperatureFilter.c +69 -69
  509. data/vendor/cmock/examples/temp_sensor/test/TestTimerConductor.c +32 -32
  510. data/vendor/cmock/examples/temp_sensor/test/TestTimerConfigurator.c +112 -112
  511. data/vendor/cmock/examples/temp_sensor/test/TestTimerHardware.c +26 -26
  512. data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptConfigurator.c +78 -78
  513. data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptHandler.c +66 -66
  514. data/vendor/cmock/examples/temp_sensor/test/TestTimerModel.c +18 -18
  515. data/vendor/cmock/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -21
  516. data/vendor/cmock/examples/temp_sensor/test/TestUsartConductor.c +40 -40
  517. data/vendor/cmock/examples/temp_sensor/test/TestUsartConfigurator.c +77 -77
  518. data/vendor/cmock/examples/temp_sensor/test/TestUsartHardware.c +37 -37
  519. data/vendor/cmock/examples/temp_sensor/test/TestUsartModel.c +40 -40
  520. data/vendor/cmock/examples/temp_sensor/test/TestUsartPutChar.c +43 -43
  521. data/vendor/cmock/examples/temp_sensor/test/TestUsartTransmitBufferStatus.c +22 -22
  522. data/vendor/cmock/lib/cmock.rb +86 -86
  523. data/vendor/cmock/lib/cmock_config.rb +153 -145
  524. data/vendor/cmock/lib/cmock_file_writer.rb +44 -44
  525. data/vendor/cmock/lib/cmock_generator.rb +268 -264
  526. data/vendor/cmock/lib/cmock_generator_plugin_array.rb +63 -63
  527. data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +88 -98
  528. data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +51 -51
  529. data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +103 -104
  530. data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +53 -54
  531. data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +75 -75
  532. data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +42 -42
  533. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +79 -73
  534. data/vendor/cmock/lib/cmock_generator_utils.rb +253 -240
  535. data/vendor/cmock/lib/cmock_header_parser.rb +364 -337
  536. data/vendor/cmock/lib/cmock_plugin_manager.rb +55 -55
  537. data/vendor/cmock/lib/cmock_unityhelper_parser.rb +75 -75
  538. data/vendor/cmock/meson.build +72 -0
  539. data/vendor/cmock/scripts/create_makefile.rb +202 -202
  540. data/vendor/cmock/scripts/create_mock.rb +8 -8
  541. data/vendor/cmock/scripts/create_runner.rb +20 -20
  542. data/vendor/cmock/scripts/test_summary.rb +19 -19
  543. data/vendor/cmock/src/cmock.c +216 -210
  544. data/vendor/cmock/src/cmock.h +40 -38
  545. data/vendor/cmock/src/cmock_internals.h +91 -89
  546. data/vendor/cmock/src/meson.build +17 -0
  547. data/vendor/cmock/test/c/TestCMockC.c +333 -323
  548. data/vendor/cmock/test/c/TestCMockC.yml +14 -13
  549. data/vendor/cmock/test/c/TestCMockCDynamic.c +186 -186
  550. data/vendor/cmock/test/c/TestCMockCDynamic.yml +12 -12
  551. data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +36 -36
  552. data/vendor/cmock/test/c/TestCMockC_Runner.c +41 -39
  553. data/vendor/cmock/test/iar/iar_v4/Resource/at91SAM7X256_FLASH.xcl +185 -185
  554. data/vendor/cmock/test/iar/iar_v4/Resource/at91SAM7X256_RAM.xcl +185 -185
  555. data/vendor/cmock/test/iar/iar_v4/Resource/ioat91sam7x256.ddf +2259 -2259
  556. data/vendor/cmock/test/iar/iar_v4/cmock_demo.dep +3691 -3691
  557. data/vendor/cmock/test/iar/iar_v4/cmock_demo.ewp +2581 -2581
  558. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X-EK.h +61 -61
  559. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.inc +2314 -2314
  560. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.rdf +4704 -4704
  561. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.tcl +3407 -3407
  562. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +2268 -2268
  563. data/vendor/cmock/test/iar/iar_v4/incIAR/ioat91sam7x256.h +4380 -4380
  564. data/vendor/cmock/test/iar/iar_v4/incIAR/lib_AT91SAM7X256.h +4211 -4211
  565. data/vendor/cmock/test/iar/iar_v4/settings/cmock_demo.cspy.bat +32 -32
  566. data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup.s79 +265 -265
  567. data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup_SAM7.c +98 -98
  568. data/vendor/cmock/test/iar/iar_v5/Resource/at91SAM7X256_FLASH.icf +43 -43
  569. data/vendor/cmock/test/iar/iar_v5/Resource/at91SAM7X256_RAM.icf +42 -42
  570. data/vendor/cmock/test/iar/iar_v5/cmock_demo.dep +4204 -4204
  571. data/vendor/cmock/test/iar/iar_v5/cmock_demo.ewp +2426 -2426
  572. data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X-EK.h +61 -61
  573. data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +2268 -2268
  574. data/vendor/cmock/test/iar/iar_v5/incIAR/lib_AT91SAM7X256.h +4211 -4211
  575. data/vendor/cmock/test/iar/iar_v5/incIAR/project.h +30 -30
  576. data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +33 -33
  577. data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +12 -12
  578. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo.cspy.bat +33 -33
  579. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_Binary.jlink +12 -12
  580. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +12 -12
  581. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_RAM_Debug.jlink +12 -12
  582. data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup.s +299 -299
  583. data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup_SAM7.c +98 -98
  584. data/vendor/cmock/test/rakefile +106 -106
  585. data/vendor/cmock/test/rakefile_helper.rb +382 -381
  586. data/vendor/cmock/test/system/systest_generator.rb +193 -194
  587. data/vendor/cmock/test/system/test_compilation/callingconv.h +11 -11
  588. data/vendor/cmock/test/system/test_compilation/config.yml +9 -9
  589. data/vendor/cmock/test/system/test_compilation/const.h +37 -37
  590. data/vendor/cmock/test/system/test_compilation/osek.h +275 -275
  591. data/vendor/cmock/test/system/test_compilation/parsing.h +89 -52
  592. data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +375 -375
  593. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +459 -459
  594. data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +446 -446
  595. data/vendor/cmock/test/system/test_interactions/basic_expect_and_return.yml +124 -124
  596. data/vendor/cmock/test/system/test_interactions/const_primitives_handling.yml +87 -87
  597. data/vendor/cmock/test/system/test_interactions/doesnt_leave_details_behind.yml +308 -308
  598. data/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +247 -247
  599. data/vendor/cmock/test/system/test_interactions/expect_and_return_custom_types.yml +108 -108
  600. data/vendor/cmock/test/system/test_interactions/expect_and_return_treat_as.yml +173 -173
  601. data/vendor/cmock/test/system/test_interactions/expect_and_throw.yml +170 -170
  602. data/vendor/cmock/test/system/test_interactions/expect_any_args.yml +238 -238
  603. data/vendor/cmock/test/system/test_interactions/fancy_pointer_handling.yml +210 -210
  604. data/vendor/cmock/test/system/test_interactions/function_pointer_handling.yml +82 -82
  605. data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +329 -329
  606. data/vendor/cmock/test/system/test_interactions/ignore_strict_mock_calling.yml +37 -37
  607. data/vendor/cmock/test/system/test_interactions/newer_standards_stuff1.yml +52 -52
  608. data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_1.yml +91 -91
  609. data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_2.yml +59 -59
  610. data/vendor/cmock/test/system/test_interactions/out_of_memory.yml +65 -65
  611. data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +242 -242
  612. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_and_expect_any_args.yml +235 -235
  613. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +231 -231
  614. data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return.yml +277 -277
  615. data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return_with_plugins.yml +280 -280
  616. data/vendor/cmock/test/system/test_interactions/stubs_with_callbacks.yml +221 -221
  617. data/vendor/cmock/test/system/test_interactions/unity_64bit_support.yml +77 -77
  618. data/vendor/cmock/test/system/test_interactions/unity_ignores.yml +139 -139
  619. data/vendor/cmock/test/system/test_interactions/unity_void_pointer_compare.yml +91 -0
  620. data/vendor/cmock/test/targets/clang_strict.yml +90 -90
  621. data/vendor/cmock/test/targets/gcc.yml +58 -58
  622. data/vendor/cmock/test/targets/gcc_64.yml +58 -58
  623. data/vendor/cmock/test/targets/gcc_tiny.yml +80 -80
  624. data/vendor/cmock/test/targets/iar_arm_v4.yml +110 -110
  625. data/vendor/cmock/test/targets/iar_arm_v5.yml +95 -95
  626. data/vendor/cmock/test/test_helper.rb +44 -44
  627. data/vendor/cmock/test/unit/cmock_config_test.rb +120 -120
  628. data/vendor/cmock/test/unit/cmock_config_test.yml +5 -5
  629. data/vendor/cmock/test/unit/cmock_file_writer_test.rb +27 -27
  630. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +548 -542
  631. data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +141 -141
  632. data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +281 -259
  633. data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +96 -96
  634. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +183 -186
  635. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +67 -60
  636. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +200 -203
  637. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +116 -116
  638. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +105 -105
  639. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +136 -136
  640. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +415 -394
  641. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +1728 -1699
  642. data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +100 -91
  643. data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +223 -223
  644. data/vendor/cmock/vendor/behaviors/Manifest.txt +9 -9
  645. data/vendor/cmock/vendor/behaviors/Rakefile +19 -19
  646. data/vendor/cmock/vendor/behaviors/lib/behaviors.rb +76 -76
  647. data/vendor/cmock/vendor/behaviors/lib/behaviors/reporttask.rb +158 -158
  648. data/vendor/cmock/vendor/behaviors/test/behaviors_tasks_test.rb +73 -73
  649. data/vendor/cmock/vendor/behaviors/test/behaviors_test.rb +50 -50
  650. data/vendor/cmock/vendor/behaviors/test/tasks_test/Rakefile +19 -19
  651. data/vendor/cmock/vendor/behaviors/test/tasks_test/lib/user.rb +2 -2
  652. data/vendor/cmock/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -17
  653. data/vendor/cmock/vendor/c_exception/Gemfile +4 -4
  654. data/vendor/cmock/vendor/c_exception/Gemfile.lock +12 -12
  655. data/vendor/cmock/vendor/c_exception/LICENSE.txt +30 -30
  656. data/vendor/cmock/vendor/c_exception/README.md +162 -162
  657. data/vendor/cmock/vendor/c_exception/Rakefile +42 -42
  658. data/vendor/cmock/vendor/c_exception/docs/CException.md +292 -292
  659. data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -207
  660. data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -46
  661. data/vendor/cmock/vendor/c_exception/lib/CException.h +115 -110
  662. data/vendor/cmock/vendor/c_exception/makefile +23 -23
  663. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +46 -46
  664. data/vendor/cmock/vendor/c_exception/test/TestException.c +391 -391
  665. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +67 -67
  666. data/vendor/cmock/vendor/unity/CMakeLists.txt +31 -0
  667. data/vendor/{unity/docs/license.txt → cmock/vendor/unity/LICENSE.txt} +21 -21
  668. data/vendor/cmock/vendor/unity/README.md +191 -231
  669. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +119 -118
  670. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -39
  671. data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -36
  672. data/vendor/cmock/vendor/unity/auto/generate_module.rb +309 -308
  673. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +495 -457
  674. data/vendor/cmock/vendor/unity/auto/parse_output.rb +322 -323
  675. data/vendor/cmock/vendor/unity/auto/run_test.erb +36 -0
  676. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +251 -252
  677. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +25 -25
  678. data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +6 -6
  679. data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +139 -139
  680. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +135 -136
  681. data/vendor/cmock/vendor/unity/auto/unity_to_junit.py +146 -146
  682. data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +206 -206
  683. data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +850 -779
  684. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +541 -433
  685. data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +251 -192
  686. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +266 -260
  687. data/vendor/cmock/vendor/unity/examples/example_1/makefile +72 -71
  688. data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +4 -4
  689. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +24 -24
  690. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +3 -3
  691. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -11
  692. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -2
  693. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -62
  694. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -31
  695. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -53
  696. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -57
  697. data/vendor/cmock/vendor/unity/examples/example_2/makefile +71 -70
  698. data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +4 -4
  699. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +24 -24
  700. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +3 -3
  701. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -11
  702. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -2
  703. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -64
  704. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -33
  705. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +8 -8
  706. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +10 -10
  707. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -12
  708. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -10
  709. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -12
  710. data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +38 -43
  711. data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +250 -249
  712. data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +13 -13
  713. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +24 -24
  714. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +3 -3
  715. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -11
  716. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -2
  717. data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +47 -46
  718. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -62
  719. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -31
  720. data/vendor/cmock/vendor/unity/examples/example_4/meson.build +17 -0
  721. data/vendor/cmock/vendor/unity/examples/example_4/readme.txt +15 -0
  722. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.c +24 -0
  723. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.h +3 -0
  724. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.c +11 -0
  725. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.h +2 -0
  726. data/vendor/cmock/vendor/unity/examples/example_4/src/meson.build +21 -0
  727. data/vendor/cmock/vendor/unity/examples/example_4/subprojects/unity.wrap +4 -0
  728. data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode.c +63 -0
  729. data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode2.c +35 -0
  730. data/vendor/cmock/vendor/unity/examples/example_4/test/meson.build +12 -0
  731. data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
  732. data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
  733. data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/meson.build +16 -0
  734. data/vendor/cmock/vendor/unity/examples/unity_config.h +263 -247
  735. data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +26 -26
  736. data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +44 -48
  737. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +183 -178
  738. data/vendor/cmock/vendor/unity/extras/fixture/readme.md +17 -0
  739. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +275 -436
  740. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +83 -83
  741. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +50 -51
  742. data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +72 -75
  743. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +20 -22
  744. data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -39
  745. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +245 -543
  746. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +32 -57
  747. data/vendor/cmock/vendor/unity/extras/memory/rakefile.rb +45 -0
  748. data/vendor/cmock/vendor/unity/extras/memory/rakefile_helper.rb +187 -0
  749. data/vendor/cmock/vendor/unity/extras/memory/readme.md +49 -0
  750. data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.c +202 -0
  751. data/vendor/cmock/vendor/unity/extras/{fixture/src/unity_fixture_malloc_overrides.h → memory/src/unity_memory.h} +60 -47
  752. data/vendor/cmock/vendor/unity/extras/memory/test/Makefile +78 -0
  753. data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_Test.c +325 -0
  754. data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +49 -0
  755. data/vendor/{unity/extras/fixture → cmock/vendor/unity/extras/memory}/test/unity_output_Spy.c +56 -57
  756. data/vendor/{unity/extras/fixture → cmock/vendor/unity/extras/memory}/test/unity_output_Spy.h +16 -17
  757. data/vendor/cmock/vendor/unity/meson.build +69 -0
  758. data/vendor/cmock/vendor/unity/src/CMakeLists.txt +22 -0
  759. data/vendor/cmock/vendor/unity/src/meson.build +16 -0
  760. data/vendor/cmock/vendor/unity/src/unity.c +2085 -1572
  761. data/vendor/cmock/vendor/unity/src/unity.h +617 -503
  762. data/vendor/cmock/vendor/unity/src/unity_internals.h +1002 -924
  763. data/vendor/cmock/vendor/unity/test/Makefile +67 -68
  764. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +61 -61
  765. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +57 -57
  766. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +55 -55
  767. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +15 -15
  768. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -80
  769. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +76 -76
  770. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -75
  771. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -13
  772. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -89
  773. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -89
  774. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +77 -77
  775. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -89
  776. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -89
  777. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -90
  778. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +67 -67
  779. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +70 -70
  780. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +58 -58
  781. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +67 -67
  782. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +70 -70
  783. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +71 -71
  784. data/vendor/cmock/vendor/unity/test/rakefile +124 -125
  785. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +269 -260
  786. data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -158
  787. data/vendor/cmock/vendor/unity/test/targets/ansi.yml +49 -0
  788. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +78 -78
  789. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +78 -78
  790. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +49 -49
  791. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +50 -50
  792. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +47 -47
  793. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -59
  794. data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +47 -47
  795. data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +101 -101
  796. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +90 -90
  797. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +80 -80
  798. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +80 -80
  799. data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +94 -94
  800. data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +84 -84
  801. data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +95 -95
  802. data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +86 -86
  803. data/vendor/cmock/vendor/unity/test/testdata/CException.h +11 -11
  804. data/vendor/cmock/vendor/unity/test/testdata/Defs.h +8 -8
  805. data/vendor/cmock/vendor/unity/test/testdata/cmock.h +14 -14
  806. data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +13 -13
  807. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +189 -186
  808. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +70 -70
  809. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +197 -195
  810. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1268 -1252
  811. data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +171 -113
  812. data/vendor/cmock/vendor/unity/test/tests/testunity.c +8168 -5371
  813. data/vendor/deep_merge/MIT-LICENSE +20 -20
  814. data/vendor/deep_merge/README +94 -94
  815. data/vendor/deep_merge/Rakefile +28 -28
  816. data/vendor/deep_merge/lib/deep_merge.rb +211 -211
  817. data/vendor/deep_merge/test/test_deep_merge.rb +553 -553
  818. data/vendor/diy/History.txt +28 -28
  819. data/vendor/diy/README.rdoc +233 -233
  820. data/vendor/diy/Rakefile +33 -33
  821. data/vendor/diy/TODO.txt +9 -9
  822. data/vendor/diy/diy.gemspec +131 -131
  823. data/vendor/diy/lib/diy.rb +403 -403
  824. data/vendor/diy/lib/diy/factory.rb +36 -36
  825. data/vendor/diy/sample_code/car.rb +7 -7
  826. data/vendor/diy/sample_code/chassis.rb +5 -5
  827. data/vendor/diy/sample_code/diy_example.rb +26 -26
  828. data/vendor/diy/sample_code/engine.rb +5 -5
  829. data/vendor/diy/sample_code/objects.yml +10 -10
  830. data/vendor/diy/test/constructor.rb +119 -119
  831. data/vendor/diy/test/diy_test.rb +608 -608
  832. data/vendor/diy/test/factory_test.rb +79 -79
  833. data/vendor/diy/test/files/broken_construction.yml +7 -7
  834. data/vendor/diy/test/files/cat/cat.rb +3 -3
  835. data/vendor/diy/test/files/cat/extra_conflict.yml +5 -5
  836. data/vendor/diy/test/files/cat/heritage.rb +2 -2
  837. data/vendor/diy/test/files/cat/needs_input.yml +3 -3
  838. data/vendor/diy/test/files/cat/the_cat_lineage.rb +1 -1
  839. data/vendor/diy/test/files/dog/dog_model.rb +3 -3
  840. data/vendor/diy/test/files/dog/dog_presenter.rb +3 -3
  841. data/vendor/diy/test/files/dog/dog_view.rb +2 -2
  842. data/vendor/diy/test/files/dog/file_resolver.rb +2 -2
  843. data/vendor/diy/test/files/dog/other_thing.rb +2 -2
  844. data/vendor/diy/test/files/dog/simple.yml +11 -11
  845. data/vendor/diy/test/files/donkey/foo.rb +8 -8
  846. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +7 -7
  847. data/vendor/diy/test/files/factory/beef.rb +5 -5
  848. data/vendor/diy/test/files/factory/dog.rb +6 -6
  849. data/vendor/diy/test/files/factory/factory.yml +19 -19
  850. data/vendor/diy/test/files/factory/farm/llama.rb +7 -7
  851. data/vendor/diy/test/files/factory/farm/pork.rb +7 -7
  852. data/vendor/diy/test/files/factory/kitten.rb +13 -13
  853. data/vendor/diy/test/files/fud/objects.yml +13 -13
  854. data/vendor/diy/test/files/fud/toy.rb +14 -14
  855. data/vendor/diy/test/files/functions/attached_things_builder.rb +1 -1
  856. data/vendor/diy/test/files/functions/invalid_method.yml +4 -4
  857. data/vendor/diy/test/files/functions/method_extractor.rb +2 -2
  858. data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -5
  859. data/vendor/diy/test/files/functions/objects.yml +21 -21
  860. data/vendor/diy/test/files/functions/thing.rb +2 -2
  861. data/vendor/diy/test/files/functions/thing_builder.rb +24 -24
  862. data/vendor/diy/test/files/functions/things_builder.rb +2 -2
  863. data/vendor/diy/test/files/gnu/objects.yml +14 -14
  864. data/vendor/diy/test/files/gnu/thinger.rb +7 -7
  865. data/vendor/diy/test/files/goat/base.rb +8 -8
  866. data/vendor/diy/test/files/goat/can.rb +6 -6
  867. data/vendor/diy/test/files/goat/goat.rb +6 -6
  868. data/vendor/diy/test/files/goat/objects.yml +12 -12
  869. data/vendor/diy/test/files/goat/paper.rb +6 -6
  870. data/vendor/diy/test/files/goat/plane.rb +7 -7
  871. data/vendor/diy/test/files/goat/shirt.rb +6 -6
  872. data/vendor/diy/test/files/goat/wings.rb +8 -8
  873. data/vendor/diy/test/files/horse/holder_thing.rb +3 -3
  874. data/vendor/diy/test/files/horse/objects.yml +7 -7
  875. data/vendor/diy/test/files/namespace/animal/bird.rb +5 -5
  876. data/vendor/diy/test/files/namespace/animal/cat.rb +5 -5
  877. data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +8 -8
  878. data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +7 -7
  879. data/vendor/diy/test/files/namespace/bad_module_specified.yml +8 -8
  880. data/vendor/diy/test/files/namespace/class_name_combine.yml +8 -8
  881. data/vendor/diy/test/files/namespace/no_module_specified.yml +8 -8
  882. data/vendor/diy/test/files/namespace/objects.yml +21 -21
  883. data/vendor/diy/test/files/namespace/road.rb +2 -2
  884. data/vendor/diy/test/files/namespace/sky.rb +2 -2
  885. data/vendor/diy/test/files/namespace/subcontext.yml +22 -22
  886. data/vendor/diy/test/files/non_singleton/air.rb +2 -2
  887. data/vendor/diy/test/files/non_singleton/fat_cat.rb +3 -3
  888. data/vendor/diy/test/files/non_singleton/objects.yml +19 -19
  889. data/vendor/diy/test/files/non_singleton/pig.rb +3 -3
  890. data/vendor/diy/test/files/non_singleton/thread_spinner.rb +3 -3
  891. data/vendor/diy/test/files/non_singleton/tick.rb +3 -3
  892. data/vendor/diy/test/files/non_singleton/yard.rb +2 -2
  893. data/vendor/diy/test/files/yak/core_model.rb +3 -3
  894. data/vendor/diy/test/files/yak/core_presenter.rb +3 -3
  895. data/vendor/diy/test/files/yak/core_view.rb +1 -1
  896. data/vendor/diy/test/files/yak/data_source.rb +1 -1
  897. data/vendor/diy/test/files/yak/fringe_model.rb +3 -3
  898. data/vendor/diy/test/files/yak/fringe_presenter.rb +3 -3
  899. data/vendor/diy/test/files/yak/fringe_view.rb +1 -1
  900. data/vendor/diy/test/files/yak/giant_squid.rb +3 -3
  901. data/vendor/diy/test/files/yak/krill.rb +2 -2
  902. data/vendor/diy/test/files/yak/my_objects.yml +21 -21
  903. data/vendor/diy/test/files/yak/sub_sub_context_test.yml +27 -27
  904. data/vendor/diy/test/test_helper.rb +55 -55
  905. data/vendor/hardmock/CHANGES +78 -78
  906. data/vendor/hardmock/LICENSE +7 -7
  907. data/vendor/hardmock/README +70 -70
  908. data/vendor/hardmock/Rakefile +8 -8
  909. data/vendor/hardmock/config/environment.rb +12 -12
  910. data/vendor/hardmock/lib/assert_error.rb +23 -23
  911. data/vendor/hardmock/lib/extend_test_unit.rb +14 -14
  912. data/vendor/hardmock/lib/hardmock.rb +86 -86
  913. data/vendor/hardmock/lib/hardmock/errors.rb +22 -22
  914. data/vendor/hardmock/lib/hardmock/expectation.rb +229 -229
  915. data/vendor/hardmock/lib/hardmock/expectation_builder.rb +9 -9
  916. data/vendor/hardmock/lib/hardmock/expector.rb +26 -26
  917. data/vendor/hardmock/lib/hardmock/method_cleanout.rb +33 -33
  918. data/vendor/hardmock/lib/hardmock/mock.rb +180 -180
  919. data/vendor/hardmock/lib/hardmock/mock_control.rb +53 -53
  920. data/vendor/hardmock/lib/hardmock/stubbing.rb +210 -210
  921. data/vendor/hardmock/lib/hardmock/trapper.rb +31 -31
  922. data/vendor/hardmock/lib/hardmock/utils.rb +9 -9
  923. data/vendor/hardmock/lib/test_unit_before_after.rb +169 -169
  924. data/vendor/hardmock/rake_tasks/rdoc.rake +19 -19
  925. data/vendor/hardmock/rake_tasks/rdoc_options.rb +4 -4
  926. data/vendor/hardmock/rake_tasks/test.rake +22 -22
  927. data/vendor/hardmock/test/functional/assert_error_test.rb +52 -52
  928. data/vendor/hardmock/test/functional/auto_verify_test.rb +178 -178
  929. data/vendor/hardmock/test/functional/direct_mock_usage_test.rb +396 -396
  930. data/vendor/hardmock/test/functional/hardmock_test.rb +434 -434
  931. data/vendor/hardmock/test/functional/stubbing_test.rb +479 -479
  932. data/vendor/hardmock/test/test_helper.rb +43 -43
  933. data/vendor/hardmock/test/unit/expectation_builder_test.rb +19 -19
  934. data/vendor/hardmock/test/unit/expectation_test.rb +372 -372
  935. data/vendor/hardmock/test/unit/expector_test.rb +57 -57
  936. data/vendor/hardmock/test/unit/method_cleanout_test.rb +36 -36
  937. data/vendor/hardmock/test/unit/mock_control_test.rb +175 -175
  938. data/vendor/hardmock/test/unit/mock_test.rb +279 -279
  939. data/vendor/hardmock/test/unit/test_unit_before_after_test.rb +452 -452
  940. data/vendor/hardmock/test/unit/trapper_test.rb +62 -62
  941. data/vendor/hardmock/test/unit/verify_error_test.rb +40 -40
  942. data/vendor/unity/CMakeLists.txt +31 -0
  943. data/vendor/unity/LICENSE.txt +21 -0
  944. data/vendor/unity/README.md +191 -231
  945. data/vendor/unity/auto/colour_prompt.rb +119 -118
  946. data/vendor/unity/auto/colour_reporter.rb +39 -39
  947. data/vendor/unity/auto/generate_config.yml +36 -36
  948. data/vendor/unity/auto/generate_module.rb +309 -308
  949. data/vendor/unity/auto/generate_test_runner.rb +495 -457
  950. data/vendor/unity/auto/parse_output.rb +322 -323
  951. data/vendor/unity/auto/run_test.erb +36 -0
  952. data/vendor/unity/auto/stylize_as_junit.rb +251 -252
  953. data/vendor/unity/auto/test_file_filter.rb +25 -25
  954. data/vendor/unity/auto/type_sanitizer.rb +6 -6
  955. data/vendor/unity/auto/unity_test_summary.py +139 -139
  956. data/vendor/unity/auto/unity_test_summary.rb +135 -136
  957. data/vendor/unity/auto/unity_to_junit.py +146 -146
  958. data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +206 -206
  959. data/vendor/unity/docs/UnityAssertionsReference.md +850 -779
  960. data/vendor/unity/docs/UnityConfigurationGuide.md +541 -433
  961. data/vendor/unity/docs/UnityGettingStartedGuide.md +251 -192
  962. data/vendor/unity/docs/UnityHelperScriptsGuide.md +266 -260
  963. data/vendor/unity/examples/example_1/makefile +72 -71
  964. data/vendor/unity/examples/example_1/readme.txt +4 -4
  965. data/vendor/unity/examples/example_1/src/ProductionCode.c +24 -24
  966. data/vendor/unity/examples/example_1/src/ProductionCode.h +3 -3
  967. data/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -11
  968. data/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -2
  969. data/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -62
  970. data/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -31
  971. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -53
  972. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -57
  973. data/vendor/unity/examples/example_2/makefile +71 -70
  974. data/vendor/unity/examples/example_2/readme.txt +4 -4
  975. data/vendor/unity/examples/example_2/src/ProductionCode.c +24 -24
  976. data/vendor/unity/examples/example_2/src/ProductionCode.h +3 -3
  977. data/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -11
  978. data/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -2
  979. data/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -64
  980. data/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -33
  981. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +8 -8
  982. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +10 -10
  983. data/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -12
  984. data/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -10
  985. data/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -12
  986. data/vendor/unity/examples/example_3/rakefile.rb +38 -43
  987. data/vendor/unity/examples/example_3/rakefile_helper.rb +250 -249
  988. data/vendor/unity/examples/example_3/readme.txt +13 -13
  989. data/vendor/unity/examples/example_3/src/ProductionCode.c +24 -24
  990. data/vendor/unity/examples/example_3/src/ProductionCode.h +3 -3
  991. data/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -11
  992. data/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -2
  993. data/vendor/unity/examples/example_3/target_gcc_32.yml +47 -46
  994. data/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -62
  995. data/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -31
  996. data/vendor/unity/examples/example_4/meson.build +17 -0
  997. data/vendor/unity/examples/example_4/readme.txt +15 -0
  998. data/vendor/unity/examples/example_4/src/ProductionCode.c +24 -0
  999. data/vendor/unity/examples/example_4/src/ProductionCode.h +3 -0
  1000. data/vendor/unity/examples/example_4/src/ProductionCode2.c +11 -0
  1001. data/vendor/unity/examples/example_4/src/ProductionCode2.h +2 -0
  1002. data/vendor/unity/examples/example_4/src/meson.build +21 -0
  1003. data/vendor/unity/examples/example_4/subprojects/unity.wrap +4 -0
  1004. data/vendor/unity/examples/example_4/test/TestProductionCode.c +63 -0
  1005. data/vendor/unity/examples/example_4/test/TestProductionCode2.c +35 -0
  1006. data/vendor/unity/examples/example_4/test/meson.build +12 -0
  1007. data/vendor/unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -0
  1008. data/vendor/unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -0
  1009. data/vendor/unity/examples/example_4/test/test_runners/meson.build +16 -0
  1010. data/vendor/unity/examples/unity_config.h +263 -247
  1011. data/vendor/unity/extras/eclipse/error_parsers.txt +26 -26
  1012. data/vendor/unity/extras/fixture/rakefile.rb +44 -48
  1013. data/vendor/unity/extras/fixture/rakefile_helper.rb +183 -178
  1014. data/vendor/unity/extras/fixture/readme.md +17 -0
  1015. data/vendor/unity/extras/fixture/src/unity_fixture.c +275 -436
  1016. data/vendor/unity/extras/fixture/src/unity_fixture.h +83 -83
  1017. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +50 -51
  1018. data/vendor/unity/extras/fixture/test/Makefile +72 -75
  1019. data/vendor/unity/extras/fixture/test/main/AllTests.c +20 -22
  1020. data/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -39
  1021. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +245 -543
  1022. data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +32 -57
  1023. data/vendor/unity/extras/memory/rakefile.rb +45 -0
  1024. data/vendor/unity/extras/memory/rakefile_helper.rb +187 -0
  1025. data/vendor/unity/extras/memory/readme.md +49 -0
  1026. data/vendor/unity/extras/memory/src/unity_memory.c +202 -0
  1027. data/vendor/unity/extras/memory/src/unity_memory.h +60 -0
  1028. data/vendor/unity/extras/memory/test/Makefile +78 -0
  1029. data/vendor/unity/extras/memory/test/unity_memory_Test.c +325 -0
  1030. data/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +49 -0
  1031. data/vendor/unity/extras/memory/test/unity_output_Spy.c +56 -0
  1032. data/vendor/unity/extras/memory/test/unity_output_Spy.h +16 -0
  1033. data/vendor/unity/meson.build +69 -0
  1034. data/vendor/unity/src/CMakeLists.txt +22 -0
  1035. data/vendor/unity/src/meson.build +16 -0
  1036. data/vendor/unity/src/unity.c +2085 -1572
  1037. data/vendor/unity/src/unity.h +617 -503
  1038. data/vendor/unity/src/unity_internals.h +1002 -924
  1039. data/vendor/unity/test/Makefile +67 -68
  1040. data/vendor/unity/test/expectdata/testsample_cmd.c +61 -61
  1041. data/vendor/unity/test/expectdata/testsample_def.c +57 -57
  1042. data/vendor/unity/test/expectdata/testsample_head1.c +55 -55
  1043. data/vendor/unity/test/expectdata/testsample_head1.h +15 -15
  1044. data/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -80
  1045. data/vendor/unity/test/expectdata/testsample_mock_def.c +76 -76
  1046. data/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -75
  1047. data/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -13
  1048. data/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -89
  1049. data/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -89
  1050. data/vendor/unity/test/expectdata/testsample_mock_param.c +77 -77
  1051. data/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -89
  1052. data/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -89
  1053. data/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -90
  1054. data/vendor/unity/test/expectdata/testsample_new1.c +67 -67
  1055. data/vendor/unity/test/expectdata/testsample_new2.c +70 -70
  1056. data/vendor/unity/test/expectdata/testsample_param.c +58 -58
  1057. data/vendor/unity/test/expectdata/testsample_run1.c +67 -67
  1058. data/vendor/unity/test/expectdata/testsample_run2.c +70 -70
  1059. data/vendor/unity/test/expectdata/testsample_yaml.c +71 -71
  1060. data/vendor/unity/test/rakefile +124 -125
  1061. data/vendor/unity/test/rakefile_helper.rb +269 -260
  1062. data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -158
  1063. data/vendor/unity/test/targets/ansi.yml +49 -0
  1064. data/vendor/unity/test/targets/clang_file.yml +78 -78
  1065. data/vendor/unity/test/targets/clang_strict.yml +78 -78
  1066. data/vendor/unity/test/targets/gcc_32.yml +49 -49
  1067. data/vendor/unity/test/targets/gcc_64.yml +50 -50
  1068. data/vendor/unity/test/targets/gcc_auto_limits.yml +47 -47
  1069. data/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -59
  1070. data/vendor/unity/test/targets/gcc_manual_math.yml +47 -47
  1071. data/vendor/unity/test/targets/hitech_picc18.yml +101 -101
  1072. data/vendor/unity/test/targets/iar_arm_v4.yml +90 -90
  1073. data/vendor/unity/test/targets/iar_arm_v5.yml +80 -80
  1074. data/vendor/unity/test/targets/iar_arm_v5_3.yml +80 -80
  1075. data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +94 -94
  1076. data/vendor/unity/test/targets/iar_cortexm3_v5.yml +84 -84
  1077. data/vendor/unity/test/targets/iar_msp430.yml +95 -95
  1078. data/vendor/unity/test/targets/iar_sh2a_v6.yml +86 -86
  1079. data/vendor/unity/test/testdata/CException.h +11 -11
  1080. data/vendor/unity/test/testdata/Defs.h +8 -8
  1081. data/vendor/unity/test/testdata/cmock.h +14 -14
  1082. data/vendor/unity/test/testdata/mockMock.h +13 -13
  1083. data/vendor/unity/test/testdata/testRunnerGenerator.c +189 -186
  1084. data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +70 -70
  1085. data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +197 -195
  1086. data/vendor/unity/test/tests/test_generate_test_runner.rb +1268 -1252
  1087. data/vendor/unity/test/tests/testparameterized.c +171 -113
  1088. data/vendor/unity/test/tests/testunity.c +8168 -5371
  1089. metadata +201 -27
  1090. data/lib/ceedling/version.rb.erb +0 -15
  1091. data/vendor/c_exception/release/build.info +0 -2
  1092. data/vendor/c_exception/release/version.info +0 -2
  1093. data/vendor/cmock/release/build.info +0 -2
  1094. data/vendor/cmock/release/version.info +0 -2
  1095. data/vendor/cmock/vendor/c_exception/release/build.info +0 -2
  1096. data/vendor/cmock/vendor/c_exception/release/version.info +0 -2
  1097. data/vendor/cmock/vendor/unity/release/build.info +0 -2
  1098. data/vendor/cmock/vendor/unity/release/version.info +0 -2
  1099. data/vendor/unity/extras/fixture/readme.txt +0 -9
  1100. data/vendor/unity/release/build.info +0 -2
  1101. data/vendor/unity/release/version.info +0 -2
@@ -1,779 +1,850 @@
1
- # Unity Assertions Reference
2
-
3
- ## Background and Overview
4
-
5
- ### Super Condensed Version
6
-
7
- - An assertion establishes truth (i.e. boolean True) for a single condition.
8
- Upon boolean False, an assertion stops execution and reports the failure.
9
- - Unity is mainly a rich collection of assertions and the support to gather up
10
- and easily execute those assertions.
11
- - The structure of Unity allows you to easily separate test assertions from
12
- source code in, well, test code.
13
- - Unity's assertions:
14
- - Come in many, many flavors to handle different C types and assertion cases.
15
- - Use context to provide detailed and helpful failure messages.
16
- - Document types, expected values, and basic behavior in your source code for
17
- free.
18
-
19
-
20
- ### Unity Is Several Things But Mainly It's Assertions
21
-
22
- One way to think of Unity is simply as a rich collection of assertions you can
23
- use to establish whether your source code behaves the way you think it does.
24
- Unity provides a framework to easily organize and execute those assertions in
25
- test code separate from your source code.
26
-
27
-
28
- ### What's an Assertion?
29
-
30
- At their core, assertions are an establishment of truth - boolean truth. Was this
31
- thing equal to that thing? Does that code doohickey have such-and-such property
32
- or not? You get the idea. Assertions are executable code (to appreciate the big
33
- picture on this read up on the difference between
34
- [link:Dynamic Verification and Static Analysis]). A failing assertion stops
35
- execution and reports an error through some appropriate I/O channel (e.g.
36
- stdout, GUI, file, blinky light).
37
-
38
- Fundamentally, for dynamic verification all you need is a single assertion
39
- mechanism. In fact, that's what the [assert() macro in C's standard library](http://en.wikipedia.org/en/wiki/Assert.h)
40
- is for. So why not just use it? Well, we can do far better in the reporting
41
- department. C's `assert()` is pretty dumb as-is and is particularly poor for
42
- handling common data types like arrays, structs, etc. And, without some other
43
- support, it's far too tempting to litter source code with C's `assert()`'s. It's
44
- generally much cleaner, manageable, and more useful to separate test and source
45
- code in the way Unity facilitates.
46
-
47
-
48
- ### Unity's Assertions: Helpful Messages _and_ Free Source Code Documentation
49
-
50
- Asserting a simple truth condition is valuable, but using the context of the
51
- assertion is even more valuable. For instance, if you know you're comparing bit
52
- flags and not just integers, then why not use that context to give explicit,
53
- readable, bit-level feedback when an assertion fails?
54
-
55
- That's what Unity's collection of assertions do - capture context to give you
56
- helpful, meaningful assertion failure messages. In fact, the assertions
57
- themselves also serve as executable documentation about types and values in your
58
- source code. So long as your tests remain current with your source and all those
59
- tests pass, you have a detailed, up-to-date view of the intent and mechanisms in
60
- your source code. And due to a wondrous mystery, well-tested code usually tends
61
- to be well designed code.
62
-
63
-
64
- ## Assertion Conventions and Configurations
65
-
66
- ### Naming and Parameter Conventions
67
-
68
- The convention of assertion parameters generally follows this order:
69
-
70
- TEST_ASSERT_X( {modifiers}, {expected}, actual, {size/count} )
71
-
72
- The very simplest assertion possible uses only a single "actual" parameter (e.g.
73
- a simple null check).
74
-
75
- "Actual" is the value being tested and unlike the other parameters in an
76
- assertion construction is the only parameter present in all assertion variants.
77
- "Modifiers" are masks, ranges, bit flag specifiers, floating point deltas.
78
- "Expected" is your expected value (duh) to compare to an "actual" value; it's
79
- marked as an optional parameter because some assertions only need a single
80
- "actual" parameter (e.g. null check).
81
- "Size/count" refers to string lengths, number of array elements, etc.
82
-
83
- Many of Unity's assertions are clear duplications in that the same data type
84
- is handled by several assertions. The differences among these are in how failure
85
- messages are presented. For instance, a `_HEX` variant of an assertion prints
86
- the expected and actual values of that assertion formatted as hexadecimal.
87
-
88
-
89
- #### TEST_ASSERT_X_MESSAGE Variants
90
-
91
- _All_ assertions are complemented with a variant that includes a simple string
92
- message as a final parameter. The string you specify is appended to an assertion
93
- failure message in Unity output.
94
-
95
- For brevity, the assertion variants with a message parameter are not listed
96
- below. Just tack on `_MESSAGE` as the final component to any assertion name in
97
- the reference list below and add a string as the final parameter.
98
-
99
- _Example:_
100
-
101
- TEST_ASSERT_X( {modifiers}, {expected}, actual, {size/count} )
102
-
103
- becomes messageified like thus...
104
-
105
- TEST_ASSERT_X_MESSAGE( {modifiers}, {expected}, actual, {size/count}, message )
106
-
107
- Notes:
108
- - The `_MESSAGE` variants intentionally do not support `printf` style formatting
109
- since many embedded projects don't support or avoid `printf` for various reasons.
110
- It is possible to use `sprintf` before the assertion to assemble a complex fail
111
- message, if necessary.
112
- - If you want to output a counter value within an assertion fail message (e.g. from
113
- a loop) , building up an array of results and then using one of the `_ARRAY`
114
- assertions (see below) might be a handy alternative to `sprintf`.
115
-
116
-
117
- #### TEST_ASSERT_X_ARRAY Variants
118
-
119
- Unity provides a collection of assertions for arrays containing a variety of
120
- types. These are documented in the Array section below. These are almost on par
121
- with the `_MESSAGE`variants of Unity's Asserts in that for pretty much any Unity
122
- type assertion you can tack on `_ARRAY` and run assertions on an entire block of
123
- memory.
124
-
125
- TEST_ASSERT_EQUAL_TYPEX_ARRAY( expected, actual, {size/count} )
126
-
127
- "Expected" is an array itself.
128
- "Size/count" is one or two parameters necessary to establish the number of array
129
- elements and perhaps the length of elements within the array.
130
-
131
- Notes:
132
- - The `_MESSAGE` variant convention still applies here to array assertions. The
133
- `_MESSAGE` variants of the `_ARRAY` assertions have names ending with
134
- `_ARRAY_MESSAGE`.
135
- - Assertions for handling arrays of floating point values are grouped with float
136
- and double assertions (see immediately following section).
137
-
138
-
139
- ### TEST_ASSERT_EACH_EQUAL_X Variants
140
-
141
- Unity provides a collection of assertions for arrays containing a variety of
142
- types which can be compared to a single value as well. These are documented in
143
- the Each Equal section below. these are almost on par with the `_MESSAGE`
144
- variants of Unity's Asserts in that for pretty much any Unity type assertion you
145
- can inject _EACH_EQUAL and run assertions on an entire block of memory.
146
-
147
- TEST_ASSERT_EACH_EQUAL_TYPEX( expected, actual, {size/count} )
148
-
149
- "Expected" is a single value to compare to.
150
- "Actual" is an array where each element will be compared to the expected value.
151
- "Size/count" is one of two parameters necessary to establish the number of array
152
- elements and perhaps the length of elements within the array.
153
-
154
- Notes:
155
- - The `_MESSAGE` variant convention still applies here to Each Equal assertions.
156
- - Assertions for handling Each Equal of floating point values are grouped with
157
- float and double assertions (see immediately following section).
158
-
159
-
160
- ### Configuration
161
-
162
- #### Floating Point Support Is Optional
163
-
164
- Support for floating point types is configurable. That is, by defining the
165
- appropriate preprocessor symbols, floats and doubles can be individually enabled
166
- or disabled in Unity code. This is useful for embedded targets with no floating
167
- point math support (i.e. Unity compiles free of errors for fixed point only
168
- platforms). See Unity documentation for specifics.
169
-
170
-
171
- #### Maximum Data Type Width Is Configurable
172
-
173
- Not all targets support 64 bit wide types or even 32 bit wide types. Define the
174
- appropriate preprocessor symbols and Unity will omit all operations from
175
- compilation that exceed the maximum width of your target. See Unity
176
- documentation for specifics.
177
-
178
-
179
- ## The Assertions in All Their Blessed Glory
180
-
181
- ### Basic Fail and Ignore
182
-
183
- ##### `TEST_FAIL()`
184
-
185
- This fella is most often used in special conditions where your test code is
186
- performing logic beyond a simple assertion. That is, in practice, `TEST_FAIL()`
187
- will always be found inside a conditional code block.
188
-
189
- _Examples:_
190
- - Executing a state machine multiple times that increments a counter your test
191
- code then verifies as a final step.
192
- - Triggering an exception and verifying it (as in Try / Catch / Throw - see the
193
- [CException](https://github.com/ThrowTheSwitch/CException) project).
194
-
195
- ##### `TEST_IGNORE()`
196
-
197
- Marks a test case (i.e. function meant to contain test assertions) as ignored.
198
- Usually this is employed as a breadcrumb to come back and implement a test case.
199
- An ignored test case has effects if other assertions are in the enclosing test
200
- case (see Unity documentation for more).
201
-
202
- ### Boolean
203
-
204
- ##### `TEST_ASSERT (condition)`
205
-
206
- ##### `TEST_ASSERT_TRUE (condition)`
207
-
208
- ##### `TEST_ASSERT_FALSE (condition)`
209
-
210
- ##### `TEST_ASSERT_UNLESS (condition)`
211
-
212
- A simple wording variation on `TEST_ASSERT_FALSE`.The semantics of
213
- `TEST_ASSERT_UNLESS` aid readability in certain test constructions or
214
- conditional statements.
215
-
216
- ##### `TEST_ASSERT_NULL (pointer)`
217
-
218
- ##### `TEST_ASSERT_NOT_NULL (pointer)`
219
-
220
-
221
- ### Signed and Unsigned Integers (of all sizes)
222
-
223
- Large integer sizes can be disabled for build targets that do not support them.
224
- For example, if your target only supports up to 16 bit types, by defining the
225
- appropriate symbols Unity can be configured to omit 32 and 64 bit operations
226
- that would break compilation (see Unity documentation for more). Refer to
227
- Advanced Asserting later in this document for advice on dealing with other word
228
- sizes.
229
-
230
- ##### `TEST_ASSERT_EQUAL_INT (expected, actual)`
231
-
232
- ##### `TEST_ASSERT_EQUAL_INT8 (expected, actual)`
233
-
234
- ##### `TEST_ASSERT_EQUAL_INT16 (expected, actual)`
235
-
236
- ##### `TEST_ASSERT_EQUAL_INT32 (expected, actual)`
237
-
238
- ##### `TEST_ASSERT_EQUAL_INT64 (expected, actual)`
239
-
240
- ##### `TEST_ASSERT_EQUAL (expected, actual)`
241
-
242
- ##### `TEST_ASSERT_NOT_EQUAL (expected, actual)`
243
-
244
- ##### `TEST_ASSERT_EQUAL_UINT (expected, actual)`
245
-
246
- ##### `TEST_ASSERT_EQUAL_UINT8 (expected, actual)`
247
-
248
- ##### `TEST_ASSERT_EQUAL_UINT16 (expected, actual)`
249
-
250
- ##### `TEST_ASSERT_EQUAL_UINT32 (expected, actual)`
251
-
252
- ##### `TEST_ASSERT_EQUAL_UINT64 (expected, actual)`
253
-
254
-
255
- ### Unsigned Integers (of all sizes) in Hexadecimal
256
-
257
- All `_HEX` assertions are identical in function to unsigned integer assertions
258
- but produce failure messages with the `expected` and `actual` values formatted
259
- in hexadecimal. Unity output is big endian.
260
-
261
- ##### `TEST_ASSERT_EQUAL_HEX (expected, actual)`
262
-
263
- ##### `TEST_ASSERT_EQUAL_HEX8 (expected, actual)`
264
-
265
- ##### `TEST_ASSERT_EQUAL_HEX16 (expected, actual)`
266
-
267
- ##### `TEST_ASSERT_EQUAL_HEX32 (expected, actual)`
268
-
269
- ##### `TEST_ASSERT_EQUAL_HEX64 (expected, actual)`
270
-
271
-
272
- ### Masked and Bit-level Assertions
273
-
274
- Masked and bit-level assertions produce output formatted in hexadecimal. Unity
275
- output is big endian.
276
-
277
-
278
- ##### `TEST_ASSERT_BITS (mask, expected, actual)`
279
-
280
- Only compares the masked (i.e. high) bits of `expected` and `actual` parameters.
281
-
282
-
283
- ##### `TEST_ASSERT_BITS_HIGH (mask, actual)`
284
-
285
- Asserts the masked bits of the `actual` parameter are high.
286
-
287
-
288
- ##### `TEST_ASSERT_BITS_LOW (mask, actual)`
289
-
290
- Asserts the masked bits of the `actual` parameter are low.
291
-
292
-
293
- ##### `TEST_ASSERT_BIT_HIGH (bit, actual)`
294
-
295
- Asserts the specified bit of the `actual` parameter is high.
296
-
297
-
298
- ##### `TEST_ASSERT_BIT_LOW (bit, actual)`
299
-
300
- Asserts the specified bit of the `actual` parameter is low.
301
-
302
- ### Integer Less Than / Greater Than
303
-
304
- These assertions verify that the `actual` parameter is less than or greater
305
- than `threshold` (exclusive). For example, if the threshold value is 0 for the
306
- greater than assertion will fail if it is 0 or less.
307
-
308
- ##### `TEST_ASSERT_GREATER_THAN (threshold, actual)`
309
-
310
- ##### `TEST_ASSERT_GREATER_THAN_INT (threshold, actual)`
311
-
312
- ##### `TEST_ASSERT_GREATER_THAN_INT8 (threshold, actual)`
313
-
314
- ##### `TEST_ASSERT_GREATER_THAN_INT16 (threshold, actual)`
315
-
316
- ##### `TEST_ASSERT_GREATER_THAN_INT32 (threshold, actual)`
317
-
318
- ##### `TEST_ASSERT_GREATER_THAN_UINT (threshold, actual)`
319
-
320
- ##### `TEST_ASSERT_GREATER_THAN_UINT8 (threshold, actual)`
321
-
322
- ##### `TEST_ASSERT_GREATER_THAN_UINT16 (threshold, actual)`
323
-
324
- ##### `TEST_ASSERT_GREATER_THAN_UINT32 (threshold, actual)`
325
-
326
- ##### `TEST_ASSERT_GREATER_THAN_HEX8 (threshold, actual)`
327
-
328
- ##### `TEST_ASSERT_GREATER_THAN_HEX16 (threshold, actual)`
329
-
330
- ##### `TEST_ASSERT_GREATER_THAN_HEX32 (threshold, actual)`
331
-
332
- ##### `TEST_ASSERT_LESS_THAN (threshold, actual)`
333
-
334
- ##### `TEST_ASSERT_LESS_THAN_INT (threshold, actual)`
335
-
336
- ##### `TEST_ASSERT_LESS_THAN_INT8 (threshold, actual)`
337
-
338
- ##### `TEST_ASSERT_LESS_THAN_INT16 (threshold, actual)`
339
-
340
- ##### `TEST_ASSERT_LESS_THAN_INT32 (threshold, actual)`
341
-
342
- ##### `TEST_ASSERT_LESS_THAN_UINT (threshold, actual)`
343
-
344
- ##### `TEST_ASSERT_LESS_THAN_UINT8 (threshold, actual)`
345
-
346
- ##### `TEST_ASSERT_LESS_THAN_UINT16 (threshold, actual)`
347
-
348
- ##### `TEST_ASSERT_LESS_THAN_UINT32 (threshold, actual)`
349
-
350
- ##### `TEST_ASSERT_LESS_THAN_HEX8 (threshold, actual)`
351
-
352
- ##### `TEST_ASSERT_LESS_THAN_HEX16 (threshold, actual)`
353
-
354
- ##### `TEST_ASSERT_LESS_THAN_HEX32 (threshold, actual)`
355
-
356
-
357
- ### Integer Ranges (of all sizes)
358
-
359
- These assertions verify that the `expected` parameter is within +/- `delta`
360
- (inclusive) of the `actual` parameter. For example, if the expected value is 10
361
- and the delta is 3 then the assertion will fail for any value outside the range
362
- of 7 - 13.
363
-
364
- ##### `TEST_ASSERT_INT_WITHIN (delta, expected, actual)`
365
-
366
- ##### `TEST_ASSERT_INT8_WITHIN (delta, expected, actual)`
367
-
368
- ##### `TEST_ASSERT_INT16_WITHIN (delta, expected, actual)`
369
-
370
- ##### `TEST_ASSERT_INT32_WITHIN (delta, expected, actual)`
371
-
372
- ##### `TEST_ASSERT_INT64_WITHIN (delta, expected, actual)`
373
-
374
- ##### `TEST_ASSERT_UINT_WITHIN (delta, expected, actual)`
375
-
376
- ##### `TEST_ASSERT_UINT8_WITHIN (delta, expected, actual)`
377
-
378
- ##### `TEST_ASSERT_UINT16_WITHIN (delta, expected, actual)`
379
-
380
- ##### `TEST_ASSERT_UINT32_WITHIN (delta, expected, actual)`
381
-
382
- ##### `TEST_ASSERT_UINT64_WITHIN (delta, expected, actual)`
383
-
384
- ##### `TEST_ASSERT_HEX_WITHIN (delta, expected, actual)`
385
-
386
- ##### `TEST_ASSERT_HEX8_WITHIN (delta, expected, actual)`
387
-
388
- ##### `TEST_ASSERT_HEX16_WITHIN (delta, expected, actual)`
389
-
390
- ##### `TEST_ASSERT_HEX32_WITHIN (delta, expected, actual)`
391
-
392
- ##### `TEST_ASSERT_HEX64_WITHIN (delta, expected, actual)`
393
-
394
-
395
- ### Structs and Strings
396
-
397
- ##### `TEST_ASSERT_EQUAL_PTR (expected, actual)`
398
-
399
- Asserts that the pointers point to the same memory location.
400
-
401
-
402
- ##### `TEST_ASSERT_EQUAL_STRING (expected, actual)`
403
-
404
- Asserts that the null terminated (`'\0'`)strings are identical. If strings are
405
- of different lengths or any portion of the strings before their terminators
406
- differ, the assertion fails. Two NULL strings (i.e. zero length) are considered
407
- equivalent.
408
-
409
-
410
- ##### `TEST_ASSERT_EQUAL_MEMORY (expected, actual, len)`
411
-
412
- Asserts that the contents of the memory specified by the `expected` and `actual`
413
- pointers is identical. The size of the memory blocks in bytes is specified by
414
- the `len` parameter.
415
-
416
-
417
- ### Arrays
418
-
419
- `expected` and `actual` parameters are both arrays. `num_elements` specifies the
420
- number of elements in the arrays to compare.
421
-
422
- `_HEX` assertions produce failure messages with expected and actual array
423
- contents formatted in hexadecimal.
424
-
425
- For array of strings comparison behavior, see comments for
426
- `TEST_ASSERT_EQUAL_STRING` in the preceding section.
427
-
428
- Assertions fail upon the first element in the compared arrays found not to
429
- match. Failure messages specify the array index of the failed comparison.
430
-
431
- ##### `TEST_ASSERT_EQUAL_INT_ARRAY (expected, actual, num_elements)`
432
-
433
- ##### `TEST_ASSERT_EQUAL_INT8_ARRAY (expected, actual, num_elements)`
434
-
435
- ##### `TEST_ASSERT_EQUAL_INT16_ARRAY (expected, actual, num_elements)`
436
-
437
- ##### `TEST_ASSERT_EQUAL_INT32_ARRAY (expected, actual, num_elements)`
438
-
439
- ##### `TEST_ASSERT_EQUAL_INT64_ARRAY (expected, actual, num_elements)`
440
-
441
- ##### `TEST_ASSERT_EQUAL_UINT_ARRAY (expected, actual, num_elements)`
442
-
443
- ##### `TEST_ASSERT_EQUAL_UINT8_ARRAY (expected, actual, num_elements)`
444
-
445
- ##### `TEST_ASSERT_EQUAL_UINT16_ARRAY (expected, actual, num_elements)`
446
-
447
- ##### `TEST_ASSERT_EQUAL_UINT32_ARRAY (expected, actual, num_elements)`
448
-
449
- ##### `TEST_ASSERT_EQUAL_UINT64_ARRAY (expected, actual, num_elements)`
450
-
451
- ##### `TEST_ASSERT_EQUAL_HEX_ARRAY (expected, actual, num_elements)`
452
-
453
- ##### `TEST_ASSERT_EQUAL_HEX8_ARRAY (expected, actual, num_elements)`
454
-
455
- ##### `TEST_ASSERT_EQUAL_HEX16_ARRAY (expected, actual, num_elements)`
456
-
457
- ##### `TEST_ASSERT_EQUAL_HEX32_ARRAY (expected, actual, num_elements)`
458
-
459
- ##### `TEST_ASSERT_EQUAL_HEX64_ARRAY (expected, actual, num_elements)`
460
-
461
- ##### `TEST_ASSERT_EQUAL_PTR_ARRAY (expected, actual, num_elements)`
462
-
463
- ##### `TEST_ASSERT_EQUAL_STRING_ARRAY (expected, actual, num_elements)`
464
-
465
- ##### `TEST_ASSERT_EQUAL_MEMORY_ARRAY (expected, actual, len, num_elements)`
466
-
467
- `len` is the memory in bytes to be compared at each array element.
468
-
469
-
470
- ### Each Equal (Arrays to Single Value)
471
-
472
- `expected` are single values and `actual` are arrays. `num_elements` specifies
473
- the number of elements in the arrays to compare.
474
-
475
- `_HEX` assertions produce failure messages with expected and actual array
476
- contents formatted in hexadecimal.
477
-
478
- Assertions fail upon the first element in the compared arrays found not to
479
- match. Failure messages specify the array index of the failed comparison.
480
-
481
- #### `TEST_ASSERT_EACH_EQUAL_INT (expected, actual, num_elements)`
482
-
483
- #### `TEST_ASSERT_EACH_EQUAL_INT8 (expected, actual, num_elements)`
484
-
485
- #### `TEST_ASSERT_EACH_EQUAL_INT16 (expected, actual, num_elements)`
486
-
487
- #### `TEST_ASSERT_EACH_EQUAL_INT32 (expected, actual, num_elements)`
488
-
489
- #### `TEST_ASSERT_EACH_EQUAL_INT64 (expected, actual, num_elements)`
490
-
491
- #### `TEST_ASSERT_EACH_EQUAL_UINT (expected, actual, num_elements)`
492
-
493
- #### `TEST_ASSERT_EACH_EQUAL_UINT8 (expected, actual, num_elements)`
494
-
495
- #### `TEST_ASSERT_EACH_EQUAL_UINT16 (expected, actual, num_elements)`
496
-
497
- #### `TEST_ASSERT_EACH_EQUAL_UINT32 (expected, actual, num_elements)`
498
-
499
- #### `TEST_ASSERT_EACH_EQUAL_UINT64 (expected, actual, num_elements)`
500
-
501
- #### `TEST_ASSERT_EACH_EQUAL_HEX (expected, actual, num_elements)`
502
-
503
- #### `TEST_ASSERT_EACH_EQUAL_HEX8 (expected, actual, num_elements)`
504
-
505
- #### `TEST_ASSERT_EACH_EQUAL_HEX16 (expected, actual, num_elements)`
506
-
507
- #### `TEST_ASSERT_EACH_EQUAL_HEX32 (expected, actual, num_elements)`
508
-
509
- #### `TEST_ASSERT_EACH_EQUAL_HEX64 (expected, actual, num_elements)`
510
-
511
- #### `TEST_ASSERT_EACH_EQUAL_PTR (expected, actual, num_elements)`
512
-
513
- #### `TEST_ASSERT_EACH_EQUAL_STRING (expected, actual, num_elements)`
514
-
515
- #### `TEST_ASSERT_EACH_EQUAL_MEMORY (expected, actual, len, num_elements)`
516
-
517
- `len` is the memory in bytes to be compared at each array element.
518
-
519
-
520
- ### Floating Point (If enabled)
521
-
522
- ##### `TEST_ASSERT_FLOAT_WITHIN (delta, expected, actual)`
523
-
524
- Asserts that the `actual` value is within +/- `delta` of the `expected` value.
525
- The nature of floating point representation is such that exact evaluations of
526
- equality are not guaranteed.
527
-
528
-
529
- ##### `TEST_ASSERT_EQUAL_FLOAT (expected, actual)`
530
-
531
- Asserts that the ?actual?value is "close enough to be considered equal" to the
532
- `expected` value. If you are curious about the details, refer to the Advanced
533
- Asserting section for more details on this. Omitting a user-specified delta in a
534
- floating point assertion is both a shorthand convenience and a requirement of
535
- code generation conventions for CMock.
536
-
537
-
538
- ##### `TEST_ASSERT_EQUAL_FLOAT_ARRAY (expected, actual, num_elements)`
539
-
540
- See Array assertion section for details. Note that individual array element
541
- float comparisons are executed using T?EST_ASSERT_EQUAL_FLOAT?.That is, user
542
- specified delta comparison values requires a custom-implemented floating point
543
- array assertion.
544
-
545
-
546
- ##### `TEST_ASSERT_FLOAT_IS_INF (actual)`
547
-
548
- Asserts that `actual` parameter is equivalent to positive infinity floating
549
- point representation.
550
-
551
-
552
- ##### `TEST_ASSERT_FLOAT_IS_NEG_INF (actual)`
553
-
554
- Asserts that `actual` parameter is equivalent to negative infinity floating
555
- point representation.
556
-
557
-
558
- ##### `TEST_ASSERT_FLOAT_IS_NAN (actual)`
559
-
560
- Asserts that `actual` parameter is a Not A Number floating point representation.
561
-
562
-
563
- ##### `TEST_ASSERT_FLOAT_IS_DETERMINATE (actual)`
564
-
565
- Asserts that ?actual?parameter is a floating point representation usable for
566
- mathematical operations. That is, the `actual` parameter is neither positive
567
- infinity nor negative infinity nor Not A Number floating point representations.
568
-
569
-
570
- ##### `TEST_ASSERT_FLOAT_IS_NOT_INF (actual)`
571
-
572
- Asserts that `actual` parameter is a value other than positive infinity floating
573
- point representation.
574
-
575
-
576
- ##### `TEST_ASSERT_FLOAT_IS_NOT_NEG_INF (actual)`
577
-
578
- Asserts that `actual` parameter is a value other than negative infinity floating
579
- point representation.
580
-
581
-
582
- ##### `TEST_ASSERT_FLOAT_IS_NOT_NAN (actual)`
583
-
584
- Asserts that `actual` parameter is a value other than Not A Number floating
585
- point representation.
586
-
587
-
588
- ##### `TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE (actual)`
589
-
590
- Asserts that `actual` parameter is not usable for mathematical operations. That
591
- is, the `actual` parameter is either positive infinity or negative infinity or
592
- Not A Number floating point representations.
593
-
594
-
595
- ### Double (If enabled)
596
-
597
- ##### `TEST_ASSERT_DOUBLE_WITHIN (delta, expected, actual)`
598
-
599
- Asserts that the `actual` value is within +/- `delta` of the `expected` value.
600
- The nature of floating point representation is such that exact evaluations of
601
- equality are not guaranteed.
602
-
603
-
604
- ##### `TEST_ASSERT_EQUAL_DOUBLE (expected, actual)`
605
-
606
- Asserts that the `actual` value is "close enough to be considered equal" to the
607
- `expected` value. If you are curious about the details, refer to the Advanced
608
- Asserting section for more details. Omitting a user-specified delta in a
609
- floating point assertion is both a shorthand convenience and a requirement of
610
- code generation conventions for CMock.
611
-
612
-
613
- ##### `TEST_ASSERT_EQUAL_DOUBLE_ARRAY (expected, actual, num_elements)`
614
-
615
- See Array assertion section for details. Note that individual array element
616
- double comparisons are executed using `TEST_ASSERT_EQUAL_DOUBLE`.That is, user
617
- specified delta comparison values requires a custom implemented double array
618
- assertion.
619
-
620
-
621
- ##### `TEST_ASSERT_DOUBLE_IS_INF (actual)`
622
-
623
- Asserts that `actual` parameter is equivalent to positive infinity floating
624
- point representation.
625
-
626
-
627
- ##### `TEST_ASSERT_DOUBLE_IS_NEG_INF (actual)`
628
-
629
- Asserts that `actual` parameter is equivalent to negative infinity floating point
630
- representation.
631
-
632
-
633
- ##### `TEST_ASSERT_DOUBLE_IS_NAN (actual)`
634
-
635
- Asserts that `actual` parameter is a Not A Number floating point representation.
636
-
637
-
638
- ##### `TEST_ASSERT_DOUBLE_IS_DETERMINATE (actual)`
639
-
640
- Asserts that `actual` parameter is a floating point representation usable for
641
- mathematical operations. That is, the ?actual?parameter is neither positive
642
- infinity nor negative infinity nor Not A Number floating point representations.
643
-
644
-
645
- ##### `TEST_ASSERT_DOUBLE_IS_NOT_INF (actual)`
646
-
647
- Asserts that `actual` parameter is a value other than positive infinity floating
648
- point representation.
649
-
650
-
651
- ##### `TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF (actual)`
652
-
653
- Asserts that `actual` parameter is a value other than negative infinity floating
654
- point representation.
655
-
656
-
657
- ##### `TEST_ASSERT_DOUBLE_IS_NOT_NAN (actual)`
658
-
659
- Asserts that `actual` parameter is a value other than Not A Number floating
660
- point representation.
661
-
662
-
663
- ##### `TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE (actual)`
664
-
665
- Asserts that `actual` parameter is not usable for mathematical operations. That
666
- is, the `actual` parameter is either positive infinity or negative infinity or
667
- Not A Number floating point representations.
668
-
669
-
670
- ## Advanced Asserting: Details On Tricky Assertions
671
-
672
- This section helps you understand how to deal with some of the trickier
673
- assertion situations you may run into. It will give you a glimpse into some of
674
- the under-the-hood details of Unity's assertion mechanisms. If you're one of
675
- those people who likes to know what is going on in the background, read on. If
676
- not, feel free to ignore the rest of this document until you need it.
677
-
678
-
679
- ### How do the EQUAL assertions work for FLOAT and DOUBLE?
680
-
681
- As you may know, directly checking for equality between a pair of floats or a
682
- pair of doubles is sloppy at best and an outright no-no at worst. Floating point
683
- values can often be represented in multiple ways, particularly after a series of
684
- operations on a value. Initializing a variable to the value of 2.0 is likely to
685
- result in a floating point representation of 2 x 20,but a series of
686
- mathematical operations might result in a representation of 8 x 2-2
687
- that also evaluates to a value of 2. At some point repeated operations cause
688
- equality checks to fail.
689
-
690
- So Unity doesn't do direct floating point comparisons for equality. Instead, it
691
- checks if two floating point values are "really close." If you leave Unity
692
- running with defaults, "really close" means "within a significant bit or two."
693
- Under the hood, `TEST_ASSERT_EQUAL_FLOAT` is really `TEST_ASSERT_FLOAT_WITHIN`
694
- with the `delta` parameter calculated on the fly. For single precision, delta is
695
- the expected value multiplied by 0.00001, producing a very small proportional
696
- range around the expected value.
697
-
698
- If you are expecting a value of 20,000.0 the delta is calculated to be 0.2. So
699
- any value between 19,999.8 and 20,000.2 will satisfy the equality check. This
700
- works out to be roughly a single bit of range for a single-precision number, and
701
- that's just about as tight a tolerance as you can reasonably get from a floating
702
- point value.
703
-
704
- So what happens when it's zero? Zero - even more than other floating point
705
- values - can be represented many different ways. It doesn't matter if you have
706
- 0 x 20 or 0 x 263.It's still zero, right? Luckily, if you
707
- subtract these values from each other, they will always produce a difference of
708
- zero, which will still fall between 0 plus or minus a delta of 0. So it still
709
- works!
710
-
711
- Double precision floating point numbers use a much smaller multiplier, again
712
- approximating a single bit of error.
713
-
714
- If you don't like these ranges and you want to make your floating point equality
715
- assertions less strict, you can change these multipliers to whatever you like by
716
- defining UNITY_FLOAT_PRECISION and UNITY_DOUBLE_PRECISION. See Unity
717
- documentation for more.
718
-
719
-
720
- ### How do we deal with targets with non-standard int sizes?
721
-
722
- It's "fun" that C is a standard where something as fundamental as an integer
723
- varies by target. According to the C standard, an `int` is to be the target's
724
- natural register size, and it should be at least 16-bits and a multiple of a
725
- byte. It also guarantees an order of sizes:
726
-
727
- ```C
728
- char <= short <= int <= long <= long long
729
- ```
730
-
731
- Most often, `int` is 32-bits. In many cases in the embedded world, `int` is
732
- 16-bits. There are rare microcontrollers out there that have 24-bit integers,
733
- and this remains perfectly standard C.
734
-
735
- To make things even more interesting, there are compilers and targets out there
736
- that have a hard choice to make. What if their natural register size is 10-bits
737
- or 12-bits? Clearly they can't fulfill _both_ the requirement to be at least
738
- 16-bits AND the requirement to match the natural register size. In these
739
- situations, they often choose the natural register size, leaving us with
740
- something like this:
741
-
742
- ```C
743
- char (8 bit) <= short (12 bit) <= int (12 bit) <= long (16 bit)
744
- ```
745
-
746
- Um... yikes. It's obviously breaking a rule or two... but they had to break SOME
747
- rules, so they made a choice.
748
-
749
- When the C99 standard rolled around, it introduced alternate standard-size types.
750
- It also introduced macros for pulling in MIN/MAX values for your integer types.
751
- It's glorious! Unfortunately, many embedded compilers can't be relied upon to
752
- use the C99 types (Sometimes because they have weird register sizes as described
753
- above. Sometimes because they don't feel like it?).
754
-
755
- A goal of Unity from the beginning was to support every combination of
756
- microcontroller or microprocessor and C compiler. Over time, we've gotten really
757
- close to this. There are a few tricks that you should be aware of, though, if
758
- you're going to do this effectively on some of these more idiosyncratic targets.
759
-
760
- First, when setting up Unity for a new target, you're going to want to pay
761
- special attention to the macros for automatically detecting types
762
- (where available) or manually configuring them yourself. You can get information
763
- on both of these in Unity's documentation.
764
-
765
- What about the times where you suddenly need to deal with something odd, like a
766
- 24-bit `int`? The simplest solution is to use the next size up. If you have a
767
- 24-bit `int`, configure Unity to use 32-bit integers. If you have a 12-bit
768
- `int`, configure Unity to use 16 bits. There are two ways this is going to
769
- affect you:
770
-
771
- 1. When Unity displays errors for you, it's going to pad the upper unused bits
772
- with zeros.
773
- 2. You're going to have to be careful of assertions that perform signed
774
- operations, particularly `TEST_ASSERT_INT_WITHIN`.Such assertions might wrap
775
- your `int` in the wrong place, and you could experience false failures. You can
776
- always back down to a simple `TEST_ASSERT` and do the operations yourself.
777
-
778
-
779
- *Find The Latest of This And More at [ThrowTheSwitch.org](https://throwtheswitch.org)*
1
+ # Unity Assertions Reference
2
+
3
+ ## Background and Overview
4
+
5
+ ### Super Condensed Version
6
+
7
+ - An assertion establishes truth (i.e. boolean True) for a single condition.
8
+ Upon boolean False, an assertion stops execution and reports the failure.
9
+ - Unity is mainly a rich collection of assertions and the support to gather up
10
+ and easily execute those assertions.
11
+ - The structure of Unity allows you to easily separate test assertions from
12
+ source code in, well, test code.
13
+ - Unity's assertions:
14
+ - Come in many, many flavors to handle different C types and assertion cases.
15
+ - Use context to provide detailed and helpful failure messages.
16
+ - Document types, expected values, and basic behavior in your source code for
17
+ free.
18
+
19
+
20
+ ### Unity Is Several Things But Mainly It's Assertions
21
+
22
+ One way to think of Unity is simply as a rich collection of assertions you can
23
+ use to establish whether your source code behaves the way you think it does.
24
+ Unity provides a framework to easily organize and execute those assertions in
25
+ test code separate from your source code.
26
+
27
+
28
+ ### What's an Assertion?
29
+
30
+ At their core, assertions are an establishment of truth - boolean truth. Was this
31
+ thing equal to that thing? Does that code doohickey have such-and-such property
32
+ or not? You get the idea. Assertions are executable code (to appreciate the big
33
+ picture on this read up on the difference between
34
+ [link:Dynamic Verification and Static Analysis]). A failing assertion stops
35
+ execution and reports an error through some appropriate I/O channel (e.g.
36
+ stdout, GUI, file, blinky light).
37
+
38
+ Fundamentally, for dynamic verification all you need is a single assertion
39
+ mechanism. In fact, that's what the [assert() macro in C's standard library](http://en.wikipedia.org/en/wiki/Assert.h)
40
+ is for. So why not just use it? Well, we can do far better in the reporting
41
+ department. C's `assert()` is pretty dumb as-is and is particularly poor for
42
+ handling common data types like arrays, structs, etc. And, without some other
43
+ support, it's far too tempting to litter source code with C's `assert()`'s. It's
44
+ generally much cleaner, manageable, and more useful to separate test and source
45
+ code in the way Unity facilitates.
46
+
47
+
48
+ ### Unity's Assertions: Helpful Messages _and_ Free Source Code Documentation
49
+
50
+ Asserting a simple truth condition is valuable, but using the context of the
51
+ assertion is even more valuable. For instance, if you know you're comparing bit
52
+ flags and not just integers, then why not use that context to give explicit,
53
+ readable, bit-level feedback when an assertion fails?
54
+
55
+ That's what Unity's collection of assertions do - capture context to give you
56
+ helpful, meaningful assertion failure messages. In fact, the assertions
57
+ themselves also serve as executable documentation about types and values in your
58
+ source code. So long as your tests remain current with your source and all those
59
+ tests pass, you have a detailed, up-to-date view of the intent and mechanisms in
60
+ your source code. And due to a wondrous mystery, well-tested code usually tends
61
+ to be well designed code.
62
+
63
+
64
+ ## Assertion Conventions and Configurations
65
+
66
+ ### Naming and Parameter Conventions
67
+
68
+ The convention of assertion parameters generally follows this order:
69
+
70
+ TEST_ASSERT_X( {modifiers}, {expected}, actual, {size/count} )
71
+
72
+ The very simplest assertion possible uses only a single "actual" parameter (e.g.
73
+ a simple null check).
74
+
75
+ "Actual" is the value being tested and unlike the other parameters in an
76
+ assertion construction is the only parameter present in all assertion variants.
77
+ "Modifiers" are masks, ranges, bit flag specifiers, floating point deltas.
78
+ "Expected" is your expected value (duh) to compare to an "actual" value; it's
79
+ marked as an optional parameter because some assertions only need a single
80
+ "actual" parameter (e.g. null check).
81
+ "Size/count" refers to string lengths, number of array elements, etc.
82
+
83
+ Many of Unity's assertions are clear duplications in that the same data type
84
+ is handled by several assertions. The differences among these are in how failure
85
+ messages are presented. For instance, a `_HEX` variant of an assertion prints
86
+ the expected and actual values of that assertion formatted as hexadecimal.
87
+
88
+
89
+ #### TEST_ASSERT_X_MESSAGE Variants
90
+
91
+ _All_ assertions are complemented with a variant that includes a simple string
92
+ message as a final parameter. The string you specify is appended to an assertion
93
+ failure message in Unity output.
94
+
95
+ For brevity, the assertion variants with a message parameter are not listed
96
+ below. Just tack on `_MESSAGE` as the final component to any assertion name in
97
+ the reference list below and add a string as the final parameter.
98
+
99
+ _Example:_
100
+
101
+ TEST_ASSERT_X( {modifiers}, {expected}, actual, {size/count} )
102
+
103
+ becomes messageified like thus...
104
+
105
+ TEST_ASSERT_X_MESSAGE( {modifiers}, {expected}, actual, {size/count}, message )
106
+
107
+ Notes:
108
+ - The `_MESSAGE` variants intentionally do not support `printf` style formatting
109
+ since many embedded projects don't support or avoid `printf` for various reasons.
110
+ It is possible to use `sprintf` before the assertion to assemble a complex fail
111
+ message, if necessary.
112
+ - If you want to output a counter value within an assertion fail message (e.g. from
113
+ a loop) , building up an array of results and then using one of the `_ARRAY`
114
+ assertions (see below) might be a handy alternative to `sprintf`.
115
+
116
+
117
+ #### TEST_ASSERT_X_ARRAY Variants
118
+
119
+ Unity provides a collection of assertions for arrays containing a variety of
120
+ types. These are documented in the Array section below. These are almost on par
121
+ with the `_MESSAGE`variants of Unity's Asserts in that for pretty much any Unity
122
+ type assertion you can tack on `_ARRAY` and run assertions on an entire block of
123
+ memory.
124
+
125
+ TEST_ASSERT_EQUAL_TYPEX_ARRAY( expected, actual, {size/count} )
126
+
127
+ "Expected" is an array itself.
128
+ "Size/count" is one or two parameters necessary to establish the number of array
129
+ elements and perhaps the length of elements within the array.
130
+
131
+ Notes:
132
+ - The `_MESSAGE` variant convention still applies here to array assertions. The
133
+ `_MESSAGE` variants of the `_ARRAY` assertions have names ending with
134
+ `_ARRAY_MESSAGE`.
135
+ - Assertions for handling arrays of floating point values are grouped with float
136
+ and double assertions (see immediately following section).
137
+
138
+
139
+ ### TEST_ASSERT_EACH_EQUAL_X Variants
140
+
141
+ Unity provides a collection of assertions for arrays containing a variety of
142
+ types which can be compared to a single value as well. These are documented in
143
+ the Each Equal section below. these are almost on par with the `_MESSAGE`
144
+ variants of Unity's Asserts in that for pretty much any Unity type assertion you
145
+ can inject _EACH_EQUAL and run assertions on an entire block of memory.
146
+
147
+ TEST_ASSERT_EACH_EQUAL_TYPEX( expected, actual, {size/count} )
148
+
149
+ "Expected" is a single value to compare to.
150
+ "Actual" is an array where each element will be compared to the expected value.
151
+ "Size/count" is one of two parameters necessary to establish the number of array
152
+ elements and perhaps the length of elements within the array.
153
+
154
+ Notes:
155
+ - The `_MESSAGE` variant convention still applies here to Each Equal assertions.
156
+ - Assertions for handling Each Equal of floating point values are grouped with
157
+ float and double assertions (see immediately following section).
158
+
159
+
160
+ ### Configuration
161
+
162
+ #### Floating Point Support Is Optional
163
+
164
+ Support for floating point types is configurable. That is, by defining the
165
+ appropriate preprocessor symbols, floats and doubles can be individually enabled
166
+ or disabled in Unity code. This is useful for embedded targets with no floating
167
+ point math support (i.e. Unity compiles free of errors for fixed point only
168
+ platforms). See Unity documentation for specifics.
169
+
170
+
171
+ #### Maximum Data Type Width Is Configurable
172
+
173
+ Not all targets support 64 bit wide types or even 32 bit wide types. Define the
174
+ appropriate preprocessor symbols and Unity will omit all operations from
175
+ compilation that exceed the maximum width of your target. See Unity
176
+ documentation for specifics.
177
+
178
+
179
+ ## The Assertions in All Their Blessed Glory
180
+
181
+ ### Basic Fail, Pass and Ignore
182
+
183
+ ##### `TEST_FAIL()`
184
+
185
+ ##### `TEST_FAIL_MESSAGE("message")`
186
+
187
+ This fella is most often used in special conditions where your test code is
188
+ performing logic beyond a simple assertion. That is, in practice, `TEST_FAIL()`
189
+ will always be found inside a conditional code block.
190
+
191
+ _Examples:_
192
+ - Executing a state machine multiple times that increments a counter your test
193
+ code then verifies as a final step.
194
+ - Triggering an exception and verifying it (as in Try / Catch / Throw - see the
195
+ [CException](https://github.com/ThrowTheSwitch/CException) project).
196
+
197
+ ##### `TEST_PASS()`
198
+
199
+ ##### `TEST_PASS_MESSAGE("message")`
200
+
201
+ This will abort the remainder of the test, but count the test as a pass. Under
202
+ normal circumstances, it is not necessary to include this macro in your tests...
203
+ a lack of failure will automatically be counted as a `PASS`. It is occasionally
204
+ useful for tests with `#ifdef`s and such.
205
+
206
+ ##### `TEST_IGNORE()`
207
+
208
+ ##### `TEST_IGNORE_MESSAGE("message")`
209
+
210
+ Marks a test case (i.e. function meant to contain test assertions) as ignored.
211
+ Usually this is employed as a breadcrumb to come back and implement a test case.
212
+ An ignored test case has effects if other assertions are in the enclosing test
213
+ case (see Unity documentation for more).
214
+
215
+ ##### `TEST_MESSAGE(message)`
216
+
217
+ This can be useful for outputting `INFO` messages into the Unity output stream
218
+ without actually ending the test. Like pass and fail messages, it will be output
219
+ with the filename and line number.
220
+
221
+ ### Boolean
222
+
223
+ ##### `TEST_ASSERT (condition)`
224
+
225
+ ##### `TEST_ASSERT_TRUE (condition)`
226
+
227
+ ##### `TEST_ASSERT_FALSE (condition)`
228
+
229
+ ##### `TEST_ASSERT_UNLESS (condition)`
230
+
231
+ A simple wording variation on `TEST_ASSERT_FALSE`.The semantics of
232
+ `TEST_ASSERT_UNLESS` aid readability in certain test constructions or
233
+ conditional statements.
234
+
235
+ ##### `TEST_ASSERT_NULL (pointer)`
236
+
237
+ ##### `TEST_ASSERT_NOT_NULL (pointer)`
238
+
239
+
240
+ ### Signed and Unsigned Integers (of all sizes)
241
+
242
+ Large integer sizes can be disabled for build targets that do not support them.
243
+ For example, if your target only supports up to 16 bit types, by defining the
244
+ appropriate symbols Unity can be configured to omit 32 and 64 bit operations
245
+ that would break compilation (see Unity documentation for more). Refer to
246
+ Advanced Asserting later in this document for advice on dealing with other word
247
+ sizes.
248
+
249
+ ##### `TEST_ASSERT_EQUAL_INT (expected, actual)`
250
+
251
+ ##### `TEST_ASSERT_EQUAL_INT8 (expected, actual)`
252
+
253
+ ##### `TEST_ASSERT_EQUAL_INT16 (expected, actual)`
254
+
255
+ ##### `TEST_ASSERT_EQUAL_INT32 (expected, actual)`
256
+
257
+ ##### `TEST_ASSERT_EQUAL_INT64 (expected, actual)`
258
+
259
+ ##### `TEST_ASSERT_EQUAL_UINT (expected, actual)`
260
+
261
+ ##### `TEST_ASSERT_EQUAL_UINT8 (expected, actual)`
262
+
263
+ ##### `TEST_ASSERT_EQUAL_UINT16 (expected, actual)`
264
+
265
+ ##### `TEST_ASSERT_EQUAL_UINT32 (expected, actual)`
266
+
267
+ ##### `TEST_ASSERT_EQUAL_UINT64 (expected, actual)`
268
+
269
+
270
+ ### Unsigned Integers (of all sizes) in Hexadecimal
271
+
272
+ All `_HEX` assertions are identical in function to unsigned integer assertions
273
+ but produce failure messages with the `expected` and `actual` values formatted
274
+ in hexadecimal. Unity output is big endian.
275
+
276
+ ##### `TEST_ASSERT_EQUAL_HEX (expected, actual)`
277
+
278
+ ##### `TEST_ASSERT_EQUAL_HEX8 (expected, actual)`
279
+
280
+ ##### `TEST_ASSERT_EQUAL_HEX16 (expected, actual)`
281
+
282
+ ##### `TEST_ASSERT_EQUAL_HEX32 (expected, actual)`
283
+
284
+ ##### `TEST_ASSERT_EQUAL_HEX64 (expected, actual)`
285
+
286
+
287
+ ### Characters
288
+
289
+ While you can use the 8-bit integer assertions to compare `char`, another option is
290
+ to use this specialized assertion which will show printable characters as printables,
291
+ otherwise showing the HEX escape code for the characters.
292
+
293
+ ##### `TEST_ASSERT_EQUAL_CHAR (expected, actual)`
294
+
295
+
296
+ ### Masked and Bit-level Assertions
297
+
298
+ Masked and bit-level assertions produce output formatted in hexadecimal. Unity
299
+ output is big endian.
300
+
301
+
302
+ ##### `TEST_ASSERT_BITS (mask, expected, actual)`
303
+
304
+ Only compares the masked (i.e. high) bits of `expected` and `actual` parameters.
305
+
306
+
307
+ ##### `TEST_ASSERT_BITS_HIGH (mask, actual)`
308
+
309
+ Asserts the masked bits of the `actual` parameter are high.
310
+
311
+
312
+ ##### `TEST_ASSERT_BITS_LOW (mask, actual)`
313
+
314
+ Asserts the masked bits of the `actual` parameter are low.
315
+
316
+
317
+ ##### `TEST_ASSERT_BIT_HIGH (bit, actual)`
318
+
319
+ Asserts the specified bit of the `actual` parameter is high.
320
+
321
+
322
+ ##### `TEST_ASSERT_BIT_LOW (bit, actual)`
323
+
324
+ Asserts the specified bit of the `actual` parameter is low.
325
+
326
+ ### Integer Less Than / Greater Than
327
+
328
+ These assertions verify that the `actual` parameter is less than or greater
329
+ than `threshold` (exclusive). For example, if the threshold value is 0 for the
330
+ greater than assertion will fail if it is 0 or less.
331
+
332
+ ##### `TEST_ASSERT_GREATER_THAN (threshold, actual)`
333
+
334
+ ##### `TEST_ASSERT_GREATER_THAN_INT (threshold, actual)`
335
+
336
+ ##### `TEST_ASSERT_GREATER_THAN_INT8 (threshold, actual)`
337
+
338
+ ##### `TEST_ASSERT_GREATER_THAN_INT16 (threshold, actual)`
339
+
340
+ ##### `TEST_ASSERT_GREATER_THAN_INT32 (threshold, actual)`
341
+
342
+ ##### `TEST_ASSERT_GREATER_THAN_UINT (threshold, actual)`
343
+
344
+ ##### `TEST_ASSERT_GREATER_THAN_UINT8 (threshold, actual)`
345
+
346
+ ##### `TEST_ASSERT_GREATER_THAN_UINT16 (threshold, actual)`
347
+
348
+ ##### `TEST_ASSERT_GREATER_THAN_UINT32 (threshold, actual)`
349
+
350
+ ##### `TEST_ASSERT_GREATER_THAN_HEX8 (threshold, actual)`
351
+
352
+ ##### `TEST_ASSERT_GREATER_THAN_HEX16 (threshold, actual)`
353
+
354
+ ##### `TEST_ASSERT_GREATER_THAN_HEX32 (threshold, actual)`
355
+
356
+ ##### `TEST_ASSERT_GREATER_THAN_CHAR (threshold, actual)`
357
+
358
+ ##### `TEST_ASSERT_LESS_THAN (threshold, actual)`
359
+
360
+ ##### `TEST_ASSERT_LESS_THAN_INT (threshold, actual)`
361
+
362
+ ##### `TEST_ASSERT_LESS_THAN_INT8 (threshold, actual)`
363
+
364
+ ##### `TEST_ASSERT_LESS_THAN_INT16 (threshold, actual)`
365
+
366
+ ##### `TEST_ASSERT_LESS_THAN_INT32 (threshold, actual)`
367
+
368
+ ##### `TEST_ASSERT_LESS_THAN_UINT (threshold, actual)`
369
+
370
+ ##### `TEST_ASSERT_LESS_THAN_UINT8 (threshold, actual)`
371
+
372
+ ##### `TEST_ASSERT_LESS_THAN_UINT16 (threshold, actual)`
373
+
374
+ ##### `TEST_ASSERT_LESS_THAN_UINT32 (threshold, actual)`
375
+
376
+ ##### `TEST_ASSERT_LESS_THAN_HEX8 (threshold, actual)`
377
+
378
+ ##### `TEST_ASSERT_LESS_THAN_HEX16 (threshold, actual)`
379
+
380
+ ##### `TEST_ASSERT_LESS_THAN_HEX32 (threshold, actual)`
381
+
382
+ ##### `TEST_ASSERT_LESS_THAN_CHAR (threshold, actual)`
383
+
384
+
385
+ ### Integer Ranges (of all sizes)
386
+
387
+ These assertions verify that the `expected` parameter is within +/- `delta`
388
+ (inclusive) of the `actual` parameter. For example, if the expected value is 10
389
+ and the delta is 3 then the assertion will fail for any value outside the range
390
+ of 7 - 13.
391
+
392
+ ##### `TEST_ASSERT_INT_WITHIN (delta, expected, actual)`
393
+
394
+ ##### `TEST_ASSERT_INT8_WITHIN (delta, expected, actual)`
395
+
396
+ ##### `TEST_ASSERT_INT16_WITHIN (delta, expected, actual)`
397
+
398
+ ##### `TEST_ASSERT_INT32_WITHIN (delta, expected, actual)`
399
+
400
+ ##### `TEST_ASSERT_INT64_WITHIN (delta, expected, actual)`
401
+
402
+ ##### `TEST_ASSERT_UINT_WITHIN (delta, expected, actual)`
403
+
404
+ ##### `TEST_ASSERT_UINT8_WITHIN (delta, expected, actual)`
405
+
406
+ ##### `TEST_ASSERT_UINT16_WITHIN (delta, expected, actual)`
407
+
408
+ ##### `TEST_ASSERT_UINT32_WITHIN (delta, expected, actual)`
409
+
410
+ ##### `TEST_ASSERT_UINT64_WITHIN (delta, expected, actual)`
411
+
412
+ ##### `TEST_ASSERT_HEX_WITHIN (delta, expected, actual)`
413
+
414
+ ##### `TEST_ASSERT_HEX8_WITHIN (delta, expected, actual)`
415
+
416
+ ##### `TEST_ASSERT_HEX16_WITHIN (delta, expected, actual)`
417
+
418
+ ##### `TEST_ASSERT_HEX32_WITHIN (delta, expected, actual)`
419
+
420
+ ##### `TEST_ASSERT_HEX64_WITHIN (delta, expected, actual)`
421
+
422
+ ##### `TEST_ASSERT_CHAR_WITHIN (delta, expected, actual)`
423
+
424
+ ### Structs and Strings
425
+
426
+ ##### `TEST_ASSERT_EQUAL_PTR (expected, actual)`
427
+
428
+ Asserts that the pointers point to the same memory location.
429
+
430
+
431
+ ##### `TEST_ASSERT_EQUAL_STRING (expected, actual)`
432
+
433
+ Asserts that the null terminated (`'\0'`)strings are identical. If strings are
434
+ of different lengths or any portion of the strings before their terminators
435
+ differ, the assertion fails. Two NULL strings (i.e. zero length) are considered
436
+ equivalent.
437
+
438
+
439
+ ##### `TEST_ASSERT_EQUAL_MEMORY (expected, actual, len)`
440
+
441
+ Asserts that the contents of the memory specified by the `expected` and `actual`
442
+ pointers is identical. The size of the memory blocks in bytes is specified by
443
+ the `len` parameter.
444
+
445
+
446
+ ### Arrays
447
+
448
+ `expected` and `actual` parameters are both arrays. `num_elements` specifies the
449
+ number of elements in the arrays to compare.
450
+
451
+ `_HEX` assertions produce failure messages with expected and actual array
452
+ contents formatted in hexadecimal.
453
+
454
+ For array of strings comparison behavior, see comments for
455
+ `TEST_ASSERT_EQUAL_STRING` in the preceding section.
456
+
457
+ Assertions fail upon the first element in the compared arrays found not to
458
+ match. Failure messages specify the array index of the failed comparison.
459
+
460
+ ##### `TEST_ASSERT_EQUAL_INT_ARRAY (expected, actual, num_elements)`
461
+
462
+ ##### `TEST_ASSERT_EQUAL_INT8_ARRAY (expected, actual, num_elements)`
463
+
464
+ ##### `TEST_ASSERT_EQUAL_INT16_ARRAY (expected, actual, num_elements)`
465
+
466
+ ##### `TEST_ASSERT_EQUAL_INT32_ARRAY (expected, actual, num_elements)`
467
+
468
+ ##### `TEST_ASSERT_EQUAL_INT64_ARRAY (expected, actual, num_elements)`
469
+
470
+ ##### `TEST_ASSERT_EQUAL_UINT_ARRAY (expected, actual, num_elements)`
471
+
472
+ ##### `TEST_ASSERT_EQUAL_UINT8_ARRAY (expected, actual, num_elements)`
473
+
474
+ ##### `TEST_ASSERT_EQUAL_UINT16_ARRAY (expected, actual, num_elements)`
475
+
476
+ ##### `TEST_ASSERT_EQUAL_UINT32_ARRAY (expected, actual, num_elements)`
477
+
478
+ ##### `TEST_ASSERT_EQUAL_UINT64_ARRAY (expected, actual, num_elements)`
479
+
480
+ ##### `TEST_ASSERT_EQUAL_HEX_ARRAY (expected, actual, num_elements)`
481
+
482
+ ##### `TEST_ASSERT_EQUAL_HEX8_ARRAY (expected, actual, num_elements)`
483
+
484
+ ##### `TEST_ASSERT_EQUAL_HEX16_ARRAY (expected, actual, num_elements)`
485
+
486
+ ##### `TEST_ASSERT_EQUAL_HEX32_ARRAY (expected, actual, num_elements)`
487
+
488
+ ##### `TEST_ASSERT_EQUAL_HEX64_ARRAY (expected, actual, num_elements)`
489
+
490
+ ##### `TEST_ASSERT_EQUAL_CHAR_ARRAY (expected, actual, num_elements)`
491
+
492
+ ##### `TEST_ASSERT_EQUAL_PTR_ARRAY (expected, actual, num_elements)`
493
+
494
+ ##### `TEST_ASSERT_EQUAL_STRING_ARRAY (expected, actual, num_elements)`
495
+
496
+ ##### `TEST_ASSERT_EQUAL_MEMORY_ARRAY (expected, actual, len, num_elements)`
497
+
498
+ `len` is the memory in bytes to be compared at each array element.
499
+
500
+ ### Integer Array Ranges (of all sizes)
501
+
502
+ These assertions verify that the `expected` array parameter is within +/- `delta`
503
+ (inclusive) of the `actual` array parameter. For example, if the expected value is
504
+ \[10, 12\] and the delta is 3 then the assertion will fail for any value
505
+ outside the range of \[7 - 13, 9 - 15\].
506
+
507
+ ##### `TEST_ASSERT_INT_ARRAY_WITHIN (delta, expected, actual, num_elements)`
508
+
509
+ ##### `TEST_ASSERT_INT8_ARRAY_WITHIN (delta, expected, actual, num_elements)`
510
+
511
+ ##### `TEST_ASSERT_INT16_ARRAY_WITHIN (delta, expected, actual, num_elements)`
512
+
513
+ ##### `TEST_ASSERT_INT32_ARRAY_WITHIN (delta, expected, actual, num_elements)`
514
+
515
+ ##### `TEST_ASSERT_INT64_ARRAY_WITHIN (delta, expected, actual, num_elements)`
516
+
517
+ ##### `TEST_ASSERT_UINT_ARRAY_WITHIN (delta, expected, actual, num_elements)`
518
+
519
+ ##### `TEST_ASSERT_UINT8_ARRAY_WITHIN (delta, expected, actual, num_elements)`
520
+
521
+ ##### `TEST_ASSERT_UINT16_ARRAY_WITHIN (delta, expected, actual, num_elements)`
522
+
523
+ ##### `TEST_ASSERT_UINT32_ARRAY_WITHIN (delta, expected, actual, num_elements)`
524
+
525
+ ##### `TEST_ASSERT_UINT64_ARRAY_WITHIN (delta, expected, actual, num_elements)`
526
+
527
+ ##### `TEST_ASSERT_HEX_ARRAY_WITHIN (delta, expected, actual, num_elements)`
528
+
529
+ ##### `TEST_ASSERT_HEX8_ARRAY_WITHIN (delta, expected, actual, num_elements)`
530
+
531
+ ##### `TEST_ASSERT_HEX16_ARRAY_WITHIN (delta, expected, actual, num_elements)`
532
+
533
+ ##### `TEST_ASSERT_HEX32_ARRAY_WITHIN (delta, expected, actual, num_elements)`
534
+
535
+ ##### `TEST_ASSERT_HEX64_ARRAY_WITHIN (delta, expected, actual, num_elements)`
536
+
537
+ ##### `TEST_ASSERT_CHAR_ARRAY_WITHIN (delta, expected, actual, num_elements)`
538
+
539
+ ### Each Equal (Arrays to Single Value)
540
+
541
+ `expected` are single values and `actual` are arrays. `num_elements` specifies
542
+ the number of elements in the arrays to compare.
543
+
544
+ `_HEX` assertions produce failure messages with expected and actual array
545
+ contents formatted in hexadecimal.
546
+
547
+ Assertions fail upon the first element in the compared arrays found not to
548
+ match. Failure messages specify the array index of the failed comparison.
549
+
550
+ #### `TEST_ASSERT_EACH_EQUAL_INT (expected, actual, num_elements)`
551
+
552
+ #### `TEST_ASSERT_EACH_EQUAL_INT8 (expected, actual, num_elements)`
553
+
554
+ #### `TEST_ASSERT_EACH_EQUAL_INT16 (expected, actual, num_elements)`
555
+
556
+ #### `TEST_ASSERT_EACH_EQUAL_INT32 (expected, actual, num_elements)`
557
+
558
+ #### `TEST_ASSERT_EACH_EQUAL_INT64 (expected, actual, num_elements)`
559
+
560
+ #### `TEST_ASSERT_EACH_EQUAL_UINT (expected, actual, num_elements)`
561
+
562
+ #### `TEST_ASSERT_EACH_EQUAL_UINT8 (expected, actual, num_elements)`
563
+
564
+ #### `TEST_ASSERT_EACH_EQUAL_UINT16 (expected, actual, num_elements)`
565
+
566
+ #### `TEST_ASSERT_EACH_EQUAL_UINT32 (expected, actual, num_elements)`
567
+
568
+ #### `TEST_ASSERT_EACH_EQUAL_UINT64 (expected, actual, num_elements)`
569
+
570
+ #### `TEST_ASSERT_EACH_EQUAL_HEX (expected, actual, num_elements)`
571
+
572
+ #### `TEST_ASSERT_EACH_EQUAL_HEX8 (expected, actual, num_elements)`
573
+
574
+ #### `TEST_ASSERT_EACH_EQUAL_HEX16 (expected, actual, num_elements)`
575
+
576
+ #### `TEST_ASSERT_EACH_EQUAL_HEX32 (expected, actual, num_elements)`
577
+
578
+ #### `TEST_ASSERT_EACH_EQUAL_HEX64 (expected, actual, num_elements)`
579
+
580
+ #### `TEST_ASSERT_EACH_EQUAL_CHAR (expected, actual, num_elements)`
581
+
582
+ #### `TEST_ASSERT_EACH_EQUAL_PTR (expected, actual, num_elements)`
583
+
584
+ #### `TEST_ASSERT_EACH_EQUAL_STRING (expected, actual, num_elements)`
585
+
586
+ #### `TEST_ASSERT_EACH_EQUAL_MEMORY (expected, actual, len, num_elements)`
587
+
588
+ `len` is the memory in bytes to be compared at each array element.
589
+
590
+
591
+ ### Floating Point (If enabled)
592
+
593
+ ##### `TEST_ASSERT_FLOAT_WITHIN (delta, expected, actual)`
594
+
595
+ Asserts that the `actual` value is within +/- `delta` of the `expected` value.
596
+ The nature of floating point representation is such that exact evaluations of
597
+ equality are not guaranteed.
598
+
599
+
600
+ ##### `TEST_ASSERT_EQUAL_FLOAT (expected, actual)`
601
+
602
+ Asserts that the ?actual?value is "close enough to be considered equal" to the
603
+ `expected` value. If you are curious about the details, refer to the Advanced
604
+ Asserting section for more details on this. Omitting a user-specified delta in a
605
+ floating point assertion is both a shorthand convenience and a requirement of
606
+ code generation conventions for CMock.
607
+
608
+
609
+ ##### `TEST_ASSERT_EQUAL_FLOAT_ARRAY (expected, actual, num_elements)`
610
+
611
+ See Array assertion section for details. Note that individual array element
612
+ float comparisons are executed using T?EST_ASSERT_EQUAL_FLOAT?.That is, user
613
+ specified delta comparison values requires a custom-implemented floating point
614
+ array assertion.
615
+
616
+
617
+ ##### `TEST_ASSERT_FLOAT_IS_INF (actual)`
618
+
619
+ Asserts that `actual` parameter is equivalent to positive infinity floating
620
+ point representation.
621
+
622
+
623
+ ##### `TEST_ASSERT_FLOAT_IS_NEG_INF (actual)`
624
+
625
+ Asserts that `actual` parameter is equivalent to negative infinity floating
626
+ point representation.
627
+
628
+
629
+ ##### `TEST_ASSERT_FLOAT_IS_NAN (actual)`
630
+
631
+ Asserts that `actual` parameter is a Not A Number floating point representation.
632
+
633
+
634
+ ##### `TEST_ASSERT_FLOAT_IS_DETERMINATE (actual)`
635
+
636
+ Asserts that ?actual?parameter is a floating point representation usable for
637
+ mathematical operations. That is, the `actual` parameter is neither positive
638
+ infinity nor negative infinity nor Not A Number floating point representations.
639
+
640
+
641
+ ##### `TEST_ASSERT_FLOAT_IS_NOT_INF (actual)`
642
+
643
+ Asserts that `actual` parameter is a value other than positive infinity floating
644
+ point representation.
645
+
646
+
647
+ ##### `TEST_ASSERT_FLOAT_IS_NOT_NEG_INF (actual)`
648
+
649
+ Asserts that `actual` parameter is a value other than negative infinity floating
650
+ point representation.
651
+
652
+
653
+ ##### `TEST_ASSERT_FLOAT_IS_NOT_NAN (actual)`
654
+
655
+ Asserts that `actual` parameter is a value other than Not A Number floating
656
+ point representation.
657
+
658
+
659
+ ##### `TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE (actual)`
660
+
661
+ Asserts that `actual` parameter is not usable for mathematical operations. That
662
+ is, the `actual` parameter is either positive infinity or negative infinity or
663
+ Not A Number floating point representations.
664
+
665
+
666
+ ### Double (If enabled)
667
+
668
+ ##### `TEST_ASSERT_DOUBLE_WITHIN (delta, expected, actual)`
669
+
670
+ Asserts that the `actual` value is within +/- `delta` of the `expected` value.
671
+ The nature of floating point representation is such that exact evaluations of
672
+ equality are not guaranteed.
673
+
674
+
675
+ ##### `TEST_ASSERT_EQUAL_DOUBLE (expected, actual)`
676
+
677
+ Asserts that the `actual` value is "close enough to be considered equal" to the
678
+ `expected` value. If you are curious about the details, refer to the Advanced
679
+ Asserting section for more details. Omitting a user-specified delta in a
680
+ floating point assertion is both a shorthand convenience and a requirement of
681
+ code generation conventions for CMock.
682
+
683
+
684
+ ##### `TEST_ASSERT_EQUAL_DOUBLE_ARRAY (expected, actual, num_elements)`
685
+
686
+ See Array assertion section for details. Note that individual array element
687
+ double comparisons are executed using `TEST_ASSERT_EQUAL_DOUBLE`.That is, user
688
+ specified delta comparison values requires a custom implemented double array
689
+ assertion.
690
+
691
+
692
+ ##### `TEST_ASSERT_DOUBLE_IS_INF (actual)`
693
+
694
+ Asserts that `actual` parameter is equivalent to positive infinity floating
695
+ point representation.
696
+
697
+
698
+ ##### `TEST_ASSERT_DOUBLE_IS_NEG_INF (actual)`
699
+
700
+ Asserts that `actual` parameter is equivalent to negative infinity floating point
701
+ representation.
702
+
703
+
704
+ ##### `TEST_ASSERT_DOUBLE_IS_NAN (actual)`
705
+
706
+ Asserts that `actual` parameter is a Not A Number floating point representation.
707
+
708
+
709
+ ##### `TEST_ASSERT_DOUBLE_IS_DETERMINATE (actual)`
710
+
711
+ Asserts that `actual` parameter is a floating point representation usable for
712
+ mathematical operations. That is, the ?actual?parameter is neither positive
713
+ infinity nor negative infinity nor Not A Number floating point representations.
714
+
715
+
716
+ ##### `TEST_ASSERT_DOUBLE_IS_NOT_INF (actual)`
717
+
718
+ Asserts that `actual` parameter is a value other than positive infinity floating
719
+ point representation.
720
+
721
+
722
+ ##### `TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF (actual)`
723
+
724
+ Asserts that `actual` parameter is a value other than negative infinity floating
725
+ point representation.
726
+
727
+
728
+ ##### `TEST_ASSERT_DOUBLE_IS_NOT_NAN (actual)`
729
+
730
+ Asserts that `actual` parameter is a value other than Not A Number floating
731
+ point representation.
732
+
733
+
734
+ ##### `TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE (actual)`
735
+
736
+ Asserts that `actual` parameter is not usable for mathematical operations. That
737
+ is, the `actual` parameter is either positive infinity or negative infinity or
738
+ Not A Number floating point representations.
739
+
740
+
741
+ ## Advanced Asserting: Details On Tricky Assertions
742
+
743
+ This section helps you understand how to deal with some of the trickier
744
+ assertion situations you may run into. It will give you a glimpse into some of
745
+ the under-the-hood details of Unity's assertion mechanisms. If you're one of
746
+ those people who likes to know what is going on in the background, read on. If
747
+ not, feel free to ignore the rest of this document until you need it.
748
+
749
+
750
+ ### How do the EQUAL assertions work for FLOAT and DOUBLE?
751
+
752
+ As you may know, directly checking for equality between a pair of floats or a
753
+ pair of doubles is sloppy at best and an outright no-no at worst. Floating point
754
+ values can often be represented in multiple ways, particularly after a series of
755
+ operations on a value. Initializing a variable to the value of 2.0 is likely to
756
+ result in a floating point representation of 2 x 20,but a series of
757
+ mathematical operations might result in a representation of 8 x 2-2
758
+ that also evaluates to a value of 2. At some point repeated operations cause
759
+ equality checks to fail.
760
+
761
+ So Unity doesn't do direct floating point comparisons for equality. Instead, it
762
+ checks if two floating point values are "really close." If you leave Unity
763
+ running with defaults, "really close" means "within a significant bit or two."
764
+ Under the hood, `TEST_ASSERT_EQUAL_FLOAT` is really `TEST_ASSERT_FLOAT_WITHIN`
765
+ with the `delta` parameter calculated on the fly. For single precision, delta is
766
+ the expected value multiplied by 0.00001, producing a very small proportional
767
+ range around the expected value.
768
+
769
+ If you are expecting a value of 20,000.0 the delta is calculated to be 0.2. So
770
+ any value between 19,999.8 and 20,000.2 will satisfy the equality check. This
771
+ works out to be roughly a single bit of range for a single-precision number, and
772
+ that's just about as tight a tolerance as you can reasonably get from a floating
773
+ point value.
774
+
775
+ So what happens when it's zero? Zero - even more than other floating point
776
+ values - can be represented many different ways. It doesn't matter if you have
777
+ 0 x 20 or 0 x 263.It's still zero, right? Luckily, if you
778
+ subtract these values from each other, they will always produce a difference of
779
+ zero, which will still fall between 0 plus or minus a delta of 0. So it still
780
+ works!
781
+
782
+ Double precision floating point numbers use a much smaller multiplier, again
783
+ approximating a single bit of error.
784
+
785
+ If you don't like these ranges and you want to make your floating point equality
786
+ assertions less strict, you can change these multipliers to whatever you like by
787
+ defining UNITY_FLOAT_PRECISION and UNITY_DOUBLE_PRECISION. See Unity
788
+ documentation for more.
789
+
790
+
791
+ ### How do we deal with targets with non-standard int sizes?
792
+
793
+ It's "fun" that C is a standard where something as fundamental as an integer
794
+ varies by target. According to the C standard, an `int` is to be the target's
795
+ natural register size, and it should be at least 16-bits and a multiple of a
796
+ byte. It also guarantees an order of sizes:
797
+
798
+ ```C
799
+ char <= short <= int <= long <= long long
800
+ ```
801
+
802
+ Most often, `int` is 32-bits. In many cases in the embedded world, `int` is
803
+ 16-bits. There are rare microcontrollers out there that have 24-bit integers,
804
+ and this remains perfectly standard C.
805
+
806
+ To make things even more interesting, there are compilers and targets out there
807
+ that have a hard choice to make. What if their natural register size is 10-bits
808
+ or 12-bits? Clearly they can't fulfill _both_ the requirement to be at least
809
+ 16-bits AND the requirement to match the natural register size. In these
810
+ situations, they often choose the natural register size, leaving us with
811
+ something like this:
812
+
813
+ ```C
814
+ char (8 bit) <= short (12 bit) <= int (12 bit) <= long (16 bit)
815
+ ```
816
+
817
+ Um... yikes. It's obviously breaking a rule or two... but they had to break SOME
818
+ rules, so they made a choice.
819
+
820
+ When the C99 standard rolled around, it introduced alternate standard-size types.
821
+ It also introduced macros for pulling in MIN/MAX values for your integer types.
822
+ It's glorious! Unfortunately, many embedded compilers can't be relied upon to
823
+ use the C99 types (Sometimes because they have weird register sizes as described
824
+ above. Sometimes because they don't feel like it?).
825
+
826
+ A goal of Unity from the beginning was to support every combination of
827
+ microcontroller or microprocessor and C compiler. Over time, we've gotten really
828
+ close to this. There are a few tricks that you should be aware of, though, if
829
+ you're going to do this effectively on some of these more idiosyncratic targets.
830
+
831
+ First, when setting up Unity for a new target, you're going to want to pay
832
+ special attention to the macros for automatically detecting types
833
+ (where available) or manually configuring them yourself. You can get information
834
+ on both of these in Unity's documentation.
835
+
836
+ What about the times where you suddenly need to deal with something odd, like a
837
+ 24-bit `int`? The simplest solution is to use the next size up. If you have a
838
+ 24-bit `int`, configure Unity to use 32-bit integers. If you have a 12-bit
839
+ `int`, configure Unity to use 16 bits. There are two ways this is going to
840
+ affect you:
841
+
842
+ 1. When Unity displays errors for you, it's going to pad the upper unused bits
843
+ with zeros.
844
+ 2. You're going to have to be careful of assertions that perform signed
845
+ operations, particularly `TEST_ASSERT_INT_WITHIN`.Such assertions might wrap
846
+ your `int` in the wrong place, and you could experience false failures. You can
847
+ always back down to a simple `TEST_ASSERT` and do the operations yourself.
848
+
849
+
850
+ *Find The Latest of This And More at [ThrowTheSwitch.org](https://throwtheswitch.org)*