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
@@ -1,323 +1,323 @@
1
- /* ==========================================
2
- CMock Project - Automatic Mock Generation for C
3
- Copyright (c) 2007 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 "cmock_internals.h"
9
-
10
- #define TEST_MEM_INDEX_SIZE (sizeof(CMOCK_MEM_INDEX_TYPE))
11
-
12
- void setUp(void)
13
- {
14
- CMock_Guts_MemFreeAll();
15
- }
16
-
17
- void tearDown(void)
18
- {
19
- }
20
-
21
- void test_MemNewWillReturnNullIfGivenIllegalSizes(void)
22
- {
23
- TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNew(0) );
24
- TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNew(CMOCK_MEM_SIZE - TEST_MEM_INDEX_SIZE + 1) );
25
- TEST_ASSERT_NULL( CMock_Guts_GetAddressFor(CMOCK_GUTS_NONE) );
26
-
27
- //verify we're cleared still
28
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
29
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
30
- }
31
-
32
- void test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation(void)
33
- {
34
- CMOCK_MEM_INDEX_TYPE next = CMock_Guts_MemNew(4);
35
- TEST_ASSERT_EQUAL(4 + TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesUsed());
36
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 - TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesFree());
37
-
38
- TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemChain(next + CMOCK_MEM_SIZE, next) );
39
- TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemChain(next, next + CMOCK_MEM_SIZE) );
40
-
41
- //verify we're still the same
42
- TEST_ASSERT_EQUAL(4 + TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesUsed());
43
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 - TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesFree());
44
- }
45
-
46
- void test_MemNextWillReturnNullIfGivenABadRoot(void)
47
- {
48
- TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNext(0) );
49
- TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNext(2) );
50
- TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNext(CMOCK_MEM_SIZE - 4) );
51
-
52
- //verify we're cleared still
53
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
54
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
55
- }
56
-
57
- void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
58
- {
59
- unsigned int i;
60
- CMOCK_MEM_INDEX_TYPE next;
61
- CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
62
- CMOCK_MEM_INDEX_TYPE element[4];
63
-
64
- //verify we're cleared first
65
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
66
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
67
-
68
- //first element
69
- element[0] = CMock_Guts_MemNew(sizeof(unsigned int));
70
- TEST_ASSERT_MESSAGE(element[0] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
71
- first = CMock_Guts_MemChain(first, element[0]);
72
- TEST_ASSERT_EQUAL(element[0], first);
73
- *((unsigned int*)CMock_Guts_GetAddressFor(element[0])) = 0;
74
-
75
- //verify we're using the right amount of memory
76
- TEST_ASSERT_EQUAL(1 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
77
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 1 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
78
-
79
- //second element
80
- element[1] = CMock_Guts_MemNew(sizeof(unsigned int));
81
- TEST_ASSERT_MESSAGE(element[1] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
82
- TEST_ASSERT_NOT_EQUAL(element[0], element[1]);
83
- TEST_ASSERT_EQUAL(first, CMock_Guts_MemChain(first, element[1]));
84
- *((unsigned int*)CMock_Guts_GetAddressFor(element[1])) = 1;
85
-
86
- //verify we're using the right amount of memory
87
- TEST_ASSERT_EQUAL(2 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
88
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 2 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
89
-
90
- //third element
91
- element[2] = CMock_Guts_MemNew(sizeof(unsigned int));
92
- TEST_ASSERT_MESSAGE(element[2] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
93
- TEST_ASSERT_NOT_EQUAL(element[0], element[2]);
94
- TEST_ASSERT_NOT_EQUAL(element[1], element[2]);
95
- TEST_ASSERT_EQUAL(first, CMock_Guts_MemChain(first, element[2]));
96
- *((unsigned int*)CMock_Guts_GetAddressFor(element[2])) = 2;
97
-
98
- //verify we're using the right amount of memory
99
- TEST_ASSERT_EQUAL(3 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
100
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 3 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
101
-
102
- //fourth element
103
- element[3] = CMock_Guts_MemNew(sizeof(unsigned int));
104
- TEST_ASSERT_MESSAGE(element[3] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
105
- TEST_ASSERT_NOT_EQUAL(element[0], element[3]);
106
- TEST_ASSERT_NOT_EQUAL(element[1], element[3]);
107
- TEST_ASSERT_NOT_EQUAL(element[2], element[3]);
108
- TEST_ASSERT_EQUAL(first, CMock_Guts_MemChain(first, element[3]));
109
- *((unsigned int*)CMock_Guts_GetAddressFor(element[3])) = 3;
110
-
111
- //verify we're using the right amount of memory
112
- TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
113
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
114
-
115
- //traverse list
116
- next = first;
117
- for (i = 0; i < 4; i++)
118
- {
119
- TEST_ASSERT_EQUAL(element[i], next);
120
- TEST_ASSERT_EQUAL(i, *((unsigned int*)CMock_Guts_GetAddressFor(element[i])));
121
- next = CMock_Guts_MemNext(next);
122
- }
123
-
124
- //verify we get a null at the end of the list
125
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
126
-
127
- //verify we're using the right amount of memory
128
- TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
129
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
130
-
131
- //Free it all
132
- CMock_Guts_MemFreeAll();
133
-
134
- //verify we're cleared
135
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
136
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
137
- }
138
-
139
- void test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory(void)
140
- {
141
- unsigned int i;
142
- CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
143
- CMOCK_MEM_INDEX_TYPE next;
144
-
145
- //even though we are asking for one byte, we've told it to align to closest CMOCK_MEM_ALIGN_SIZE bytes, therefore it will waste a byte each time
146
- //so each call will use (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE) bytes (CMOCK_MEM_INDEX_SIZE for the index, 1 for the data, and (CMOCK_MEM_ALIGN_SIZE - 1) wasted).
147
- //therefore we can safely allocated total/(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE) times.
148
- for (i = 0; i < (CMOCK_MEM_SIZE / (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE)); i++)
149
- {
150
- TEST_ASSERT_EQUAL(i*(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE), CMock_Guts_MemBytesUsed());
151
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE), CMock_Guts_MemBytesFree());
152
-
153
- next = CMock_Guts_MemNew(1);
154
- TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
155
-
156
- first = CMock_Guts_MemChain(first, next);
157
- TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
158
- }
159
-
160
- //verify we're at top of memory
161
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesUsed());
162
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesFree());
163
-
164
- //The very next call will return a NULL, and any after that
165
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(1));
166
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(1));
167
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(1));
168
-
169
- //verify nothing has changed
170
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesUsed());
171
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesFree());
172
-
173
- //verify we can still walk through the elements allocated
174
- next = first;
175
- for (i = 0; i < (CMOCK_MEM_SIZE / (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE)); i++)
176
- {
177
- TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
178
- next = CMock_Guts_MemNext(next);
179
- }
180
-
181
- //there aren't any after that
182
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, (_UU32)next);
183
- }
184
-
185
- void test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtExactEnd(void)
186
- {
187
- unsigned int i;
188
- CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
189
- CMOCK_MEM_INDEX_TYPE next;
190
-
191
- //we're asking for (CMOCK_MEM_INDEX_SIZE + 8) bytes each time now (CMOCK_MEM_INDEX_SIZE for index, 8 for data).
192
- //CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8) requests will request as much data as possible, while ensuring that there isn't enough
193
- //memory for the next request
194
- for (i = 0; i < CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8); i++)
195
- {
196
- TEST_ASSERT_EQUAL(i*(CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
197
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*(CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
198
-
199
- next = CMock_Guts_MemNew(8);
200
- TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
201
-
202
- first = CMock_Guts_MemChain(first, next);
203
- TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
204
-
205
- //verify writing data won't screw us up
206
- *((unsigned int*)CMock_Guts_GetAddressFor(next)) = i;
207
- }
208
-
209
- //verify we're at top of memory
210
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
211
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
212
-
213
- //The very next call will return a NONE, and any after that
214
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(8));
215
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(5));
216
-
217
- //verify nothing has changed
218
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
219
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
220
-
221
- //verify we can still walk through the elements allocated
222
- next = first;
223
- for (i = 0; i < CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8); i++)
224
- {
225
- TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
226
- TEST_ASSERT_EQUAL(i, *((unsigned int*)CMock_Guts_GetAddressFor(next)));
227
- next = CMock_Guts_MemNext(next);
228
- }
229
-
230
- //there aren't any after that
231
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
232
- }
233
-
234
- void test_ThatWeCanAskForAllSortsOfSizes(void)
235
- {
236
- #if CMOCK_MEM_ALIGN != 2
237
- TEST_IGNORE_MESSAGE("Test relies on a particular environmental setup, which is not present");
238
- #else
239
-
240
- unsigned int i;
241
- CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
242
- CMOCK_MEM_INDEX_TYPE next;
243
- CMOCK_MEM_INDEX_TYPE sizes[5] = {3, 1, 80, 5, 4};
244
- CMOCK_MEM_INDEX_TYPE sizes_buffered[5] = {4, 4, 80, 8, 4};
245
- CMOCK_MEM_INDEX_TYPE sum = 0;
246
-
247
- for (i = 0; i < 5; i++)
248
- {
249
- next = CMock_Guts_MemNew(sizes[i]);
250
- TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
251
-
252
- first = CMock_Guts_MemChain(first, next);
253
- TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
254
-
255
- sum += sizes_buffered[i] + 4;
256
- TEST_ASSERT_EQUAL(sum, CMock_Guts_MemBytesUsed());
257
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - sum, CMock_Guts_MemBytesFree());
258
- }
259
-
260
- //show that we can't ask for too much memory
261
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(12));
262
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(5));
263
-
264
- //but we CAN ask for something that will still fit
265
- next = CMock_Guts_MemNew(4);
266
- TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
267
-
268
- first = CMock_Guts_MemChain(first, next);
269
- TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
270
-
271
- //verify we're used up now
272
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesUsed());
273
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesFree());
274
-
275
- //verify we can still walk through the elements allocated
276
- next = first;
277
- for (i = 0; i < 6; i++)
278
- {
279
- TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
280
- next = CMock_Guts_MemNext(next);
281
- }
282
-
283
- //there aren't any after that
284
- TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
285
- #endif
286
- }
287
-
288
- void test_MemEndOfChain(void)
289
- {
290
- CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
291
- CMOCK_MEM_INDEX_TYPE element[4];
292
-
293
- //verify we're cleared first
294
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
295
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
296
-
297
- //first element
298
- element[0] = CMock_Guts_MemNew(sizeof(unsigned int));
299
- first = CMock_Guts_MemChain(first, element[0]);
300
- TEST_ASSERT_MESSAGE(element[0] == CMock_Guts_MemEndOfChain(first), "Should have returned element[0]");
301
-
302
- //second element
303
- element[1] = CMock_Guts_MemNew(sizeof(unsigned int));
304
- CMock_Guts_MemChain(first, element[1]);
305
- TEST_ASSERT_MESSAGE(element[1] == CMock_Guts_MemEndOfChain(first), "Should have returned element[1]");
306
-
307
- //third element
308
- element[2] = CMock_Guts_MemNew(sizeof(unsigned int));
309
- CMock_Guts_MemChain(first, element[2]);
310
- TEST_ASSERT_MESSAGE(element[2] == CMock_Guts_MemEndOfChain(first), "Should have returned element[2]");
311
-
312
- //fourth element
313
- element[3] = CMock_Guts_MemNew(sizeof(unsigned int));
314
- CMock_Guts_MemChain(first, element[3]);
315
- TEST_ASSERT_MESSAGE(element[3] == CMock_Guts_MemEndOfChain(first), "Should have returned element[3]");
316
-
317
- //Free it all
318
- CMock_Guts_MemFreeAll();
319
-
320
- //verify we're cleared
321
- TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
322
- TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
323
- }
1
+ /* ==========================================
2
+ CMock Project - Automatic Mock Generation for C
3
+ Copyright (c) 2007 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 "cmock.h"
9
+
10
+ #define TEST_MEM_INDEX_SIZE (sizeof(CMOCK_MEM_INDEX_TYPE))
11
+
12
+ void setUp(void)
13
+ {
14
+ CMock_Guts_MemFreeAll();
15
+ }
16
+
17
+ void tearDown(void)
18
+ {
19
+ }
20
+
21
+ void test_MemNewWillReturnNullIfGivenIllegalSizes(void)
22
+ {
23
+ TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNew(0) );
24
+ TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNew(CMOCK_MEM_SIZE - TEST_MEM_INDEX_SIZE + 1) );
25
+ TEST_ASSERT_NULL( CMock_Guts_GetAddressFor(CMOCK_GUTS_NONE) );
26
+
27
+ //verify we're cleared still
28
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
29
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
30
+ }
31
+
32
+ void test_MemChainWillReturnNullAndDoNothingIfGivenIllegalInformation(void)
33
+ {
34
+ CMOCK_MEM_INDEX_TYPE next = CMock_Guts_MemNew(4);
35
+ TEST_ASSERT_EQUAL(4 + TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesUsed());
36
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 - TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesFree());
37
+
38
+ TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemChain(next + CMOCK_MEM_SIZE, next) );
39
+ TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemChain(next, next + CMOCK_MEM_SIZE) );
40
+
41
+ //verify we're still the same
42
+ TEST_ASSERT_EQUAL(4 + TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesUsed());
43
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 - TEST_MEM_INDEX_SIZE, CMock_Guts_MemBytesFree());
44
+ }
45
+
46
+ void test_MemNextWillReturnNullIfGivenABadRoot(void)
47
+ {
48
+ TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNext(0) );
49
+ TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNext(2) );
50
+ TEST_ASSERT_EQUAL_HEX( CMOCK_GUTS_NONE, CMock_Guts_MemNext(CMOCK_MEM_SIZE - 4) );
51
+
52
+ //verify we're cleared still
53
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
54
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
55
+ }
56
+
57
+ void test_ThatWeCanClaimAndChainAFewElementsTogether(void)
58
+ {
59
+ unsigned int i;
60
+ CMOCK_MEM_INDEX_TYPE next;
61
+ CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
62
+ CMOCK_MEM_INDEX_TYPE element[4];
63
+
64
+ //verify we're cleared first
65
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
66
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
67
+
68
+ //first element
69
+ element[0] = CMock_Guts_MemNew(sizeof(unsigned int));
70
+ TEST_ASSERT_MESSAGE(element[0] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
71
+ first = CMock_Guts_MemChain(first, element[0]);
72
+ TEST_ASSERT_EQUAL(element[0], first);
73
+ *((unsigned int*)CMock_Guts_GetAddressFor(element[0])) = 0;
74
+
75
+ //verify we're using the right amount of memory
76
+ TEST_ASSERT_EQUAL(1 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
77
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 1 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
78
+
79
+ //second element
80
+ element[1] = CMock_Guts_MemNew(sizeof(unsigned int));
81
+ TEST_ASSERT_MESSAGE(element[1] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
82
+ TEST_ASSERT_NOT_EQUAL(element[0], element[1]);
83
+ TEST_ASSERT_EQUAL(first, CMock_Guts_MemChain(first, element[1]));
84
+ *((unsigned int*)CMock_Guts_GetAddressFor(element[1])) = 1;
85
+
86
+ //verify we're using the right amount of memory
87
+ TEST_ASSERT_EQUAL(2 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
88
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 2 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
89
+
90
+ //third element
91
+ element[2] = CMock_Guts_MemNew(sizeof(unsigned int));
92
+ TEST_ASSERT_MESSAGE(element[2] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
93
+ TEST_ASSERT_NOT_EQUAL(element[0], element[2]);
94
+ TEST_ASSERT_NOT_EQUAL(element[1], element[2]);
95
+ TEST_ASSERT_EQUAL(first, CMock_Guts_MemChain(first, element[2]));
96
+ *((unsigned int*)CMock_Guts_GetAddressFor(element[2])) = 2;
97
+
98
+ //verify we're using the right amount of memory
99
+ TEST_ASSERT_EQUAL(3 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
100
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 3 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
101
+
102
+ //fourth element
103
+ element[3] = CMock_Guts_MemNew(sizeof(unsigned int));
104
+ TEST_ASSERT_MESSAGE(element[3] != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
105
+ TEST_ASSERT_NOT_EQUAL(element[0], element[3]);
106
+ TEST_ASSERT_NOT_EQUAL(element[1], element[3]);
107
+ TEST_ASSERT_NOT_EQUAL(element[2], element[3]);
108
+ TEST_ASSERT_EQUAL(first, CMock_Guts_MemChain(first, element[3]));
109
+ *((unsigned int*)CMock_Guts_GetAddressFor(element[3])) = 3;
110
+
111
+ //verify we're using the right amount of memory
112
+ TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
113
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
114
+
115
+ //traverse list
116
+ next = first;
117
+ for (i = 0; i < 4; i++)
118
+ {
119
+ TEST_ASSERT_EQUAL(element[i], next);
120
+ TEST_ASSERT_EQUAL(i, *((unsigned int*)CMock_Guts_GetAddressFor(element[i])));
121
+ next = CMock_Guts_MemNext(next);
122
+ }
123
+
124
+ //verify we get a null at the end of the list
125
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
126
+
127
+ //verify we're using the right amount of memory
128
+ TEST_ASSERT_EQUAL(4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesUsed());
129
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - 4 * (TEST_MEM_INDEX_SIZE + sizeof(unsigned int)), CMock_Guts_MemBytesFree());
130
+
131
+ //Free it all
132
+ CMock_Guts_MemFreeAll();
133
+
134
+ //verify we're cleared
135
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
136
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
137
+ }
138
+
139
+ void test_ThatCMockStopsReturningMoreDataWhenItRunsOutOfMemory(void)
140
+ {
141
+ unsigned int i;
142
+ CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
143
+ CMOCK_MEM_INDEX_TYPE next;
144
+
145
+ //even though we are asking for one byte, we've told it to align to closest CMOCK_MEM_ALIGN_SIZE bytes, therefore it will waste a byte each time
146
+ //so each call will use (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE) bytes (CMOCK_MEM_INDEX_SIZE for the index, 1 for the data, and (CMOCK_MEM_ALIGN_SIZE - 1) wasted).
147
+ //therefore we can safely allocated total/(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE) times.
148
+ for (i = 0; i < (CMOCK_MEM_SIZE / (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE)); i++)
149
+ {
150
+ TEST_ASSERT_EQUAL(i*(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE), CMock_Guts_MemBytesUsed());
151
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*(CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE), CMock_Guts_MemBytesFree());
152
+
153
+ next = CMock_Guts_MemNew(1);
154
+ TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
155
+
156
+ first = CMock_Guts_MemChain(first, next);
157
+ TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
158
+ }
159
+
160
+ //verify we're at top of memory
161
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesUsed());
162
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesFree());
163
+
164
+ //The very next call will return a NULL, and any after that
165
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(1));
166
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(1));
167
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(1));
168
+
169
+ //verify nothing has changed
170
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesUsed());
171
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesFree());
172
+
173
+ //verify we can still walk through the elements allocated
174
+ next = first;
175
+ for (i = 0; i < (CMOCK_MEM_SIZE / (CMOCK_MEM_INDEX_SIZE + CMOCK_MEM_ALIGN_SIZE)); i++)
176
+ {
177
+ TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
178
+ next = CMock_Guts_MemNext(next);
179
+ }
180
+
181
+ //there aren't any after that
182
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, (_UU32)next);
183
+ }
184
+
185
+ void test_ThatCMockStopsReturningMoreDataWhenAskForMoreThanItHasLeftEvenIfNotAtExactEnd(void)
186
+ {
187
+ unsigned int i;
188
+ CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
189
+ CMOCK_MEM_INDEX_TYPE next;
190
+
191
+ //we're asking for (CMOCK_MEM_INDEX_SIZE + 8) bytes each time now (CMOCK_MEM_INDEX_SIZE for index, 8 for data).
192
+ //CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8) requests will request as much data as possible, while ensuring that there isn't enough
193
+ //memory for the next request
194
+ for (i = 0; i < CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8); i++)
195
+ {
196
+ TEST_ASSERT_EQUAL(i*(CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
197
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - i*(CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
198
+
199
+ next = CMock_Guts_MemNew(8);
200
+ TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
201
+
202
+ first = CMock_Guts_MemChain(first, next);
203
+ TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
204
+
205
+ //verify writing data won't screw us up
206
+ *((unsigned int*)CMock_Guts_GetAddressFor(next)) = i;
207
+ }
208
+
209
+ //verify we're at top of memory
210
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
211
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
212
+
213
+ //The very next call will return a NONE, and any after that
214
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(8));
215
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(5));
216
+
217
+ //verify nothing has changed
218
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesUsed());
219
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE % (CMOCK_MEM_INDEX_SIZE + 8), CMock_Guts_MemBytesFree());
220
+
221
+ //verify we can still walk through the elements allocated
222
+ next = first;
223
+ for (i = 0; i < CMOCK_MEM_SIZE/(CMOCK_MEM_INDEX_SIZE + 8); i++)
224
+ {
225
+ TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
226
+ TEST_ASSERT_EQUAL(i, *((unsigned int*)CMock_Guts_GetAddressFor(next)));
227
+ next = CMock_Guts_MemNext(next);
228
+ }
229
+
230
+ //there aren't any after that
231
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
232
+ }
233
+
234
+ void test_ThatWeCanAskForAllSortsOfSizes(void)
235
+ {
236
+ #if CMOCK_MEM_ALIGN != 2
237
+ TEST_IGNORE_MESSAGE("Test relies on a particular environmental setup, which is not present");
238
+ #else
239
+
240
+ unsigned int i;
241
+ CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
242
+ CMOCK_MEM_INDEX_TYPE next;
243
+ CMOCK_MEM_INDEX_TYPE sizes[5] = {3, 1, 80, 5, 4};
244
+ CMOCK_MEM_INDEX_TYPE sizes_buffered[5] = {4, 4, 80, 8, 4};
245
+ CMOCK_MEM_INDEX_TYPE sum = 0;
246
+
247
+ for (i = 0; i < 5; i++)
248
+ {
249
+ next = CMock_Guts_MemNew(sizes[i]);
250
+ TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
251
+
252
+ first = CMock_Guts_MemChain(first, next);
253
+ TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
254
+
255
+ sum += sizes_buffered[i] + 4;
256
+ TEST_ASSERT_EQUAL(sum, CMock_Guts_MemBytesUsed());
257
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE - sum, CMock_Guts_MemBytesFree());
258
+ }
259
+
260
+ //show that we can't ask for too much memory
261
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(12));
262
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, CMock_Guts_MemNew(5));
263
+
264
+ //but we CAN ask for something that will still fit
265
+ next = CMock_Guts_MemNew(4);
266
+ TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
267
+
268
+ first = CMock_Guts_MemChain(first, next);
269
+ TEST_ASSERT_MESSAGE(first != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
270
+
271
+ //verify we're used up now
272
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesUsed());
273
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesFree());
274
+
275
+ //verify we can still walk through the elements allocated
276
+ next = first;
277
+ for (i = 0; i < 6; i++)
278
+ {
279
+ TEST_ASSERT_MESSAGE(next != CMOCK_GUTS_NONE, "Should Not Have Returned CMOCK_GUTS_NONE");
280
+ next = CMock_Guts_MemNext(next);
281
+ }
282
+
283
+ //there aren't any after that
284
+ TEST_ASSERT_EQUAL_HEX(CMOCK_GUTS_NONE, next);
285
+ #endif
286
+ }
287
+
288
+ void test_MemEndOfChain(void)
289
+ {
290
+ CMOCK_MEM_INDEX_TYPE first = CMOCK_GUTS_NONE;
291
+ CMOCK_MEM_INDEX_TYPE element[4];
292
+
293
+ //verify we're cleared first
294
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
295
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
296
+
297
+ //first element
298
+ element[0] = CMock_Guts_MemNew(sizeof(unsigned int));
299
+ first = CMock_Guts_MemChain(first, element[0]);
300
+ TEST_ASSERT_MESSAGE(element[0] == CMock_Guts_MemEndOfChain(first), "Should have returned element[0]");
301
+
302
+ //second element
303
+ element[1] = CMock_Guts_MemNew(sizeof(unsigned int));
304
+ CMock_Guts_MemChain(first, element[1]);
305
+ TEST_ASSERT_MESSAGE(element[1] == CMock_Guts_MemEndOfChain(first), "Should have returned element[1]");
306
+
307
+ //third element
308
+ element[2] = CMock_Guts_MemNew(sizeof(unsigned int));
309
+ CMock_Guts_MemChain(first, element[2]);
310
+ TEST_ASSERT_MESSAGE(element[2] == CMock_Guts_MemEndOfChain(first), "Should have returned element[2]");
311
+
312
+ //fourth element
313
+ element[3] = CMock_Guts_MemNew(sizeof(unsigned int));
314
+ CMock_Guts_MemChain(first, element[3]);
315
+ TEST_ASSERT_MESSAGE(element[3] == CMock_Guts_MemEndOfChain(first), "Should have returned element[3]");
316
+
317
+ //Free it all
318
+ CMock_Guts_MemFreeAll();
319
+
320
+ //verify we're cleared
321
+ TEST_ASSERT_EQUAL(0, CMock_Guts_MemBytesUsed());
322
+ TEST_ASSERT_EQUAL(CMOCK_MEM_SIZE, CMock_Guts_MemBytesFree());
323
+ }