ceedling 0.18.0 → 0.19.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 (626) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +17 -13
  3. data/ceedling-0.18.0.gem +0 -0
  4. data/docs/CeedlingPacket.md +7 -5
  5. data/lib/ceedling/configurator_builder.rb +10 -21
  6. data/lib/ceedling/configurator_setup.rb +16 -17
  7. data/lib/ceedling/constants.rb +4 -3
  8. data/lib/ceedling/defaults.rb +9 -4
  9. data/lib/ceedling/dependinator.rb +0 -1
  10. data/lib/ceedling/file_path_utils.rb +22 -26
  11. data/lib/ceedling/flaginator.rb +5 -5
  12. data/lib/ceedling/generator.rb +8 -7
  13. data/lib/ceedling/preprocessinator_file_handler.rb +6 -6
  14. data/lib/ceedling/preprocessinator_includes_handler.rb +1 -1
  15. data/lib/ceedling/rules_release.rake +5 -3
  16. data/lib/ceedling/rules_tests.rake +2 -1
  17. data/lib/ceedling/tasks_base.rake +1 -1
  18. data/lib/ceedling/tasks_vendor.rake +9 -10
  19. data/lib/ceedling/tool_executor.rb +23 -22
  20. data/lib/ceedling/version.rb +3 -3
  21. data/plugins/module_generator/lib/module_generator.rb +3 -3
  22. data/plugins/xml_tests_report/xml_tests_report.rb +1 -1
  23. data/spec/preprocessinator_includes_handler_spec.rb +1 -1
  24. data/spec/spec_system_helper.rb +192 -192
  25. data/vendor/c_exception/vendor/unity/Gemfile +4 -0
  26. data/vendor/c_exception/vendor/unity/Gemfile.lock +12 -0
  27. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +115 -0
  28. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
  29. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
  30. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -0
  31. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +320 -0
  32. data/vendor/c_exception/vendor/unity/auto/parseOutput.rb +189 -0
  33. data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +23 -0
  34. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +139 -0
  35. data/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  36. data/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  37. data/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +216 -0
  38. data/vendor/c_exception/vendor/unity/docs/license.txt +31 -0
  39. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +41 -0
  40. data/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +5 -0
  41. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
  42. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
  43. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +9 -0
  44. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
  45. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
  46. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
  47. data/vendor/{unity/examples/example_3/test/no_ruby → c_exception/vendor/unity/examples/example_1/test/test_runners}/TestProductionCode2_Runner.c +16 -3
  48. data/vendor/{unity/examples/example_3/test/no_ruby → c_exception/vendor/unity/examples/example_1/test/test_runners}/TestProductionCode_Runner.c +16 -3
  49. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +45 -0
  50. data/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +5 -0
  51. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
  52. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
  53. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +9 -0
  54. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
  55. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
  56. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
  57. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
  58. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
  59. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
  60. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
  61. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
  62. data/vendor/c_exception/vendor/unity/examples/example_3/makefile +41 -0
  63. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +44 -0
  64. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +256 -0
  65. data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +19 -0
  66. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
  67. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
  68. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +9 -0
  69. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
  70. data/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
  71. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
  72. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
  73. data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  74. data/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +50 -0
  75. data/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
  76. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +37 -0
  77. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -0
  78. data/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +9 -0
  79. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +387 -0
  80. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +82 -0
  81. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  82. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  83. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  84. data/vendor/c_exception/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  85. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +341 -0
  86. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +41 -0
  87. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  88. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  89. data/vendor/c_exception/vendor/unity/makefile +37 -0
  90. data/vendor/c_exception/vendor/unity/rakefile.rb +61 -0
  91. data/vendor/c_exception/vendor/unity/rakefile_helper.rb +249 -0
  92. data/vendor/c_exception/vendor/unity/release/build.info +2 -0
  93. data/vendor/c_exception/vendor/unity/release/version.info +2 -0
  94. data/vendor/c_exception/vendor/unity/src/unity.c +1145 -0
  95. data/vendor/c_exception/vendor/unity/src/unity.h +307 -0
  96. data/vendor/c_exception/vendor/unity/src/unity_internals.h +620 -0
  97. data/vendor/c_exception/vendor/unity/targets/clang_strict.yml +83 -0
  98. data/vendor/c_exception/vendor/unity/targets/gcc_32.yml +44 -0
  99. data/vendor/c_exception/vendor/unity/targets/gcc_64.yml +45 -0
  100. data/vendor/c_exception/vendor/unity/targets/hitech_picc18.yml +101 -0
  101. data/vendor/c_exception/vendor/unity/targets/iar_arm_v4.yml +89 -0
  102. data/vendor/c_exception/vendor/unity/targets/iar_arm_v5.yml +79 -0
  103. data/vendor/c_exception/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  104. data/vendor/c_exception/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  105. data/vendor/c_exception/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  106. data/vendor/c_exception/vendor/unity/targets/iar_msp430.yml +94 -0
  107. data/vendor/c_exception/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  108. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +57 -0
  109. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +53 -0
  110. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +79 -0
  111. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +75 -0
  112. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +88 -0
  113. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +88 -0
  114. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +76 -0
  115. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +88 -0
  116. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +88 -0
  117. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +89 -0
  118. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +63 -0
  119. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +66 -0
  120. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +54 -0
  121. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +63 -0
  122. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +66 -0
  123. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +67 -0
  124. data/vendor/c_exception/vendor/unity/test/test_generate_test_runner.rb +88 -0
  125. data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -0
  126. data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +9 -0
  127. data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +51 -0
  128. data/vendor/c_exception/vendor/unity/test/testparameterized.c +101 -0
  129. data/vendor/c_exception/vendor/unity/test/testunity.c +3447 -0
  130. data/vendor/cmock/README.md +1 -1
  131. data/vendor/cmock/Rakefile +106 -104
  132. data/vendor/cmock/config/production_environment.rb +14 -14
  133. data/vendor/cmock/config/test_environment.rb +16 -16
  134. data/vendor/cmock/docs/CMock_Summary.md +9 -0
  135. data/vendor/cmock/docs/license.txt +2 -2
  136. data/vendor/cmock/examples/make_example/Makefile +30 -0
  137. data/vendor/cmock/examples/make_example/src/foo.c +5 -0
  138. data/vendor/cmock/examples/make_example/src/foo.h +5 -0
  139. data/vendor/cmock/examples/make_example/src/main.c +15 -0
  140. data/vendor/cmock/examples/make_example/test/test_foo.c +17 -0
  141. data/vendor/cmock/examples/make_example/test/test_main.c +15 -0
  142. data/vendor/cmock/examples/{gcc.yml → temp_sensor/gcc.yml} +43 -43
  143. data/vendor/cmock/examples/{iar_v4.yml → temp_sensor/iar_v4.yml} +91 -91
  144. data/vendor/cmock/examples/{iar_v5.yml → temp_sensor/iar_v5.yml} +80 -80
  145. data/vendor/cmock/examples/{rakefile.rb → temp_sensor/rakefile.rb} +32 -32
  146. data/vendor/cmock/examples/{rakefile_helper.rb → temp_sensor/rakefile_helper.rb} +270 -270
  147. data/vendor/cmock/examples/{src → temp_sensor/src}/AT91SAM7X256.h +2556 -2556
  148. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcConductor.c +42 -42
  149. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcConductor.h +11 -11
  150. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardware.c +27 -27
  151. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardware.h +9 -9
  152. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardwareConfigurator.c +18 -18
  153. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcHardwareConfigurator.h +10 -10
  154. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcModel.c +33 -33
  155. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcModel.h +13 -13
  156. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcTemperatureSensor.c +51 -51
  157. data/vendor/cmock/examples/{src → temp_sensor/src}/AdcTemperatureSensor.h +10 -10
  158. data/vendor/cmock/examples/{src → temp_sensor/src}/Executor.c +25 -25
  159. data/vendor/cmock/examples/{src → temp_sensor/src}/Executor.h +9 -9
  160. data/vendor/cmock/examples/{src → temp_sensor/src}/IntrinsicsWrapper.c +18 -18
  161. data/vendor/cmock/examples/{src → temp_sensor/src}/IntrinsicsWrapper.h +7 -7
  162. data/vendor/cmock/examples/{src → temp_sensor/src}/Main.c +46 -46
  163. data/vendor/cmock/examples/{src → temp_sensor/src}/Main.h +7 -7
  164. data/vendor/cmock/examples/{src → temp_sensor/src}/Model.c +10 -10
  165. data/vendor/cmock/examples/{src → temp_sensor/src}/Model.h +8 -8
  166. data/vendor/cmock/examples/{src → temp_sensor/src}/ModelConfig.h +7 -7
  167. data/vendor/cmock/examples/{src → temp_sensor/src}/TaskScheduler.c +72 -72
  168. data/vendor/cmock/examples/{src → temp_sensor/src}/TaskScheduler.h +11 -11
  169. data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureCalculator.c +27 -27
  170. data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureCalculator.h +6 -6
  171. data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureFilter.c +39 -39
  172. data/vendor/cmock/examples/{src → temp_sensor/src}/TemperatureFilter.h +10 -10
  173. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConductor.c +15 -15
  174. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConductor.h +9 -9
  175. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConfigurator.c +51 -51
  176. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerConfigurator.h +15 -15
  177. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerHardware.c +15 -15
  178. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerHardware.h +8 -8
  179. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptConfigurator.c +55 -55
  180. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptConfigurator.h +13 -13
  181. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptHandler.c +25 -25
  182. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerInterruptHandler.h +10 -10
  183. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerModel.c +9 -9
  184. data/vendor/cmock/examples/{src → temp_sensor/src}/TimerModel.h +8 -8
  185. data/vendor/cmock/examples/{src → temp_sensor/src}/Types.h +103 -103
  186. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartBaudRateRegisterCalculator.c +18 -18
  187. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartBaudRateRegisterCalculator.h +6 -6
  188. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConductor.c +21 -21
  189. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConductor.h +7 -7
  190. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConfigurator.c +39 -39
  191. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartConfigurator.h +13 -13
  192. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartHardware.c +22 -22
  193. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartHardware.h +9 -9
  194. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartModel.c +34 -34
  195. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartModel.h +10 -10
  196. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartPutChar.c +16 -16
  197. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartPutChar.h +8 -8
  198. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartTransmitBufferStatus.c +7 -7
  199. data/vendor/cmock/examples/{src → temp_sensor/src}/UsartTransmitBufferStatus.h +8 -8
  200. data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcConductor.c +121 -121
  201. data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcHardware.c +44 -44
  202. data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcHardwareConfigurator.c +43 -43
  203. data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcModel.c +33 -33
  204. data/vendor/cmock/examples/{test → temp_sensor/test}/TestAdcTemperatureSensor.c +47 -47
  205. data/vendor/cmock/examples/{test → temp_sensor/test}/TestExecutor.c +36 -36
  206. data/vendor/cmock/examples/{test → temp_sensor/test}/TestMain.c +24 -24
  207. data/vendor/cmock/examples/{test → temp_sensor/test}/TestModel.c +20 -20
  208. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTaskScheduler.c +104 -104
  209. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTemperatureCalculator.c +33 -33
  210. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTemperatureFilter.c +69 -69
  211. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerConductor.c +32 -32
  212. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerConfigurator.c +112 -112
  213. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerHardware.c +26 -26
  214. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerInterruptConfigurator.c +78 -78
  215. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerInterruptHandler.c +66 -66
  216. data/vendor/cmock/examples/{test → temp_sensor/test}/TestTimerModel.c +18 -18
  217. data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartBaudRateRegisterCalculator.c +21 -21
  218. data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartConductor.c +40 -40
  219. data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartConfigurator.c +77 -77
  220. data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartHardware.c +37 -37
  221. data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartModel.c +36 -36
  222. data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartPutChar.c +43 -43
  223. data/vendor/cmock/examples/{test → temp_sensor/test}/TestUsartTransmitBufferStatus.c +22 -22
  224. data/vendor/cmock/iar/iar_v4/Resource/at91SAM7X256_FLASH.xcl +185 -185
  225. data/vendor/cmock/iar/iar_v4/Resource/at91SAM7X256_RAM.xcl +185 -185
  226. data/vendor/cmock/iar/iar_v4/Resource/ioat91sam7x256.ddf +2259 -2259
  227. data/vendor/cmock/iar/iar_v4/cmock_demo.dep +3691 -3691
  228. data/vendor/cmock/iar/iar_v4/cmock_demo.ewp +2581 -2581
  229. data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X-EK.h +61 -61
  230. data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.inc +2314 -2314
  231. data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.rdf +4704 -4704
  232. data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256.tcl +3407 -3407
  233. data/vendor/cmock/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +2268 -2268
  234. data/vendor/cmock/iar/iar_v4/incIAR/ioat91sam7x256.h +4380 -4380
  235. data/vendor/cmock/iar/iar_v4/incIAR/lib_AT91SAM7X256.h +4211 -4211
  236. data/vendor/cmock/iar/iar_v4/settings/cmock_demo.cspy.bat +32 -32
  237. data/vendor/cmock/iar/iar_v4/srcIAR/Cstartup.s79 +265 -265
  238. data/vendor/cmock/iar/iar_v4/srcIAR/Cstartup_SAM7.c +98 -98
  239. data/vendor/cmock/iar/iar_v5/Resource/at91SAM7X256_FLASH.icf +43 -43
  240. data/vendor/cmock/iar/iar_v5/Resource/at91SAM7X256_RAM.icf +42 -42
  241. data/vendor/cmock/iar/iar_v5/cmock_demo.dep +4204 -4204
  242. data/vendor/cmock/iar/iar_v5/cmock_demo.ewp +2426 -2426
  243. data/vendor/cmock/iar/iar_v5/incIAR/AT91SAM7X-EK.h +61 -61
  244. data/vendor/cmock/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +2268 -2268
  245. data/vendor/cmock/iar/iar_v5/incIAR/lib_AT91SAM7X256.h +4211 -4211
  246. data/vendor/cmock/iar/iar_v5/incIAR/project.h +30 -30
  247. data/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +33 -33
  248. data/vendor/cmock/iar/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +12 -12
  249. data/vendor/cmock/iar/iar_v5/settings/cmock_demo.cspy.bat +33 -33
  250. data/vendor/cmock/iar/iar_v5/settings/cmock_demo_Binary.jlink +12 -12
  251. data/vendor/cmock/iar/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +12 -12
  252. data/vendor/cmock/iar/iar_v5/settings/cmock_demo_RAM_Debug.jlink +12 -12
  253. data/vendor/cmock/iar/iar_v5/srcIAR/Cstartup.s +299 -299
  254. data/vendor/cmock/iar/iar_v5/srcIAR/Cstartup_SAM7.c +98 -98
  255. data/vendor/cmock/lib/cmock.rb +89 -89
  256. data/vendor/cmock/lib/cmock_config.rb +134 -133
  257. data/vendor/cmock/lib/cmock_file_writer.rb +40 -33
  258. data/vendor/cmock/lib/cmock_generator.rb +234 -215
  259. data/vendor/cmock/lib/cmock_generator_plugin_array.rb +63 -63
  260. data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +96 -78
  261. data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +52 -51
  262. data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +104 -86
  263. data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +68 -68
  264. data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +72 -71
  265. data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +1 -1
  266. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +2 -2
  267. data/vendor/cmock/lib/cmock_generator_utils.rb +228 -213
  268. data/vendor/cmock/lib/cmock_header_parser.rb +1 -1
  269. data/vendor/cmock/lib/cmock_plugin_manager.rb +40 -40
  270. data/vendor/cmock/lib/cmock_unityhelper_parser.rb +75 -75
  271. data/vendor/cmock/rakefile_helper.rb +381 -381
  272. data/vendor/cmock/release/build.info +1 -1
  273. data/vendor/cmock/release/version.info +1 -1
  274. data/vendor/cmock/scripts/create_makefile.rb +161 -0
  275. data/vendor/cmock/scripts/create_mock.rb +8 -0
  276. data/vendor/cmock/scripts/create_runner.rb +20 -0
  277. data/vendor/cmock/scripts/test_summary.rb +11 -0
  278. data/vendor/cmock/src/cmock.c +203 -192
  279. data/vendor/cmock/src/cmock.h +38 -36
  280. data/vendor/cmock/src/cmock_internals.h +11 -1
  281. data/vendor/cmock/targets/clang_strict.yml +90 -85
  282. data/vendor/cmock/targets/gcc.yml +58 -55
  283. data/vendor/cmock/targets/gcc_64.yml +58 -55
  284. data/vendor/cmock/targets/gcc_tiny.yml +80 -0
  285. data/vendor/cmock/targets/iar_arm_v4.yml +110 -108
  286. data/vendor/cmock/targets/iar_arm_v5.yml +95 -93
  287. data/vendor/cmock/test/c/TestCMockC.c +323 -323
  288. data/vendor/cmock/test/c/TestCMockC.yml +1 -0
  289. data/vendor/cmock/test/c/TestCMockCDynamic.c +186 -186
  290. data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +36 -36
  291. data/vendor/cmock/test/c/TestCMockC_Runner.c +39 -39
  292. data/vendor/cmock/test/system/systest_generator.rb +194 -194
  293. data/vendor/cmock/test/system/test_compilation/callingconv.h +11 -11
  294. data/vendor/cmock/test/system/test_compilation/osek.h +275 -275
  295. data/vendor/cmock/test/system/test_compilation/parsing.h +2 -0
  296. data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +375 -375
  297. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +459 -389
  298. data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +62 -0
  299. data/vendor/cmock/test/system/test_interactions/doesnt_leave_details_behind.yml +308 -0
  300. data/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +23 -23
  301. data/vendor/cmock/test/system/test_interactions/out_of_memory.yml +65 -0
  302. data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +38 -20
  303. data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return_with_plugins.yml +280 -0
  304. data/vendor/cmock/test/test_helper.rb +47 -47
  305. data/vendor/cmock/test/unit/cmock_config_test.rb +118 -118
  306. data/vendor/cmock/test/unit/cmock_config_test.yml +5 -5
  307. data/vendor/cmock/test/unit/cmock_file_writer_test.rb +27 -27
  308. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +507 -489
  309. data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +133 -133
  310. data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +257 -189
  311. data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +96 -93
  312. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +186 -0
  313. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +60 -81
  314. data/vendor/cmock/test/unit/{cmock_generator_plugin_expect_test.rb → cmock_generator_plugin_expect_b_test.rb} +202 -205
  315. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +116 -116
  316. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +105 -103
  317. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +134 -134
  318. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +377 -334
  319. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +1381 -1337
  320. data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +95 -95
  321. data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +223 -223
  322. data/vendor/cmock/vendor/c_exception/Gemfile +4 -0
  323. data/vendor/cmock/vendor/c_exception/Gemfile.lock +12 -0
  324. data/vendor/cmock/vendor/c_exception/LICENSE.txt +30 -0
  325. data/vendor/cmock/vendor/c_exception/README.md +146 -0
  326. data/vendor/cmock/vendor/c_exception/Rakefile +42 -0
  327. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  328. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  329. data/vendor/cmock/vendor/c_exception/docs/readme.txt +242 -0
  330. data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -0
  331. data/vendor/cmock/vendor/c_exception/lib/CException.h +86 -0
  332. data/vendor/cmock/vendor/c_exception/makefile +24 -0
  333. data/vendor/cmock/vendor/c_exception/release/build.info +2 -0
  334. data/vendor/cmock/vendor/c_exception/release/version.info +2 -0
  335. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +46 -0
  336. data/vendor/cmock/vendor/c_exception/test/TestException.c +342 -0
  337. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +74 -0
  338. data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile +4 -0
  339. data/vendor/cmock/vendor/c_exception/vendor/unity/Gemfile.lock +12 -0
  340. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +115 -0
  341. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
  342. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
  343. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -0
  344. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +320 -0
  345. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parseOutput.rb +189 -0
  346. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +23 -0
  347. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +139 -0
  348. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  349. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  350. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +216 -0
  351. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +31 -0
  352. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +41 -0
  353. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +5 -0
  354. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
  355. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
  356. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +9 -0
  357. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
  358. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
  359. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
  360. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +46 -0
  361. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +50 -0
  362. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +45 -0
  363. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +5 -0
  364. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
  365. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
  366. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +9 -0
  367. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
  368. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
  369. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
  370. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
  371. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
  372. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
  373. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
  374. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
  375. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/makefile +41 -0
  376. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +44 -0
  377. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +256 -0
  378. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +19 -0
  379. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
  380. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
  381. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +9 -0
  382. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
  383. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
  384. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
  385. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
  386. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  387. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/no_ruby/TestProductionCode_Runner.c +50 -0
  388. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
  389. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +37 -0
  390. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +179 -0
  391. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +9 -0
  392. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +387 -0
  393. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +82 -0
  394. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  395. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  396. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  397. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  398. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +341 -0
  399. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +41 -0
  400. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  401. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  402. data/vendor/cmock/vendor/c_exception/vendor/unity/makefile +37 -0
  403. data/vendor/cmock/vendor/c_exception/vendor/unity/rakefile.rb +61 -0
  404. data/vendor/cmock/vendor/c_exception/vendor/unity/rakefile_helper.rb +249 -0
  405. data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +2 -0
  406. data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +2 -0
  407. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +1145 -0
  408. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +307 -0
  409. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +620 -0
  410. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/clang_strict.yml +83 -0
  411. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/gcc_32.yml +44 -0
  412. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/gcc_64.yml +45 -0
  413. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/hitech_picc18.yml +101 -0
  414. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v4.yml +89 -0
  415. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v5.yml +79 -0
  416. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  417. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  418. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  419. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_msp430.yml +94 -0
  420. data/vendor/cmock/vendor/c_exception/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  421. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +57 -0
  422. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +53 -0
  423. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +79 -0
  424. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +75 -0
  425. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +88 -0
  426. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +88 -0
  427. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +76 -0
  428. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +88 -0
  429. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +88 -0
  430. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +89 -0
  431. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +63 -0
  432. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +66 -0
  433. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +54 -0
  434. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +63 -0
  435. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +66 -0
  436. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +67 -0
  437. data/vendor/cmock/vendor/c_exception/vendor/unity/test/test_generate_test_runner.rb +88 -0
  438. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +51 -0
  439. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +9 -0
  440. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +51 -0
  441. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testparameterized.c +101 -0
  442. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testunity.c +3447 -0
  443. data/vendor/cmock/vendor/unity/README.md +211 -0
  444. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +115 -0
  445. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -0
  446. data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -0
  447. data/vendor/cmock/vendor/unity/auto/generate_module.rb +202 -0
  448. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +374 -0
  449. data/vendor/cmock/vendor/unity/auto/parseOutput.rb +191 -0
  450. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +23 -0
  451. data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +8 -0
  452. data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +135 -0
  453. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +148 -0
  454. data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
  455. data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
  456. data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +224 -0
  457. data/vendor/cmock/vendor/unity/docs/license.txt +21 -0
  458. data/vendor/{unity/examples/example_3 → cmock/vendor/unity/examples/example_1}/makefile +9 -5
  459. data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +5 -0
  460. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
  461. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
  462. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -0
  463. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
  464. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
  465. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
  466. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
  467. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
  468. data/vendor/cmock/vendor/unity/examples/example_2/makefile +71 -0
  469. data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +5 -0
  470. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
  471. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
  472. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -0
  473. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
  474. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
  475. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
  476. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
  477. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
  478. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
  479. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
  480. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
  481. data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +43 -0
  482. data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +256 -0
  483. data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +19 -0
  484. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
  485. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
  486. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -0
  487. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
  488. data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
  489. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
  490. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
  491. data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
  492. data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +48 -0
  493. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +179 -0
  494. data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +9 -0
  495. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +423 -0
  496. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +78 -0
  497. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +46 -0
  498. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +45 -0
  499. data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +19 -0
  500. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  501. data/vendor/cmock/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  502. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +373 -0
  503. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +43 -0
  504. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +57 -0
  505. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  506. data/vendor/cmock/vendor/unity/release/build.info +2 -0
  507. data/vendor/cmock/vendor/unity/release/version.info +2 -0
  508. data/vendor/cmock/vendor/unity/src/unity.c +1324 -0
  509. data/vendor/cmock/vendor/unity/src/unity.h +285 -0
  510. data/vendor/cmock/vendor/unity/src/unity_internals.h +758 -0
  511. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +57 -0
  512. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +53 -0
  513. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +51 -0
  514. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +12 -0
  515. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -0
  516. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +76 -0
  517. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  518. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +11 -0
  519. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -0
  520. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -0
  521. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +77 -0
  522. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -0
  523. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -0
  524. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -0
  525. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +63 -0
  526. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +66 -0
  527. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +54 -0
  528. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +63 -0
  529. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +66 -0
  530. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +67 -0
  531. data/vendor/cmock/vendor/unity/test/rakefile +60 -0
  532. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +255 -0
  533. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +84 -0
  534. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +84 -0
  535. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +50 -0
  536. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +51 -0
  537. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +47 -0
  538. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +48 -0
  539. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -0
  540. data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +47 -0
  541. data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +101 -0
  542. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +89 -0
  543. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +79 -0
  544. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +79 -0
  545. data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  546. data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +83 -0
  547. data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +94 -0
  548. data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +85 -0
  549. data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +51 -0
  550. data/vendor/cmock/vendor/unity/test/testdata/sample.yml +9 -0
  551. data/vendor/cmock/vendor/unity/test/testdata/testsample.c +51 -0
  552. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +102 -0
  553. data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +104 -0
  554. data/vendor/cmock/vendor/unity/test/tests/testunity.c +3656 -0
  555. data/vendor/unity/README.md +211 -203
  556. data/vendor/unity/auto/colour_reporter.rb +38 -38
  557. data/vendor/unity/auto/generate_config.yml +36 -36
  558. data/vendor/unity/auto/generate_module.rb +202 -202
  559. data/vendor/unity/auto/generate_test_runner.rb +389 -347
  560. data/vendor/unity/auto/parseOutput.rb +2 -0
  561. data/vendor/unity/auto/unity_test_summary.py +135 -135
  562. data/vendor/unity/auto/unity_test_summary.rb +148 -139
  563. data/vendor/unity/docs/Unity Summary.odt +0 -0
  564. data/vendor/unity/docs/Unity Summary.pdf +0 -0
  565. data/vendor/unity/docs/Unity Summary.txt +224 -216
  566. data/vendor/unity/docs/license.txt +21 -21
  567. data/vendor/unity/examples/example_1/makefile +7 -3
  568. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +29 -9
  569. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +26 -6
  570. data/vendor/unity/examples/example_2/makefile +7 -4
  571. data/vendor/unity/extras/fixture/rakefile.rb +48 -48
  572. data/vendor/unity/extras/fixture/rakefile_helper.rb +179 -179
  573. data/vendor/unity/extras/fixture/src/unity_fixture.c +123 -78
  574. data/vendor/unity/extras/fixture/src/unity_fixture.h +6 -14
  575. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +12 -15
  576. data/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +25 -0
  577. data/vendor/unity/extras/fixture/test/Makefile +35 -0
  578. data/vendor/unity/extras/fixture/test/main/AllTests.c +2 -1
  579. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +99 -4
  580. data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +10 -0
  581. data/vendor/unity/extras/fixture/test/unity_output_Spy.c +3 -1
  582. data/vendor/unity/release/build.info +1 -1
  583. data/vendor/unity/release/version.info +1 -1
  584. data/vendor/unity/src/unity.c +1324 -1177
  585. data/vendor/unity/src/unity.h +285 -272
  586. data/vendor/unity/src/unity_internals.h +758 -692
  587. data/vendor/unity/test/expectdata/testsample_head1.c +51 -0
  588. data/vendor/unity/test/expectdata/testsample_head1.h +12 -0
  589. data/vendor/unity/test/expectdata/testsample_mock_cmd.c +1 -0
  590. data/vendor/unity/test/expectdata/testsample_mock_def.c +1 -0
  591. data/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  592. data/vendor/unity/test/expectdata/testsample_mock_head1.h +11 -0
  593. data/vendor/unity/test/expectdata/testsample_mock_new1.c +3 -2
  594. data/vendor/unity/test/expectdata/testsample_mock_new2.c +1 -0
  595. data/vendor/unity/test/expectdata/testsample_mock_param.c +1 -0
  596. data/vendor/unity/test/expectdata/testsample_mock_run1.c +3 -2
  597. data/vendor/unity/test/expectdata/testsample_mock_run2.c +1 -0
  598. data/vendor/unity/test/expectdata/testsample_mock_yaml.c +4 -3
  599. data/vendor/unity/test/expectdata/testsample_new1.c +2 -2
  600. data/vendor/unity/test/expectdata/testsample_run1.c +2 -2
  601. data/vendor/unity/test/expectdata/testsample_yaml.c +3 -3
  602. data/vendor/unity/test/rakefile +60 -60
  603. data/vendor/unity/test/rakefile_helper.rb +255 -249
  604. data/vendor/unity/test/targets/clang_file.yml +83 -0
  605. data/vendor/unity/test/targets/clang_strict.yml +83 -83
  606. data/vendor/unity/test/targets/gcc_32.yml +49 -49
  607. data/vendor/unity/test/targets/gcc_64.yml +50 -50
  608. data/vendor/unity/test/targets/gcc_auto_limits.yml +46 -46
  609. data/vendor/unity/test/targets/gcc_auto_sizeof.yml +47 -47
  610. data/vendor/unity/test/targets/gcc_auto_stdint.yml +58 -58
  611. data/vendor/unity/test/targets/gcc_manual_math.yml +46 -0
  612. data/vendor/unity/test/targets/hitech_picc18.yml +101 -101
  613. data/vendor/unity/test/targets/iar_arm_v4.yml +89 -89
  614. data/vendor/unity/test/targets/iar_arm_v5.yml +79 -79
  615. data/vendor/unity/test/targets/iar_arm_v5_3.yml +79 -79
  616. data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -93
  617. data/vendor/unity/test/targets/iar_cortexm3_v5.yml +83 -83
  618. data/vendor/unity/test/targets/iar_msp430.yml +94 -94
  619. data/vendor/unity/test/targets/iar_sh2a_v6.yml +85 -85
  620. data/vendor/unity/test/testdata/mocksample.c +51 -51
  621. data/vendor/unity/test/testdata/sample.yml +8 -8
  622. data/vendor/unity/test/testdata/testsample.c +51 -51
  623. data/vendor/unity/test/tests/test_generate_test_runner.rb +102 -88
  624. data/vendor/unity/test/tests/testparameterized.c +104 -101
  625. data/vendor/unity/test/tests/testunity.c +3676 -3447
  626. metadata +549 -191
@@ -0,0 +1,1145 @@
1
+ /* =========================================================================
2
+ Unity Project - A Test Framework for C
3
+ Copyright (c) 2007-14 Mike Karlesky, Mark VanderVoord, Greg Williams
4
+ [Released under MIT License. Please refer to license.txt for details]
5
+ ============================================================================ */
6
+
7
+ #include "unity.h"
8
+ #include <stdio.h>
9
+ #include <string.h>
10
+
11
+ #define UNITY_FAIL_AND_BAIL { Unity.CurrentTestFailed = 1; longjmp(Unity.AbortFrame, 1); }
12
+ #define UNITY_IGNORE_AND_BAIL { Unity.CurrentTestIgnored = 1; longjmp(Unity.AbortFrame, 1); }
13
+ /// return prematurely if we are already in failure or ignore state
14
+ #define UNITY_SKIP_EXECUTION { if ((Unity.CurrentTestFailed != 0) || (Unity.CurrentTestIgnored != 0)) {return;} }
15
+ #define UNITY_PRINT_EOL { UNITY_OUTPUT_CHAR('\n'); }
16
+
17
+ struct _Unity Unity;
18
+
19
+ const char* UnityStrNull = "NULL";
20
+ const char* UnityStrSpacer = ". ";
21
+ const char* UnityStrExpected = " Expected ";
22
+ const char* UnityStrWas = " Was ";
23
+ const char* UnityStrTo = " To ";
24
+ const char* UnityStrElement = " Element ";
25
+ const char* UnityStrByte = " Byte ";
26
+ const char* UnityStrMemory = " Memory Mismatch.";
27
+ const char* UnityStrDelta = " Values Not Within Delta ";
28
+ const char* UnityStrPointless= " You Asked Me To Compare Nothing, Which Was Pointless.";
29
+ const char* UnityStrNullPointerForExpected= " Expected pointer to be NULL";
30
+ const char* UnityStrNullPointerForActual = " Actual pointer was NULL";
31
+ const char* UnityStrNot = "Not ";
32
+ const char* UnityStrInf = "Infinity";
33
+ const char* UnityStrNegInf = "Negative Infinity";
34
+ const char* UnityStrNaN = "NaN";
35
+ const char* UnityStrDet = "Determinate";
36
+ const char* UnityStrErrFloat = "Unity Floating Point Disabled";
37
+ const char* UnityStrErrDouble= "Unity Double Precision Disabled";
38
+ const char* UnityStrErr64 = "Unity 64-bit Support Disabled";
39
+
40
+ #ifndef UNITY_EXCLUDE_FLOAT
41
+ // Dividing by these constants produces +/- infinity.
42
+ // The rationale is given in UnityAssertFloatIsInf's body.
43
+ static const _UF f_zero = 0.0f;
44
+ #ifndef UNITY_EXCLUDE_DOUBLE
45
+ static const _UD d_zero = 0.0;
46
+ #endif
47
+ #endif
48
+
49
+ // compiler-generic print formatting masks
50
+ const _U_UINT UnitySizeMask[] =
51
+ {
52
+ 255u, // 0xFF
53
+ 65535u, // 0xFFFF
54
+ 65535u,
55
+ 4294967295u, // 0xFFFFFFFF
56
+ 4294967295u,
57
+ 4294967295u,
58
+ 4294967295u
59
+ #ifdef UNITY_SUPPORT_64
60
+ ,0xFFFFFFFFFFFFFFFF
61
+ #endif
62
+ };
63
+
64
+ void UnityPrintFail(void);
65
+ void UnityPrintOk(void);
66
+
67
+ //-----------------------------------------------
68
+ // Pretty Printers & Test Result Output Handlers
69
+ //-----------------------------------------------
70
+
71
+ void UnityPrint(const char* string)
72
+ {
73
+ const char* pch = string;
74
+
75
+ if (pch != NULL)
76
+ {
77
+ while (*pch)
78
+ {
79
+ // printable characters plus CR & LF are printed
80
+ if ((*pch <= 126) && (*pch >= 32))
81
+ {
82
+ UNITY_OUTPUT_CHAR(*pch);
83
+ }
84
+ //write escaped carriage returns
85
+ else if (*pch == 13)
86
+ {
87
+ UNITY_OUTPUT_CHAR('\\');
88
+ UNITY_OUTPUT_CHAR('r');
89
+ }
90
+ //write escaped line feeds
91
+ else if (*pch == 10)
92
+ {
93
+ UNITY_OUTPUT_CHAR('\\');
94
+ UNITY_OUTPUT_CHAR('n');
95
+ }
96
+ // unprintable characters are shown as codes
97
+ else
98
+ {
99
+ UNITY_OUTPUT_CHAR('\\');
100
+ UnityPrintNumberHex((_U_UINT)*pch, 2);
101
+ }
102
+ pch++;
103
+ }
104
+ }
105
+ }
106
+
107
+ //-----------------------------------------------
108
+ void UnityPrintNumberByStyle(const _U_SINT number, const UNITY_DISPLAY_STYLE_T style)
109
+ {
110
+ if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
111
+ {
112
+ UnityPrintNumber(number);
113
+ }
114
+ else if ((style & UNITY_DISPLAY_RANGE_UINT) == UNITY_DISPLAY_RANGE_UINT)
115
+ {
116
+ UnityPrintNumberUnsigned( (_U_UINT)number & UnitySizeMask[((_U_UINT)style & (_U_UINT)0x0F) - 1] );
117
+ }
118
+ else
119
+ {
120
+ UnityPrintNumberHex((_U_UINT)number, (char)((style & 0x000F) << 1));
121
+ }
122
+ }
123
+
124
+ //-----------------------------------------------
125
+ /// basically do an itoa using as little ram as possible
126
+ void UnityPrintNumber(const _U_SINT number_to_print)
127
+ {
128
+ _U_SINT divisor = 1;
129
+ _U_SINT next_divisor;
130
+ _U_SINT number = number_to_print;
131
+
132
+ if (number < 0)
133
+ {
134
+ UNITY_OUTPUT_CHAR('-');
135
+ number = -number;
136
+ }
137
+
138
+ // figure out initial divisor
139
+ while (number / divisor > 9)
140
+ {
141
+ next_divisor = divisor * 10;
142
+ if (next_divisor > divisor)
143
+ divisor = next_divisor;
144
+ else
145
+ break;
146
+ }
147
+
148
+ // now mod and print, then divide divisor
149
+ do
150
+ {
151
+ UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10)));
152
+ divisor /= 10;
153
+ }
154
+ while (divisor > 0);
155
+ }
156
+
157
+ //-----------------------------------------------
158
+ /// basically do an itoa using as little ram as possible
159
+ void UnityPrintNumberUnsigned(const _U_UINT number)
160
+ {
161
+ _U_UINT divisor = 1;
162
+ _U_UINT next_divisor;
163
+
164
+ // figure out initial divisor
165
+ while (number / divisor > 9)
166
+ {
167
+ next_divisor = divisor * 10;
168
+ if (next_divisor > divisor)
169
+ divisor = next_divisor;
170
+ else
171
+ break;
172
+ }
173
+
174
+ // now mod and print, then divide divisor
175
+ do
176
+ {
177
+ UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10)));
178
+ divisor /= 10;
179
+ }
180
+ while (divisor > 0);
181
+ }
182
+
183
+ //-----------------------------------------------
184
+ void UnityPrintNumberHex(const _U_UINT number, const char nibbles_to_print)
185
+ {
186
+ _U_UINT nibble;
187
+ char nibbles = nibbles_to_print;
188
+ UNITY_OUTPUT_CHAR('0');
189
+ UNITY_OUTPUT_CHAR('x');
190
+
191
+ while (nibbles > 0)
192
+ {
193
+ nibble = (number >> (--nibbles << 2)) & 0x0000000F;
194
+ if (nibble <= 9)
195
+ {
196
+ UNITY_OUTPUT_CHAR((char)('0' + nibble));
197
+ }
198
+ else
199
+ {
200
+ UNITY_OUTPUT_CHAR((char)('A' - 10 + nibble));
201
+ }
202
+ }
203
+ }
204
+
205
+ //-----------------------------------------------
206
+ void UnityPrintMask(const _U_UINT mask, const _U_UINT number)
207
+ {
208
+ _U_UINT current_bit = (_U_UINT)1 << (UNITY_INT_WIDTH - 1);
209
+ _US32 i;
210
+
211
+ for (i = 0; i < UNITY_INT_WIDTH; i++)
212
+ {
213
+ if (current_bit & mask)
214
+ {
215
+ if (current_bit & number)
216
+ {
217
+ UNITY_OUTPUT_CHAR('1');
218
+ }
219
+ else
220
+ {
221
+ UNITY_OUTPUT_CHAR('0');
222
+ }
223
+ }
224
+ else
225
+ {
226
+ UNITY_OUTPUT_CHAR('X');
227
+ }
228
+ current_bit = current_bit >> 1;
229
+ }
230
+ }
231
+
232
+ //-----------------------------------------------
233
+ #ifdef UNITY_FLOAT_VERBOSE
234
+ void UnityPrintFloat(_UF number)
235
+ {
236
+ char TempBuffer[32];
237
+ sprintf(TempBuffer, "%.6f", number);
238
+ UnityPrint(TempBuffer);
239
+ }
240
+ #endif
241
+
242
+ //-----------------------------------------------
243
+
244
+ void UnityPrintFail(void)
245
+ {
246
+ UnityPrint("FAIL");
247
+ }
248
+
249
+ void UnityPrintOk(void)
250
+ {
251
+ UnityPrint("OK");
252
+ }
253
+
254
+ //-----------------------------------------------
255
+ void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYPE line)
256
+ {
257
+ UNITY_PRINT_EOL;
258
+ UnityPrint(file);
259
+ UNITY_OUTPUT_CHAR(':');
260
+ UnityPrintNumber((_U_SINT)line);
261
+ UNITY_OUTPUT_CHAR(':');
262
+ UnityPrint(Unity.CurrentTestName);
263
+ UNITY_OUTPUT_CHAR(':');
264
+ }
265
+
266
+ //-----------------------------------------------
267
+ void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line)
268
+ {
269
+ UnityTestResultsBegin(Unity.TestFile, line);
270
+ UnityPrint("FAIL:");
271
+ }
272
+
273
+ //-----------------------------------------------
274
+ void UnityConcludeTest(void)
275
+ {
276
+ if (Unity.CurrentTestIgnored)
277
+ {
278
+ Unity.TestIgnores++;
279
+ }
280
+ else if (!Unity.CurrentTestFailed)
281
+ {
282
+ UnityTestResultsBegin(Unity.TestFile, Unity.CurrentTestLineNumber);
283
+ UnityPrint("PASS");
284
+ }
285
+ else
286
+ {
287
+ Unity.TestFailures++;
288
+ }
289
+
290
+ Unity.CurrentTestFailed = 0;
291
+ Unity.CurrentTestIgnored = 0;
292
+ }
293
+
294
+ //-----------------------------------------------
295
+ void UnityAddMsgIfSpecified(const char* msg)
296
+ {
297
+ if (msg)
298
+ {
299
+ UnityPrint(UnityStrSpacer);
300
+ UnityPrint(msg);
301
+ }
302
+ }
303
+
304
+ //-----------------------------------------------
305
+ void UnityPrintExpectedAndActualStrings(const char* expected, const char* actual)
306
+ {
307
+ UnityPrint(UnityStrExpected);
308
+ if (expected != NULL)
309
+ {
310
+ UNITY_OUTPUT_CHAR('\'');
311
+ UnityPrint(expected);
312
+ UNITY_OUTPUT_CHAR('\'');
313
+ }
314
+ else
315
+ {
316
+ UnityPrint(UnityStrNull);
317
+ }
318
+ UnityPrint(UnityStrWas);
319
+ if (actual != NULL)
320
+ {
321
+ UNITY_OUTPUT_CHAR('\'');
322
+ UnityPrint(actual);
323
+ UNITY_OUTPUT_CHAR('\'');
324
+ }
325
+ else
326
+ {
327
+ UnityPrint(UnityStrNull);
328
+ }
329
+ }
330
+
331
+ //-----------------------------------------------
332
+ // Assertion & Control Helpers
333
+ //-----------------------------------------------
334
+
335
+ int UnityCheckArraysForNull(UNITY_PTR_ATTRIBUTE const void* expected, UNITY_PTR_ATTRIBUTE const void* actual, const UNITY_LINE_TYPE lineNumber, const char* msg)
336
+ {
337
+ //return true if they are both NULL
338
+ if ((expected == NULL) && (actual == NULL))
339
+ return 1;
340
+
341
+ //throw error if just expected is NULL
342
+ if (expected == NULL)
343
+ {
344
+ UnityTestResultsFailBegin(lineNumber);
345
+ UnityPrint(UnityStrNullPointerForExpected);
346
+ UnityAddMsgIfSpecified(msg);
347
+ UNITY_FAIL_AND_BAIL;
348
+ }
349
+
350
+ //throw error if just actual is NULL
351
+ if (actual == NULL)
352
+ {
353
+ UnityTestResultsFailBegin(lineNumber);
354
+ UnityPrint(UnityStrNullPointerForActual);
355
+ UnityAddMsgIfSpecified(msg);
356
+ UNITY_FAIL_AND_BAIL;
357
+ }
358
+
359
+ //return false if neither is NULL
360
+ return 0;
361
+ }
362
+
363
+ //-----------------------------------------------
364
+ // Assertion Functions
365
+ //-----------------------------------------------
366
+
367
+ void UnityAssertBits(const _U_SINT mask,
368
+ const _U_SINT expected,
369
+ const _U_SINT actual,
370
+ const char* msg,
371
+ const UNITY_LINE_TYPE lineNumber)
372
+ {
373
+ UNITY_SKIP_EXECUTION;
374
+
375
+ if ((mask & expected) != (mask & actual))
376
+ {
377
+ UnityTestResultsFailBegin(lineNumber);
378
+ UnityPrint(UnityStrExpected);
379
+ UnityPrintMask((_U_UINT)mask, (_U_UINT)expected);
380
+ UnityPrint(UnityStrWas);
381
+ UnityPrintMask((_U_UINT)mask, (_U_UINT)actual);
382
+ UnityAddMsgIfSpecified(msg);
383
+ UNITY_FAIL_AND_BAIL;
384
+ }
385
+ }
386
+
387
+ //-----------------------------------------------
388
+ void UnityAssertEqualNumber(const _U_SINT expected,
389
+ const _U_SINT actual,
390
+ const char* msg,
391
+ const UNITY_LINE_TYPE lineNumber,
392
+ const UNITY_DISPLAY_STYLE_T style)
393
+ {
394
+ UNITY_SKIP_EXECUTION;
395
+
396
+ if (expected != actual)
397
+ {
398
+ UnityTestResultsFailBegin(lineNumber);
399
+ UnityPrint(UnityStrExpected);
400
+ UnityPrintNumberByStyle(expected, style);
401
+ UnityPrint(UnityStrWas);
402
+ UnityPrintNumberByStyle(actual, style);
403
+ UnityAddMsgIfSpecified(msg);
404
+ UNITY_FAIL_AND_BAIL;
405
+ }
406
+ }
407
+
408
+ //-----------------------------------------------
409
+ void UnityAssertEqualIntArray(UNITY_PTR_ATTRIBUTE const void* expected,
410
+ UNITY_PTR_ATTRIBUTE const void* actual,
411
+ const _UU32 num_elements,
412
+ const char* msg,
413
+ const UNITY_LINE_TYPE lineNumber,
414
+ const UNITY_DISPLAY_STYLE_T style)
415
+ {
416
+ _UU32 elements = num_elements;
417
+ UNITY_PTR_ATTRIBUTE const _US8* ptr_exp = (UNITY_PTR_ATTRIBUTE _US8*)expected;
418
+ UNITY_PTR_ATTRIBUTE const _US8* ptr_act = (UNITY_PTR_ATTRIBUTE _US8*)actual;
419
+
420
+ UNITY_SKIP_EXECUTION;
421
+
422
+ if (elements == 0)
423
+ {
424
+ UnityTestResultsFailBegin(lineNumber);
425
+ UnityPrint(UnityStrPointless);
426
+ UnityAddMsgIfSpecified(msg);
427
+ UNITY_FAIL_AND_BAIL;
428
+ }
429
+
430
+ if (UnityCheckArraysForNull((UNITY_PTR_ATTRIBUTE void*)expected, (UNITY_PTR_ATTRIBUTE void*)actual, lineNumber, msg) == 1)
431
+ return;
432
+
433
+ // If style is UNITY_DISPLAY_STYLE_INT, we'll fall into the default case rather than the INT16 or INT32 (etc) case
434
+ // as UNITY_DISPLAY_STYLE_INT includes a flag for UNITY_DISPLAY_RANGE_AUTO, which the width-specific
435
+ // variants do not. Therefore remove this flag.
436
+ switch(style & (UNITY_DISPLAY_STYLE_T)(~UNITY_DISPLAY_RANGE_AUTO))
437
+ {
438
+ case UNITY_DISPLAY_STYLE_HEX8:
439
+ case UNITY_DISPLAY_STYLE_INT8:
440
+ case UNITY_DISPLAY_STYLE_UINT8:
441
+ while (elements--)
442
+ {
443
+ if (*ptr_exp != *ptr_act)
444
+ {
445
+ UnityTestResultsFailBegin(lineNumber);
446
+ UnityPrint(UnityStrElement);
447
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
448
+ UnityPrint(UnityStrExpected);
449
+ UnityPrintNumberByStyle(*ptr_exp, style);
450
+ UnityPrint(UnityStrWas);
451
+ UnityPrintNumberByStyle(*ptr_act, style);
452
+ UnityAddMsgIfSpecified(msg);
453
+ UNITY_FAIL_AND_BAIL;
454
+ }
455
+ ptr_exp += 1;
456
+ ptr_act += 1;
457
+ }
458
+ break;
459
+ case UNITY_DISPLAY_STYLE_HEX16:
460
+ case UNITY_DISPLAY_STYLE_INT16:
461
+ case UNITY_DISPLAY_STYLE_UINT16:
462
+ while (elements--)
463
+ {
464
+ if (*(UNITY_PTR_ATTRIBUTE _US16*)ptr_exp != *(UNITY_PTR_ATTRIBUTE _US16*)ptr_act)
465
+ {
466
+ UnityTestResultsFailBegin(lineNumber);
467
+ UnityPrint(UnityStrElement);
468
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
469
+ UnityPrint(UnityStrExpected);
470
+ UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE _US16*)ptr_exp, style);
471
+ UnityPrint(UnityStrWas);
472
+ UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE _US16*)ptr_act, style);
473
+ UnityAddMsgIfSpecified(msg);
474
+ UNITY_FAIL_AND_BAIL;
475
+ }
476
+ ptr_exp += 2;
477
+ ptr_act += 2;
478
+ }
479
+ break;
480
+ #ifdef UNITY_SUPPORT_64
481
+ case UNITY_DISPLAY_STYLE_HEX64:
482
+ case UNITY_DISPLAY_STYLE_INT64:
483
+ case UNITY_DISPLAY_STYLE_UINT64:
484
+ while (elements--)
485
+ {
486
+ if (*(UNITY_PTR_ATTRIBUTE _US64*)ptr_exp != *(UNITY_PTR_ATTRIBUTE _US64*)ptr_act)
487
+ {
488
+ UnityTestResultsFailBegin(lineNumber);
489
+ UnityPrint(UnityStrElement);
490
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
491
+ UnityPrint(UnityStrExpected);
492
+ UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE _US64*)ptr_exp, style);
493
+ UnityPrint(UnityStrWas);
494
+ UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE _US64*)ptr_act, style);
495
+ UnityAddMsgIfSpecified(msg);
496
+ UNITY_FAIL_AND_BAIL;
497
+ }
498
+ ptr_exp += 8;
499
+ ptr_act += 8;
500
+ }
501
+ break;
502
+ #endif
503
+ default:
504
+ while (elements--)
505
+ {
506
+ if (*(UNITY_PTR_ATTRIBUTE _US32*)ptr_exp != *(UNITY_PTR_ATTRIBUTE _US32*)ptr_act)
507
+ {
508
+ UnityTestResultsFailBegin(lineNumber);
509
+ UnityPrint(UnityStrElement);
510
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
511
+ UnityPrint(UnityStrExpected);
512
+ UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE _US32*)ptr_exp, style);
513
+ UnityPrint(UnityStrWas);
514
+ UnityPrintNumberByStyle(*(UNITY_PTR_ATTRIBUTE _US32*)ptr_act, style);
515
+ UnityAddMsgIfSpecified(msg);
516
+ UNITY_FAIL_AND_BAIL;
517
+ }
518
+ ptr_exp += 4;
519
+ ptr_act += 4;
520
+ }
521
+ break;
522
+ }
523
+ }
524
+
525
+ //-----------------------------------------------
526
+ #ifndef UNITY_EXCLUDE_FLOAT
527
+ void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const _UF* expected,
528
+ UNITY_PTR_ATTRIBUTE const _UF* actual,
529
+ const _UU32 num_elements,
530
+ const char* msg,
531
+ const UNITY_LINE_TYPE lineNumber)
532
+ {
533
+ _UU32 elements = num_elements;
534
+ UNITY_PTR_ATTRIBUTE const _UF* ptr_expected = expected;
535
+ UNITY_PTR_ATTRIBUTE const _UF* ptr_actual = actual;
536
+ _UF diff, tol;
537
+
538
+ UNITY_SKIP_EXECUTION;
539
+
540
+ if (elements == 0)
541
+ {
542
+ UnityTestResultsFailBegin(lineNumber);
543
+ UnityPrint(UnityStrPointless);
544
+ UnityAddMsgIfSpecified(msg);
545
+ UNITY_FAIL_AND_BAIL;
546
+ }
547
+
548
+ if (UnityCheckArraysForNull((UNITY_PTR_ATTRIBUTE void*)expected, (UNITY_PTR_ATTRIBUTE void*)actual, lineNumber, msg) == 1)
549
+ return;
550
+
551
+ while (elements--)
552
+ {
553
+ diff = *ptr_expected - *ptr_actual;
554
+ if (diff < 0.0f)
555
+ diff = 0.0f - diff;
556
+ tol = UNITY_FLOAT_PRECISION * *ptr_expected;
557
+ if (tol < 0.0f)
558
+ tol = 0.0f - tol;
559
+
560
+ //This first part of this condition will catch any NaN or Infinite values
561
+ if ((diff * 0.0f != 0.0f) || (diff > tol))
562
+ {
563
+ UnityTestResultsFailBegin(lineNumber);
564
+ UnityPrint(UnityStrElement);
565
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
566
+ #ifdef UNITY_FLOAT_VERBOSE
567
+ UnityPrint(UnityStrExpected);
568
+ UnityPrintFloat(*ptr_expected);
569
+ UnityPrint(UnityStrWas);
570
+ UnityPrintFloat(*ptr_actual);
571
+ #else
572
+ UnityPrint(UnityStrDelta);
573
+ #endif
574
+ UnityAddMsgIfSpecified(msg);
575
+ UNITY_FAIL_AND_BAIL;
576
+ }
577
+ ptr_expected++;
578
+ ptr_actual++;
579
+ }
580
+ }
581
+
582
+ //-----------------------------------------------
583
+ void UnityAssertFloatsWithin(const _UF delta,
584
+ const _UF expected,
585
+ const _UF actual,
586
+ const char* msg,
587
+ const UNITY_LINE_TYPE lineNumber)
588
+ {
589
+ _UF diff = actual - expected;
590
+ _UF pos_delta = delta;
591
+
592
+ UNITY_SKIP_EXECUTION;
593
+
594
+ if (diff < 0.0f)
595
+ {
596
+ diff = 0.0f - diff;
597
+ }
598
+ if (pos_delta < 0.0f)
599
+ {
600
+ pos_delta = 0.0f - pos_delta;
601
+ }
602
+
603
+ //This first part of this condition will catch any NaN or Infinite values
604
+ if ((diff * 0.0f != 0.0f) || (pos_delta < diff))
605
+ {
606
+ UnityTestResultsFailBegin(lineNumber);
607
+ #ifdef UNITY_FLOAT_VERBOSE
608
+ UnityPrint(UnityStrExpected);
609
+ UnityPrintFloat(expected);
610
+ UnityPrint(UnityStrWas);
611
+ UnityPrintFloat(actual);
612
+ #else
613
+ UnityPrint(UnityStrDelta);
614
+ #endif
615
+ UnityAddMsgIfSpecified(msg);
616
+ UNITY_FAIL_AND_BAIL;
617
+ }
618
+ }
619
+
620
+ //-----------------------------------------------
621
+ void UnityAssertFloatSpecial(const _UF actual,
622
+ const char* msg,
623
+ const UNITY_LINE_TYPE lineNumber,
624
+ const UNITY_FLOAT_TRAIT_T style)
625
+ {
626
+ UNITY_SKIP_EXECUTION;
627
+
628
+ const char* trait_names[] = { UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet };
629
+ _U_SINT should_be_trait = ((_U_SINT)style & 1);
630
+ _U_SINT is_trait = !should_be_trait;
631
+ _U_SINT trait_index = style >> 1;
632
+
633
+ switch(style)
634
+ {
635
+ //To determine Inf / Neg Inf, we compare to an Inf / Neg Inf value we create on the fly
636
+ //We are using a variable to hold the zero value because some compilers complain about dividing by zero otherwise
637
+ case UNITY_FLOAT_IS_INF:
638
+ case UNITY_FLOAT_IS_NOT_INF:
639
+ is_trait = ((1.0f / f_zero) == actual) ? 1 : 0;
640
+ break;
641
+ case UNITY_FLOAT_IS_NEG_INF:
642
+ case UNITY_FLOAT_IS_NOT_NEG_INF:
643
+ is_trait = ((-1.0f / f_zero) == actual) ? 1 : 0;
644
+ break;
645
+
646
+ //NaN is the only floating point value that does NOT equal itself. Therefore if Actual == Actual, then it is NOT NaN.
647
+ case UNITY_FLOAT_IS_NAN:
648
+ case UNITY_FLOAT_IS_NOT_NAN:
649
+ is_trait = (actual == actual) ? 0 : 1;
650
+ break;
651
+
652
+ //A determinate number is non infinite and not NaN. (therefore the opposite of the two above)
653
+ case UNITY_FLOAT_IS_DET:
654
+ case UNITY_FLOAT_IS_NOT_DET:
655
+ if ( (actual != actual) || ((1.0f / f_zero) == actual) || ((-1.0f / f_zero) == actual) )
656
+ is_trait = 0;
657
+ else
658
+ is_trait = 1;
659
+ break;
660
+ }
661
+
662
+ if (is_trait != should_be_trait)
663
+ {
664
+ UnityTestResultsFailBegin(lineNumber);
665
+ UnityPrint(UnityStrExpected);
666
+ if (!should_be_trait)
667
+ UnityPrint(UnityStrNot);
668
+ UnityPrint(trait_names[trait_index]);
669
+ UnityPrint(UnityStrWas);
670
+ #ifdef UNITY_FLOAT_VERBOSE
671
+ UnityPrintFloat(actual);
672
+ #else
673
+ if (should_be_trait)
674
+ UnityPrint(UnityStrNot);
675
+ UnityPrint(trait_names[trait_index]);
676
+ #endif
677
+ UnityAddMsgIfSpecified(msg);
678
+ UNITY_FAIL_AND_BAIL;
679
+ }
680
+ }
681
+
682
+ #endif //not UNITY_EXCLUDE_FLOAT
683
+
684
+ //-----------------------------------------------
685
+ #ifndef UNITY_EXCLUDE_DOUBLE
686
+ void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const _UD* expected,
687
+ UNITY_PTR_ATTRIBUTE const _UD* actual,
688
+ const _UU32 num_elements,
689
+ const char* msg,
690
+ const UNITY_LINE_TYPE lineNumber)
691
+ {
692
+ _UU32 elements = num_elements;
693
+ UNITY_PTR_ATTRIBUTE const _UD* ptr_expected = expected;
694
+ UNITY_PTR_ATTRIBUTE const _UD* ptr_actual = actual;
695
+ _UD diff, tol;
696
+
697
+ UNITY_SKIP_EXECUTION;
698
+
699
+ if (elements == 0)
700
+ {
701
+ UnityTestResultsFailBegin(lineNumber);
702
+ UnityPrint(UnityStrPointless);
703
+ UnityAddMsgIfSpecified(msg);
704
+ UNITY_FAIL_AND_BAIL;
705
+ }
706
+
707
+ if (UnityCheckArraysForNull((UNITY_PTR_ATTRIBUTE void*)expected, (UNITY_PTR_ATTRIBUTE void*)actual, lineNumber, msg) == 1)
708
+ return;
709
+
710
+ while (elements--)
711
+ {
712
+ diff = *ptr_expected - *ptr_actual;
713
+ if (diff < 0.0)
714
+ diff = 0.0 - diff;
715
+ tol = UNITY_DOUBLE_PRECISION * *ptr_expected;
716
+ if (tol < 0.0)
717
+ tol = 0.0 - tol;
718
+
719
+ //This first part of this condition will catch any NaN or Infinite values
720
+ if ((diff * 0.0 != 0.0) || (diff > tol))
721
+ {
722
+ UnityTestResultsFailBegin(lineNumber);
723
+ UnityPrint(UnityStrElement);
724
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
725
+ #ifdef UNITY_DOUBLE_VERBOSE
726
+ UnityPrint(UnityStrExpected);
727
+ UnityPrintFloat((float)(*ptr_expected));
728
+ UnityPrint(UnityStrWas);
729
+ UnityPrintFloat((float)(*ptr_actual));
730
+ #else
731
+ UnityPrint(UnityStrDelta);
732
+ #endif
733
+ UnityAddMsgIfSpecified(msg);
734
+ UNITY_FAIL_AND_BAIL;
735
+ }
736
+ ptr_expected++;
737
+ ptr_actual++;
738
+ }
739
+ }
740
+
741
+ //-----------------------------------------------
742
+ void UnityAssertDoublesWithin(const _UD delta,
743
+ const _UD expected,
744
+ const _UD actual,
745
+ const char* msg,
746
+ const UNITY_LINE_TYPE lineNumber)
747
+ {
748
+ _UD diff = actual - expected;
749
+ _UD pos_delta = delta;
750
+
751
+ UNITY_SKIP_EXECUTION;
752
+
753
+ if (diff < 0.0)
754
+ {
755
+ diff = 0.0 - diff;
756
+ }
757
+ if (pos_delta < 0.0)
758
+ {
759
+ pos_delta = 0.0 - pos_delta;
760
+ }
761
+
762
+ //This first part of this condition will catch any NaN or Infinite values
763
+ if ((diff * 0.0 != 0.0) || (pos_delta < diff))
764
+ {
765
+ UnityTestResultsFailBegin(lineNumber);
766
+ #ifdef UNITY_DOUBLE_VERBOSE
767
+ UnityPrint(UnityStrExpected);
768
+ UnityPrintFloat((float)expected);
769
+ UnityPrint(UnityStrWas);
770
+ UnityPrintFloat((float)actual);
771
+ #else
772
+ UnityPrint(UnityStrDelta);
773
+ #endif
774
+ UnityAddMsgIfSpecified(msg);
775
+ UNITY_FAIL_AND_BAIL;
776
+ }
777
+ }
778
+
779
+ //-----------------------------------------------
780
+
781
+ void UnityAssertDoubleSpecial(const _UD actual,
782
+ const char* msg,
783
+ const UNITY_LINE_TYPE lineNumber,
784
+ const UNITY_FLOAT_TRAIT_T style)
785
+ {
786
+ UNITY_SKIP_EXECUTION;
787
+
788
+ const char* trait_names[] = { UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet };
789
+ _U_SINT should_be_trait = ((_U_SINT)style & 1);
790
+ _U_SINT is_trait = !should_be_trait;
791
+ _U_SINT trait_index = style >> 1;
792
+
793
+ switch(style)
794
+ {
795
+ //To determine Inf / Neg Inf, we compare to an Inf / Neg Inf value we create on the fly
796
+ //We are using a variable to hold the zero value because some compilers complain about dividing by zero otherwise
797
+ case UNITY_FLOAT_IS_INF:
798
+ case UNITY_FLOAT_IS_NOT_INF:
799
+ is_trait = ((1.0 / d_zero) == actual) ? 1 : 0;
800
+ break;
801
+ case UNITY_FLOAT_IS_NEG_INF:
802
+ case UNITY_FLOAT_IS_NOT_NEG_INF:
803
+ is_trait = ((-1.0 / d_zero) == actual) ? 1 : 0;
804
+ break;
805
+
806
+ //NaN is the only floating point value that does NOT equal itself. Therefore if Actual == Actual, then it is NOT NaN.
807
+ case UNITY_FLOAT_IS_NAN:
808
+ case UNITY_FLOAT_IS_NOT_NAN:
809
+ is_trait = (actual == actual) ? 0 : 1;
810
+ break;
811
+
812
+ //A determinate number is non infinite and not NaN. (therefore the opposite of the two above)
813
+ case UNITY_FLOAT_IS_DET:
814
+ case UNITY_FLOAT_IS_NOT_DET:
815
+ if ( (actual != actual) || ((1.0 / d_zero) == actual) || ((-1.0 / d_zero) == actual) )
816
+ is_trait = 0;
817
+ else
818
+ is_trait = 1;
819
+ break;
820
+ }
821
+
822
+ if (is_trait != should_be_trait)
823
+ {
824
+ UnityTestResultsFailBegin(lineNumber);
825
+ UnityPrint(UnityStrExpected);
826
+ if (!should_be_trait)
827
+ UnityPrint(UnityStrNot);
828
+ UnityPrint(trait_names[trait_index]);
829
+ UnityPrint(UnityStrWas);
830
+ #ifdef UNITY_DOUBLE_VERBOSE
831
+ UnityPrintFloat(actual);
832
+ #else
833
+ if (should_be_trait)
834
+ UnityPrint(UnityStrNot);
835
+ UnityPrint(trait_names[trait_index]);
836
+ #endif
837
+ UnityAddMsgIfSpecified(msg);
838
+ UNITY_FAIL_AND_BAIL;
839
+ }
840
+ }
841
+
842
+
843
+ #endif // not UNITY_EXCLUDE_DOUBLE
844
+
845
+ //-----------------------------------------------
846
+ void UnityAssertNumbersWithin( const _U_SINT delta,
847
+ const _U_SINT expected,
848
+ const _U_SINT actual,
849
+ const char* msg,
850
+ const UNITY_LINE_TYPE lineNumber,
851
+ const UNITY_DISPLAY_STYLE_T style)
852
+ {
853
+ UNITY_SKIP_EXECUTION;
854
+
855
+ if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT)
856
+ {
857
+ if (actual > expected)
858
+ Unity.CurrentTestFailed = ((actual - expected) > delta);
859
+ else
860
+ Unity.CurrentTestFailed = ((expected - actual) > delta);
861
+ }
862
+ else
863
+ {
864
+ if ((_U_UINT)actual > (_U_UINT)expected)
865
+ Unity.CurrentTestFailed = ((_U_UINT)(actual - expected) > (_U_UINT)delta);
866
+ else
867
+ Unity.CurrentTestFailed = ((_U_UINT)(expected - actual) > (_U_UINT)delta);
868
+ }
869
+
870
+ if (Unity.CurrentTestFailed)
871
+ {
872
+ UnityTestResultsFailBegin(lineNumber);
873
+ UnityPrint(UnityStrDelta);
874
+ UnityPrintNumberByStyle(delta, style);
875
+ UnityPrint(UnityStrExpected);
876
+ UnityPrintNumberByStyle(expected, style);
877
+ UnityPrint(UnityStrWas);
878
+ UnityPrintNumberByStyle(actual, style);
879
+ UnityAddMsgIfSpecified(msg);
880
+ UNITY_FAIL_AND_BAIL;
881
+ }
882
+ }
883
+
884
+ //-----------------------------------------------
885
+ void UnityAssertEqualString(const char* expected,
886
+ const char* actual,
887
+ const char* msg,
888
+ const UNITY_LINE_TYPE lineNumber)
889
+ {
890
+ _UU32 i;
891
+
892
+ UNITY_SKIP_EXECUTION;
893
+
894
+ // if both pointers not null compare the strings
895
+ if (expected && actual)
896
+ {
897
+ for (i = 0; expected[i] || actual[i]; i++)
898
+ {
899
+ if (expected[i] != actual[i])
900
+ {
901
+ Unity.CurrentTestFailed = 1;
902
+ break;
903
+ }
904
+ }
905
+ }
906
+ else
907
+ { // handle case of one pointers being null (if both null, test should pass)
908
+ if (expected != actual)
909
+ {
910
+ Unity.CurrentTestFailed = 1;
911
+ }
912
+ }
913
+
914
+ if (Unity.CurrentTestFailed)
915
+ {
916
+ UnityTestResultsFailBegin(lineNumber);
917
+ UnityPrintExpectedAndActualStrings(expected, actual);
918
+ UnityAddMsgIfSpecified(msg);
919
+ UNITY_FAIL_AND_BAIL;
920
+ }
921
+ }
922
+
923
+ //-----------------------------------------------
924
+ void UnityAssertEqualStringArray( const char** expected,
925
+ const char** actual,
926
+ const _UU32 num_elements,
927
+ const char* msg,
928
+ const UNITY_LINE_TYPE lineNumber)
929
+ {
930
+ _UU32 i, j = 0;
931
+
932
+ UNITY_SKIP_EXECUTION;
933
+
934
+ // if no elements, it's an error
935
+ if (num_elements == 0)
936
+ {
937
+ UnityTestResultsFailBegin(lineNumber);
938
+ UnityPrint(UnityStrPointless);
939
+ UnityAddMsgIfSpecified(msg);
940
+ UNITY_FAIL_AND_BAIL;
941
+ }
942
+
943
+ if (UnityCheckArraysForNull((UNITY_PTR_ATTRIBUTE void*)expected, (UNITY_PTR_ATTRIBUTE void*)actual, lineNumber, msg) == 1)
944
+ return;
945
+
946
+ do
947
+ {
948
+ // if both pointers not null compare the strings
949
+ if (expected[j] && actual[j])
950
+ {
951
+ for (i = 0; expected[j][i] || actual[j][i]; i++)
952
+ {
953
+ if (expected[j][i] != actual[j][i])
954
+ {
955
+ Unity.CurrentTestFailed = 1;
956
+ break;
957
+ }
958
+ }
959
+ }
960
+ else
961
+ { // handle case of one pointers being null (if both null, test should pass)
962
+ if (expected[j] != actual[j])
963
+ {
964
+ Unity.CurrentTestFailed = 1;
965
+ }
966
+ }
967
+
968
+ if (Unity.CurrentTestFailed)
969
+ {
970
+ UnityTestResultsFailBegin(lineNumber);
971
+ if (num_elements > 1)
972
+ {
973
+ UnityPrint(UnityStrElement);
974
+ UnityPrintNumberByStyle((j), UNITY_DISPLAY_STYLE_UINT);
975
+ }
976
+ UnityPrintExpectedAndActualStrings((const char*)(expected[j]), (const char*)(actual[j]));
977
+ UnityAddMsgIfSpecified(msg);
978
+ UNITY_FAIL_AND_BAIL;
979
+ }
980
+ } while (++j < num_elements);
981
+ }
982
+
983
+ //-----------------------------------------------
984
+ void UnityAssertEqualMemory( UNITY_PTR_ATTRIBUTE const void* expected,
985
+ UNITY_PTR_ATTRIBUTE const void* actual,
986
+ const _UU32 length,
987
+ const _UU32 num_elements,
988
+ const char* msg,
989
+ const UNITY_LINE_TYPE lineNumber)
990
+ {
991
+ UNITY_PTR_ATTRIBUTE unsigned char* ptr_exp = (UNITY_PTR_ATTRIBUTE unsigned char*)expected;
992
+ UNITY_PTR_ATTRIBUTE unsigned char* ptr_act = (UNITY_PTR_ATTRIBUTE unsigned char*)actual;
993
+ _UU32 elements = num_elements;
994
+ _UU32 bytes;
995
+
996
+ UNITY_SKIP_EXECUTION;
997
+
998
+ if ((elements == 0) || (length == 0))
999
+ {
1000
+ UnityTestResultsFailBegin(lineNumber);
1001
+ UnityPrint(UnityStrPointless);
1002
+ UnityAddMsgIfSpecified(msg);
1003
+ UNITY_FAIL_AND_BAIL;
1004
+ }
1005
+
1006
+ if (UnityCheckArraysForNull((UNITY_PTR_ATTRIBUTE void*)expected, (UNITY_PTR_ATTRIBUTE void*)actual, lineNumber, msg) == 1)
1007
+ return;
1008
+
1009
+ while (elements--)
1010
+ {
1011
+ /////////////////////////////////////
1012
+ bytes = length;
1013
+ while (bytes--)
1014
+ {
1015
+ if (*ptr_exp != *ptr_act)
1016
+ {
1017
+ UnityTestResultsFailBegin(lineNumber);
1018
+ UnityPrint(UnityStrMemory);
1019
+ if (num_elements > 1)
1020
+ {
1021
+ UnityPrint(UnityStrElement);
1022
+ UnityPrintNumberByStyle((num_elements - elements - 1), UNITY_DISPLAY_STYLE_UINT);
1023
+ }
1024
+ UnityPrint(UnityStrByte);
1025
+ UnityPrintNumberByStyle((length - bytes - 1), UNITY_DISPLAY_STYLE_UINT);
1026
+ UnityPrint(UnityStrExpected);
1027
+ UnityPrintNumberByStyle(*ptr_exp, UNITY_DISPLAY_STYLE_HEX8);
1028
+ UnityPrint(UnityStrWas);
1029
+ UnityPrintNumberByStyle(*ptr_act, UNITY_DISPLAY_STYLE_HEX8);
1030
+ UnityAddMsgIfSpecified(msg);
1031
+ UNITY_FAIL_AND_BAIL;
1032
+ }
1033
+ ptr_exp += 1;
1034
+ ptr_act += 1;
1035
+ }
1036
+ /////////////////////////////////////
1037
+
1038
+ }
1039
+ }
1040
+
1041
+ //-----------------------------------------------
1042
+ // Control Functions
1043
+ //-----------------------------------------------
1044
+
1045
+ void UnityFail(const char* msg, const UNITY_LINE_TYPE line)
1046
+ {
1047
+ UNITY_SKIP_EXECUTION;
1048
+
1049
+ UnityTestResultsBegin(Unity.TestFile, line);
1050
+ UnityPrintFail();
1051
+ if (msg != NULL)
1052
+ {
1053
+ UNITY_OUTPUT_CHAR(':');
1054
+ if (msg[0] != ' ')
1055
+ {
1056
+ UNITY_OUTPUT_CHAR(' ');
1057
+ }
1058
+ UnityPrint(msg);
1059
+ }
1060
+ UNITY_FAIL_AND_BAIL;
1061
+ }
1062
+
1063
+ //-----------------------------------------------
1064
+ void UnityIgnore(const char* msg, const UNITY_LINE_TYPE line)
1065
+ {
1066
+ UNITY_SKIP_EXECUTION;
1067
+
1068
+ UnityTestResultsBegin(Unity.TestFile, line);
1069
+ UnityPrint("IGNORE");
1070
+ if (msg != NULL)
1071
+ {
1072
+ UNITY_OUTPUT_CHAR(':');
1073
+ UNITY_OUTPUT_CHAR(' ');
1074
+ UnityPrint(msg);
1075
+ }
1076
+ UNITY_IGNORE_AND_BAIL;
1077
+ }
1078
+
1079
+ //-----------------------------------------------
1080
+ #ifdef UNITY_SUPPORT_WEAK
1081
+ UNITY_WEAK void setUp(void) { }
1082
+ UNITY_WEAK void tearDown(void) { }
1083
+ #else
1084
+ void setUp(void);
1085
+ void tearDown(void);
1086
+ #endif
1087
+ //-----------------------------------------------
1088
+ void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum)
1089
+ {
1090
+ Unity.CurrentTestName = FuncName;
1091
+ Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)FuncLineNum;
1092
+ Unity.NumberOfTests++;
1093
+ if (TEST_PROTECT())
1094
+ {
1095
+ setUp();
1096
+ Func();
1097
+ }
1098
+ if (TEST_PROTECT() && !(Unity.CurrentTestIgnored))
1099
+ {
1100
+ tearDown();
1101
+ }
1102
+ UnityConcludeTest();
1103
+ }
1104
+
1105
+ //-----------------------------------------------
1106
+ void UnityBegin(void)
1107
+ {
1108
+ Unity.TestFile = NULL;
1109
+ Unity.CurrentTestName = NULL;
1110
+ Unity.CurrentTestLineNumber = 0;
1111
+ Unity.NumberOfTests = 0;
1112
+ Unity.TestFailures = 0;
1113
+ Unity.TestIgnores = 0;
1114
+ Unity.CurrentTestFailed = 0;
1115
+ Unity.CurrentTestIgnored = 0;
1116
+ }
1117
+
1118
+ //-----------------------------------------------
1119
+ int UnityEnd(void)
1120
+ {
1121
+ UNITY_PRINT_EOL;
1122
+ UnityPrint("-----------------------");
1123
+ UNITY_PRINT_EOL;
1124
+ UnityPrintNumber((_U_SINT)(Unity.NumberOfTests));
1125
+ UnityPrint(" Tests ");
1126
+ UnityPrintNumber((_U_SINT)(Unity.TestFailures));
1127
+ UnityPrint(" Failures ");
1128
+ UnityPrintNumber((_U_SINT)(Unity.TestIgnores));
1129
+ UnityPrint(" Ignored");
1130
+ UNITY_PRINT_EOL;
1131
+ if (Unity.TestFailures == 0U)
1132
+ {
1133
+ UnityPrintOk();
1134
+ }
1135
+ else
1136
+ {
1137
+ UnityPrintFail();
1138
+ }
1139
+ UNITY_PRINT_EOL;
1140
+ return (int)(Unity.TestFailures);
1141
+ }
1142
+
1143
+ //-----------------------------------------------
1144
+
1145
+