ceedling 0.20.3 → 0.21.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 (407) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +1 -0
  4. data/Rakefile +1 -0
  5. data/bin/ceedling +79 -26
  6. data/lib/ceedling/configurator_plugins.rb +0 -18
  7. data/lib/ceedling/rules_cmock.rake +1 -1
  8. data/lib/ceedling/tasks_base.rake +5 -1
  9. data/lib/ceedling/tasks_tests.rake +12 -9
  10. data/lib/ceedling/version.rb +1 -1
  11. data/lib/ceedling/version.rb.erb +1 -1
  12. data/plugins/fake_function_framework/README.md +250 -0
  13. data/plugins/fake_function_framework/Rakefile +19 -0
  14. data/plugins/fake_function_framework/examples/fff_example/project.yml +71 -0
  15. data/plugins/fake_function_framework/examples/fff_example/rakefile.rb +7 -0
  16. data/plugins/fake_function_framework/examples/fff_example/src/bar.c +1 -0
  17. data/plugins/fake_function_framework/examples/fff_example/src/bar.h +13 -0
  18. data/plugins/fake_function_framework/examples/fff_example/src/custom_types.h +6 -0
  19. data/plugins/fake_function_framework/examples/fff_example/src/display.c +7 -0
  20. data/plugins/fake_function_framework/examples/fff_example/src/display.h +16 -0
  21. data/plugins/fake_function_framework/examples/fff_example/src/event_processor.c +92 -0
  22. data/plugins/fake_function_framework/examples/fff_example/src/event_processor.h +11 -0
  23. data/plugins/fake_function_framework/examples/fff_example/src/foo.c +16 -0
  24. data/plugins/fake_function_framework/examples/fff_example/src/foo.h +8 -0
  25. data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.c +1 -0
  26. data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.h +6 -0
  27. data/plugins/fake_function_framework/examples/fff_example/test/test_event_processor.c +155 -0
  28. data/plugins/fake_function_framework/examples/fff_example/test/test_foo.c +47 -0
  29. data/plugins/fake_function_framework/lib/fake_function_framework.rb +87 -0
  30. data/plugins/fake_function_framework/lib/fff_mock_generator.rb +159 -0
  31. data/plugins/fake_function_framework/spec/fff_mock_generator_spec.rb +464 -0
  32. data/plugins/fake_function_framework/spec/spec_helper.rb +96 -0
  33. data/plugins/fake_function_framework/src/fff_unity_helper.h +33 -0
  34. data/plugins/fake_function_framework/vendor/fff/LICENSE +25 -0
  35. data/plugins/fake_function_framework/vendor/fff/Makefile +10 -0
  36. data/plugins/fake_function_framework/vendor/fff/README.md +454 -0
  37. data/plugins/fake_function_framework/vendor/fff/buildandtest +15 -0
  38. data/plugins/fake_function_framework/vendor/fff/examples/Makefile +7 -0
  39. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/Makefile +64 -0
  40. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.c +24 -0
  41. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.h +11 -0
  42. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.cpp +50 -0
  43. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/driver.test.fff.cpp +62 -0
  44. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/hardware_abstraction.h +15 -0
  45. data/plugins/fake_function_framework/vendor/fff/examples/driver_testing/registers.h +13 -0
  46. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/DISPLAY.h +17 -0
  47. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Kata.txt +25 -0
  48. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/Makefile +67 -0
  49. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/SYSTEM.h +21 -0
  50. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.c +48 -0
  51. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI.h +12 -0
  52. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_ansic.c +183 -0
  53. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +136 -0
  54. data/plugins/fake_function_framework/vendor/fff/examples/embedded_ui/test_suite_template.c +34 -0
  55. data/plugins/fake_function_framework/vendor/fff/fakegen.rb +420 -0
  56. data/plugins/fake_function_framework/vendor/fff/fff.h +5112 -0
  57. data/plugins/fake_function_framework/vendor/fff/gtest/Makefile +22 -0
  58. data/plugins/fake_function_framework/vendor/fff/gtest/gtest-all.cc +9118 -0
  59. data/plugins/fake_function_framework/vendor/fff/gtest/gtest-main.cc +6 -0
  60. data/plugins/fake_function_framework/vendor/fff/gtest/gtest.h +19537 -0
  61. data/plugins/fake_function_framework/vendor/fff/test/Makefile +81 -0
  62. data/plugins/fake_function_framework/vendor/fff/test/c_test_framework.h +15 -0
  63. data/plugins/fake_function_framework/vendor/fff/test/fff_test_c.c +108 -0
  64. data/plugins/fake_function_framework/vendor/fff/test/fff_test_cpp.cpp +45 -0
  65. data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_c.c +76 -0
  66. data/plugins/fake_function_framework/vendor/fff/test/fff_test_global_cpp.cpp +23 -0
  67. data/plugins/fake_function_framework/vendor/fff/test/global_fakes.c +13 -0
  68. data/plugins/fake_function_framework/vendor/fff/test/global_fakes.h +37 -0
  69. data/plugins/fake_function_framework/vendor/fff/test/test_cases.include +276 -0
  70. data/plugins/gcov/README.md +9 -0
  71. data/plugins/gcov/{template.erb → assets/template.erb} +1 -1
  72. data/plugins/gcov/{defaults.yml → config/defaults.yml} +10 -1
  73. data/plugins/gcov/gcov.rake +20 -8
  74. data/plugins/gcov/{gcov.rb → lib/gcov.rb} +13 -24
  75. data/plugins/module_generator/module_generator.rake +3 -3
  76. data/plugins/warnings_report/lib/warnings_report.rb +69 -0
  77. data/plugins/xml_tests_report/lib/xml_tests_report.rb +108 -0
  78. data/spec/spec_system_helper.rb +1 -1
  79. data/vendor/c_exception/lib/CException.h +1 -1
  80. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +16 -16
  81. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +61 -21
  82. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +5 -1
  83. data/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +146 -0
  84. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  85. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  86. data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  87. data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  88. data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
  89. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +1 -1
  90. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
  91. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
  92. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
  93. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
  94. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
  95. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
  96. data/vendor/c_exception/vendor/unity/examples/unity_config.h +257 -0
  97. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +9 -8
  98. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -0
  99. data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +28 -8
  100. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +57 -17
  101. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +3 -0
  102. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +2 -3
  103. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
  104. data/vendor/c_exception/vendor/unity/release/version.info +1 -1
  105. data/vendor/c_exception/vendor/unity/src/unity.c +336 -191
  106. data/vendor/c_exception/vendor/unity/src/unity.h +73 -69
  107. data/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -90
  108. data/vendor/c_exception/vendor/unity/test/Makefile +51 -0
  109. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
  110. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +5 -5
  111. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +5 -5
  112. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
  113. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
  114. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
  115. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
  116. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
  117. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
  118. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
  119. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
  120. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
  121. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +5 -5
  122. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -7
  123. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +5 -5
  124. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +5 -5
  125. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -7
  126. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
  127. data/vendor/c_exception/vendor/unity/test/rakefile +5 -0
  128. data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +9 -7
  129. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +1 -0
  130. data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +3 -0
  131. data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +1 -0
  132. data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +1 -0
  133. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
  134. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
  135. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
  136. data/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
  137. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
  138. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
  139. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
  140. data/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
  141. data/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
  142. data/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +1 -0
  143. data/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
  144. data/vendor/c_exception/vendor/unity/test/testdata/CException.h +11 -0
  145. data/vendor/c_exception/vendor/unity/test/testdata/Defs.h +8 -0
  146. data/vendor/c_exception/vendor/unity/test/testdata/cmock.h +14 -0
  147. data/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +13 -0
  148. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
  149. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
  150. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
  151. data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
  152. data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +1 -1
  153. data/vendor/c_exception/vendor/unity/test/tests/testunity.c +127 -5
  154. data/vendor/cmock/docs/CMock_Summary.md +1 -1
  155. data/vendor/cmock/lib/cmock_generator.rb +7 -2
  156. data/vendor/cmock/lib/cmock_header_parser.rb +29 -9
  157. data/vendor/cmock/scripts/create_mock.rb +1 -1
  158. data/vendor/cmock/test/system/test_compilation/const.h +15 -0
  159. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +4 -4
  160. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +136 -73
  161. data/vendor/cmock/vendor/c_exception/lib/CException.h +1 -1
  162. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +16 -16
  163. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +61 -21
  164. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +5 -1
  165. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +146 -0
  166. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  167. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  168. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  169. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  170. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
  171. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +1 -1
  172. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
  173. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
  174. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
  175. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
  176. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
  177. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
  178. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +257 -0
  179. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +9 -8
  180. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -0
  181. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +28 -8
  182. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +57 -17
  183. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +3 -0
  184. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +2 -3
  185. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
  186. data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +1 -1
  187. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +336 -191
  188. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +73 -69
  189. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +119 -90
  190. data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +51 -0
  191. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
  192. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +5 -5
  193. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +5 -5
  194. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
  195. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
  196. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
  197. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
  198. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
  199. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
  200. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
  201. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
  202. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
  203. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +5 -5
  204. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +7 -7
  205. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +5 -5
  206. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +5 -5
  207. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +7 -7
  208. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
  209. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +5 -0
  210. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +9 -7
  211. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +1 -0
  212. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +3 -0
  213. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +1 -0
  214. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +1 -0
  215. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
  216. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
  217. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
  218. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
  219. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
  220. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
  221. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
  222. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
  223. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
  224. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +1 -0
  225. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
  226. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/CException.h +11 -0
  227. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/Defs.h +8 -0
  228. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/cmock.h +14 -0
  229. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +13 -0
  230. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
  231. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
  232. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
  233. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
  234. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +1 -1
  235. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +127 -5
  236. data/vendor/cmock/vendor/unity/auto/generate_module.rb +16 -16
  237. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +61 -21
  238. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +5 -1
  239. data/vendor/cmock/vendor/unity/auto/unity_to_junit.py +146 -0
  240. data/vendor/cmock/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  241. data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  242. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  243. data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  244. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
  245. data/vendor/cmock/vendor/unity/examples/example_1/makefile +1 -1
  246. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
  247. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
  248. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
  249. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
  250. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
  251. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
  252. data/vendor/cmock/vendor/unity/examples/unity_config.h +257 -0
  253. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +3 -0
  254. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +5 -2
  255. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +1 -2
  256. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
  257. data/vendor/cmock/vendor/unity/src/unity.c +329 -186
  258. data/vendor/cmock/vendor/unity/src/unity.h +73 -69
  259. data/vendor/cmock/vendor/unity/src/unity_internals.h +119 -94
  260. data/vendor/cmock/vendor/unity/test/Makefile +4 -5
  261. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
  262. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +5 -5
  263. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +5 -5
  264. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
  265. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
  266. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
  267. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
  268. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
  269. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
  270. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
  271. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
  272. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
  273. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +5 -5
  274. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +7 -7
  275. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +5 -5
  276. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +5 -5
  277. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +7 -7
  278. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
  279. data/vendor/cmock/vendor/unity/test/rakefile +5 -0
  280. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +9 -7
  281. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +1 -0
  282. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +3 -0
  283. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +1 -0
  284. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +1 -0
  285. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
  286. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
  287. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
  288. data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
  289. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
  290. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
  291. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
  292. data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
  293. data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
  294. data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +1 -0
  295. data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
  296. data/vendor/cmock/vendor/unity/test/testdata/CException.h +11 -0
  297. data/vendor/cmock/vendor/unity/test/testdata/Defs.h +8 -0
  298. data/vendor/cmock/vendor/unity/test/testdata/cmock.h +14 -0
  299. data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +13 -0
  300. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
  301. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
  302. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
  303. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
  304. data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +1 -1
  305. data/vendor/cmock/vendor/unity/test/tests/testunity.c +104 -7
  306. data/vendor/deep_merge/README +94 -94
  307. data/vendor/deep_merge/Rakefile +28 -28
  308. data/vendor/deep_merge/lib/deep_merge.rb +211 -211
  309. data/vendor/deep_merge/test/test_deep_merge.rb +553 -553
  310. data/vendor/unity/auto/generate_module.rb +16 -16
  311. data/vendor/unity/auto/generate_test_runner.rb +61 -21
  312. data/vendor/unity/auto/stylize_as_junit.rb +5 -1
  313. data/vendor/unity/auto/unity_to_junit.py +146 -0
  314. data/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  315. data/vendor/unity/docs/UnityAssertionsReference.pdf +0 -0
  316. data/vendor/unity/docs/UnityConfigurationGuide.pdf +0 -0
  317. data/vendor/unity/docs/UnityGettingStartedGuide.pdf +0 -0
  318. data/vendor/unity/docs/UnityHelperScriptsGuide.pdf +0 -0
  319. data/vendor/unity/examples/example_1/makefile +1 -1
  320. data/vendor/unity/examples/example_1/src/ProductionCode.c +7 -7
  321. data/vendor/unity/examples/example_1/src/ProductionCode2.c +2 -2
  322. data/vendor/unity/examples/example_1/test/TestProductionCode.c +14 -14
  323. data/vendor/unity/examples/example_1/test/TestProductionCode2.c +2 -2
  324. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +5 -5
  325. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +5 -5
  326. data/vendor/unity/examples/unity_config.h +257 -0
  327. data/vendor/unity/extras/fixture/src/unity_fixture.c +3 -0
  328. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +5 -2
  329. data/vendor/unity/extras/fixture/test/unity_output_Spy.c +1 -2
  330. data/vendor/unity/extras/fixture/test/unity_output_Spy.h +1 -1
  331. data/vendor/unity/src/unity.c +329 -186
  332. data/vendor/unity/src/unity.h +73 -69
  333. data/vendor/unity/src/unity_internals.h +119 -94
  334. data/vendor/unity/test/Makefile +4 -5
  335. data/vendor/unity/test/expectdata/testsample_cmd.c +5 -5
  336. data/vendor/unity/test/expectdata/testsample_def.c +5 -5
  337. data/vendor/unity/test/expectdata/testsample_head1.c +5 -5
  338. data/vendor/unity/test/expectdata/testsample_mock_cmd.c +6 -6
  339. data/vendor/unity/test/expectdata/testsample_mock_def.c +6 -6
  340. data/vendor/unity/test/expectdata/testsample_mock_head1.c +6 -6
  341. data/vendor/unity/test/expectdata/testsample_mock_new1.c +6 -6
  342. data/vendor/unity/test/expectdata/testsample_mock_new2.c +8 -8
  343. data/vendor/unity/test/expectdata/testsample_mock_param.c +6 -6
  344. data/vendor/unity/test/expectdata/testsample_mock_run1.c +6 -6
  345. data/vendor/unity/test/expectdata/testsample_mock_run2.c +8 -8
  346. data/vendor/unity/test/expectdata/testsample_mock_yaml.c +7 -7
  347. data/vendor/unity/test/expectdata/testsample_new1.c +5 -5
  348. data/vendor/unity/test/expectdata/testsample_new2.c +7 -7
  349. data/vendor/unity/test/expectdata/testsample_param.c +5 -5
  350. data/vendor/unity/test/expectdata/testsample_run1.c +5 -5
  351. data/vendor/unity/test/expectdata/testsample_run2.c +7 -7
  352. data/vendor/unity/test/expectdata/testsample_yaml.c +6 -6
  353. data/vendor/unity/test/rakefile +5 -0
  354. data/vendor/unity/test/rakefile_helper.rb +9 -7
  355. data/vendor/unity/test/targets/clang_file.yml +1 -0
  356. data/vendor/unity/test/targets/clang_strict.yml +3 -0
  357. data/vendor/unity/test/targets/gcc_32.yml +1 -0
  358. data/vendor/unity/test/targets/gcc_64.yml +1 -0
  359. data/vendor/unity/test/targets/gcc_auto_limits.yml +1 -0
  360. data/vendor/unity/test/targets/gcc_auto_sizeof.yml +1 -0
  361. data/vendor/unity/test/targets/gcc_auto_stdint.yml +1 -0
  362. data/vendor/unity/test/targets/gcc_manual_math.yml +1 -0
  363. data/vendor/unity/test/targets/iar_arm_v4.yml +1 -0
  364. data/vendor/unity/test/targets/iar_arm_v5.yml +1 -0
  365. data/vendor/unity/test/targets/iar_arm_v5_3.yml +1 -0
  366. data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +1 -0
  367. data/vendor/unity/test/targets/iar_cortexm3_v5.yml +1 -0
  368. data/vendor/unity/test/targets/iar_msp430.yml +1 -0
  369. data/vendor/unity/test/targets/iar_sh2a_v6.yml +1 -0
  370. data/vendor/unity/test/testdata/CException.h +11 -0
  371. data/vendor/unity/test/testdata/Defs.h +8 -0
  372. data/vendor/unity/test/testdata/cmock.h +14 -0
  373. data/vendor/unity/test/testdata/mockMock.h +13 -0
  374. data/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
  375. data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +65 -0
  376. data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
  377. data/vendor/unity/test/tests/test_generate_test_runner.rb +1221 -71
  378. data/vendor/unity/test/tests/testparameterized.c +1 -1
  379. data/vendor/unity/test/tests/testunity.c +104 -7
  380. metadata +124 -32
  381. data/plugins/gcov/readme.txt +0 -0
  382. data/plugins/warnings_report/warnings_report.rb +0 -71
  383. data/plugins/xml_tests_report/xml_tests_report.rb +0 -110
  384. data/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  385. data/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  386. data/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +0 -224
  387. data/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +0 -51
  388. data/vendor/c_exception/vendor/unity/test/testdata/sample.yml +0 -9
  389. data/vendor/c_exception/vendor/unity/test/testdata/testsample.c +0 -68
  390. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.odt +0 -0
  391. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.pdf +0 -0
  392. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/Unity Summary.txt +0 -224
  393. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mocksample.c +0 -51
  394. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/sample.yml +0 -9
  395. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testsample.c +0 -68
  396. data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
  397. data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
  398. data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +0 -224
  399. data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +0 -51
  400. data/vendor/cmock/vendor/unity/test/testdata/sample.yml +0 -9
  401. data/vendor/cmock/vendor/unity/test/testdata/testsample.c +0 -68
  402. data/vendor/unity/docs/Unity Summary.odt +0 -0
  403. data/vendor/unity/docs/Unity Summary.pdf +0 -0
  404. data/vendor/unity/docs/Unity Summary.txt +0 -224
  405. data/vendor/unity/test/testdata/mocksample.c +0 -51
  406. data/vendor/unity/test/testdata/sample.yml +0 -9
  407. data/vendor/unity/test/testdata/testsample.c +0 -68
@@ -8,7 +8,7 @@
8
8
  #include <stdio.h>
9
9
  #include "unity.h"
10
10
 
11
- int putcharSpy(int c) {return putchar(c);} // include passthrough for linking tests
11
+ void putcharSpy(int c) { (void)putchar(c);} // include passthrough for linking tests
12
12
 
13
13
  #define TEST_CASE(...)
14
14
 
@@ -44,8 +44,8 @@ static const _UD d_zero = 0.0;
44
44
  UNITY_OUTPUT_CHAR('\n'); \
45
45
  }
46
46
 
47
- int SetToOneToFailInTearDown;
48
- int SetToOneMeanWeAlreadyCheckedThisGuy;
47
+ static int SetToOneToFailInTearDown;
48
+ static int SetToOneMeanWeAlreadyCheckedThisGuy;
49
49
 
50
50
  void setUp(void)
51
51
  {
@@ -1370,7 +1370,7 @@ void testNotEqualString4(void)
1370
1370
  void testNotEqualStringLen4(void)
1371
1371
  {
1372
1372
  EXPECT_ABORT_BEGIN
1373
- TEST_ASSERT_EQUAL_STRING_LEN("bar\r", "bar\n", 4);
1373
+ TEST_ASSERT_EQUAL_STRING_LEN("\r\x16", "bar\n", 4);
1374
1374
  VERIFY_FAILS_END
1375
1375
  }
1376
1376
 
@@ -1390,6 +1390,13 @@ void testNotEqualString_ExpectedStringIsNull(void)
1390
1390
  VERIFY_FAILS_END
1391
1391
  }
1392
1392
 
1393
+ void testNotEqualStringLen_ExpectedStringIsNull(void)
1394
+ {
1395
+ EXPECT_ABORT_BEGIN
1396
+ TEST_ASSERT_EQUAL_STRING_LEN(NULL, "bar", 1);
1397
+ VERIFY_FAILS_END
1398
+ }
1399
+
1393
1400
  void testNotEqualString_ActualStringIsNull(void)
1394
1401
  {
1395
1402
  EXPECT_ABORT_BEGIN
@@ -1397,6 +1404,13 @@ void testNotEqualString_ActualStringIsNull(void)
1397
1404
  VERIFY_FAILS_END
1398
1405
  }
1399
1406
 
1407
+ void testNotEqualStringLen_ActualStringIsNull(void)
1408
+ {
1409
+ EXPECT_ABORT_BEGIN
1410
+ TEST_ASSERT_EQUAL_STRING_LEN("foo", NULL, 1);
1411
+ VERIFY_FAILS_END
1412
+ }
1413
+
1400
1414
  void testEqualStringArrays(void)
1401
1415
  {
1402
1416
  const char *testStrings[] = { "foo", "boo", "woo", "moo" };
@@ -1476,6 +1490,16 @@ void testEqualStringArrayIfBothNulls(void)
1476
1490
  TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 4);
1477
1491
  }
1478
1492
 
1493
+ void testNotEqualStringArrayLengthZero(void)
1494
+ {
1495
+ const char *testStrings[] = {NULL};
1496
+ const char **expStrings = NULL;
1497
+
1498
+ EXPECT_ABORT_BEGIN
1499
+ TEST_ASSERT_EQUAL_STRING_ARRAY(expStrings, testStrings, 0);
1500
+ VERIFY_FAILS_END
1501
+ }
1502
+
1479
1503
  void testEqualMemory(void)
1480
1504
  {
1481
1505
  const char *testString = "whatever";
@@ -1516,6 +1540,13 @@ void testNotEqualMemory4(void)
1516
1540
  VERIFY_FAILS_END
1517
1541
  }
1518
1542
 
1543
+ void testNotEqualMemoryLengthZero(void)
1544
+ {
1545
+ EXPECT_ABORT_BEGIN
1546
+ TEST_ASSERT_EQUAL_MEMORY(NULL, NULL, 0);
1547
+ VERIFY_FAILS_END
1548
+ }
1549
+
1519
1550
  void testEqualIntArrays(void)
1520
1551
  {
1521
1552
  int p0[] = {1, 8, 987, -2};
@@ -1528,6 +1559,7 @@ void testEqualIntArrays(void)
1528
1559
  TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 4);
1529
1560
  TEST_ASSERT_EQUAL_INT_ARRAY(p0, p2, 3);
1530
1561
  TEST_ASSERT_EQUAL_INT_ARRAY(p0, p3, 1);
1562
+ TEST_ASSERT_EQUAL_INT_ARRAY(NULL, NULL, 1);
1531
1563
  }
1532
1564
 
1533
1565
  void testNotEqualIntArraysNullExpected(void)
@@ -1580,6 +1612,16 @@ void testNotEqualIntArrays3(void)
1580
1612
  VERIFY_FAILS_END
1581
1613
  }
1582
1614
 
1615
+ void testNotEqualIntArraysLengthZero(void)
1616
+ {
1617
+ _UU32 p0[1] = {1};
1618
+ _UU32 p1[1] = {1};
1619
+
1620
+ EXPECT_ABORT_BEGIN
1621
+ TEST_ASSERT_EQUAL_INT_ARRAY(p0, p1, 0);
1622
+ VERIFY_FAILS_END
1623
+ }
1624
+
1583
1625
  void testEqualPtrArrays(void)
1584
1626
  {
1585
1627
  char A = 1;
@@ -2205,7 +2247,7 @@ char* getBufferPutcharSpy(void)
2205
2247
  #endif
2206
2248
  }
2207
2249
 
2208
- int putcharSpy(int c)
2250
+ void putcharSpy(int c)
2209
2251
  {
2210
2252
  #ifdef USING_OUTPUT_SPY
2211
2253
  if (putcharSpyEnabled)
@@ -2215,7 +2257,19 @@ int putcharSpy(int c)
2215
2257
  } else
2216
2258
  c = putchar(c);
2217
2259
  #endif
2218
- return c;
2260
+ }
2261
+
2262
+ void testFailureCountIncrementsAndIsReturnedAtEnd(void)
2263
+ {
2264
+ Unity.CurrentTestFailed = 1;
2265
+ startPutcharSpy(); // Suppress output
2266
+ UnityConcludeTest();
2267
+ TEST_ASSERT_EQUAL(1, Unity.TestFailures);
2268
+
2269
+ int failures = UnityEnd();
2270
+ Unity.TestFailures--;
2271
+ endPutcharSpy();
2272
+ TEST_ASSERT_EQUAL(1, failures);
2219
2273
  }
2220
2274
 
2221
2275
  #define TEST_ASSERT_EQUAL_PRINT_NUMBERS(expected, actual) { \
@@ -2978,6 +3032,18 @@ void testFloatIsNotDeterminate2(void)
2978
3032
  #endif
2979
3033
  }
2980
3034
 
3035
+ void testFloatTraitFailsOnInvalidTrait(void)
3036
+ {
3037
+ #ifdef UNITY_EXCLUDE_FLOAT
3038
+ TEST_IGNORE();
3039
+ #else
3040
+ EXPECT_ABORT_BEGIN
3041
+ UnityAssertFloatSpecial(1.0f, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT);
3042
+ VERIFY_FAILS_END
3043
+ #endif
3044
+ }
3045
+
3046
+
2981
3047
  void testEqualFloatArrays(void)
2982
3048
  {
2983
3049
  #ifdef UNITY_EXCLUDE_FLOAT
@@ -2993,6 +3059,7 @@ void testEqualFloatArrays(void)
2993
3059
  TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
2994
3060
  TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p2, 3);
2995
3061
  TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p3, 1);
3062
+ TEST_ASSERT_EQUAL_FLOAT_ARRAY(NULL, NULL, 1);
2996
3063
  #endif
2997
3064
  }
2998
3065
 
@@ -3136,6 +3203,20 @@ void testNotEqualFloatArraysInf(void)
3136
3203
  #endif
3137
3204
  }
3138
3205
 
3206
+ void testNotEqualFloatArraysLengthZero(void)
3207
+ {
3208
+ #ifdef UNITY_EXCLUDE_FLOAT
3209
+ TEST_IGNORE();
3210
+ #else
3211
+ float p0[1] = {0.0f};
3212
+ float p1[1] = {0.0f};
3213
+
3214
+ EXPECT_ABORT_BEGIN
3215
+ TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 0);
3216
+ VERIFY_FAILS_END
3217
+ #endif
3218
+ }
3219
+
3139
3220
  // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DOUBLE SUPPORT ==================
3140
3221
 
3141
3222
  void testDoublesWithinDelta(void)
@@ -3483,6 +3564,17 @@ void testDoubleIsNotDeterminate2(void)
3483
3564
  #endif
3484
3565
  }
3485
3566
 
3567
+ void testDoubleTraitFailsOnInvalidTrait(void)
3568
+ {
3569
+ #ifdef UNITY_EXCLUDE_DOUBLE
3570
+ TEST_IGNORE();
3571
+ #else
3572
+ EXPECT_ABORT_BEGIN
3573
+ UnityAssertDoubleSpecial(1.0, NULL, __LINE__, UNITY_FLOAT_INVALID_TRAIT);
3574
+ VERIFY_FAILS_END
3575
+ #endif
3576
+ }
3577
+
3486
3578
  void testEqualDoubleArrays(void)
3487
3579
  {
3488
3580
  #ifdef UNITY_EXCLUDE_DOUBLE
@@ -3498,6 +3590,7 @@ void testEqualDoubleArrays(void)
3498
3590
  TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
3499
3591
  TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p2, 3);
3500
3592
  TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p3, 1);
3593
+ TEST_ASSERT_EQUAL_DOUBLE_ARRAY(NULL, NULL, 1);
3501
3594
  #endif
3502
3595
  }
3503
3596
 
@@ -3641,6 +3734,22 @@ void testNotEqualDoubleArraysInf(void)
3641
3734
  #endif
3642
3735
  }
3643
3736
 
3737
+ void testNotEqualDoubleArraysLengthZero(void)
3738
+ {
3739
+ #ifdef UNITY_EXCLUDE_DOUBLE
3740
+ TEST_IGNORE();
3741
+ #else
3742
+ double p0[1] = {0.0};
3743
+ double p1[1] = {0.0};
3744
+
3745
+ EXPECT_ABORT_BEGIN
3746
+ TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 0);
3747
+ VERIFY_FAILS_END
3748
+ #endif
3749
+ }
3750
+
3751
+ // ===================== THESE TEST WILL RUN IF YOUR CONFIG INCLUDES DETAIL SUPPORT ==================
3752
+
3644
3753
  void testThatDetailsCanBeHandleOneDetail(void)
3645
3754
  {
3646
3755
  #ifdef UNITY_EXCLUDE_DETAILS
@@ -3654,6 +3763,19 @@ void testThatDetailsCanBeHandleOneDetail(void)
3654
3763
  #endif
3655
3764
  }
3656
3765
 
3766
+ void testThatDetailsCanHandleTestFail(void)
3767
+ {
3768
+ #ifdef UNITY_EXCLUDE_DETAILS
3769
+ TEST_IGNORE();
3770
+ #else
3771
+ UNITY_SET_DETAILS("Detail1","Detail2");
3772
+
3773
+ EXPECT_ABORT_BEGIN
3774
+ TEST_FAIL_MESSAGE("Should Fail And Say Detail1 and Detail2");
3775
+ VERIFY_FAILS_END
3776
+ #endif
3777
+ }
3778
+
3657
3779
  void testThatDetailsCanBeHandleTwoDetails(void)
3658
3780
  {
3659
3781
  #ifdef UNITY_EXCLUDE_DETAILS
@@ -293,7 +293,7 @@ Defined in the yaml file, they look more like this:
293
293
 
294
294
  * `:plugins`:
295
295
  An array of which plugins to enable. 'expect' is always active. Also
296
- available currently are `:ignore,` `:ignore_args,` `:array,`
296
+ available currently are `:ignore,` `:ignore_arg,` `:array,`
297
297
  `:cexception,` `:callback,` and `:return_thru_ptr`
298
298
 
299
299
  * `:strippables`:
@@ -28,7 +28,12 @@ class CMockGenerator
28
28
  here = File.dirname __FILE__
29
29
  unity_path_in_ceedling = "#{here}/../../unity" # path to Unity from within Ceedling
30
30
  unity_path_in_cmock = "#{here}/../vendor/unity" # path to Unity from within CMock
31
- if File.exist? unity_path_in_ceedling
31
+ # path to Unity as specified by env var
32
+ unity_path_in_env = ENV.has_key?("UNITY_DIR") ? File.expand_path(ENV.fetch("UNITY_DIR")) : nil
33
+
34
+ if unity_path_in_env and File.exist? unity_path_in_env
35
+ require "#{unity_path_in_env}/auto/type_sanitizer"
36
+ elsif File.exist? unity_path_in_ceedling
32
37
  require "#{unity_path_in_ceedling}/auto/type_sanitizer"
33
38
  elsif File.exist? unity_path_in_cmock
34
39
  require "#{unity_path_in_cmock}/auto/type_sanitizer"
@@ -95,7 +100,7 @@ class CMockGenerator
95
100
  file << plugin_includes if (!plugin_includes.empty?)
96
101
  file << "\n"
97
102
  file << "/* Ignore the following warnings, since we are copying code */\n"
98
- file << "#if defined(__GNUC__) && !defined(__ICC)\n"
103
+ file << "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n"
99
104
  file << "#if !defined(__clang__)\n"
100
105
  file << "#pragma GCC diagnostic ignored \"-Wpragmas\"\n"
101
106
  file << "#endif\n"
@@ -141,10 +141,8 @@ class CMockHeaderParser
141
141
  arg_array = arg.split
142
142
  arg_elements = arg_array - @c_attributes # split up words and remove known attributes
143
143
  args << { :type => (arg_type = arg_elements[0..-2].join(' ')),
144
- :name => arg_elements[-1],
145
- :ptr? => divine_ptr(arg_type),
146
- :const? => divine_const(arg)
147
- }
144
+ :name => arg_elements[-1]
145
+ }.merge(divine_ptr_and_const(arg))
148
146
  end
149
147
  return args
150
148
  end
@@ -156,11 +154,34 @@ class CMockHeaderParser
156
154
  end
157
155
 
158
156
  def divine_const(arg)
159
- return false if /const[ *]/.match(arg).nil? # check for const
160
- return false if /\*/.match(arg) and /const[^*]*\*/.match(arg).nil? # check const comes before * indicating const data
157
+ return false if !(/(?:^|\s|\*)const(?:\*|\s|$)/ =~ arg) # check for const as part of a larger word
158
+ return true if (/const(?:\w|\s)*\*/ =~ arg) # check const comes before * indicating const data
159
+ return false if (/\*\s*const/ =~ arg) # check const comes after * indicating const ptr
161
160
  return true
162
161
  end
163
162
 
163
+ def divine_ptr_and_const(arg)
164
+ divination = { :ptr? => false, :const? => false, :const_ptr? => false }
165
+
166
+ #first check if there is a pointer present and that it's not part of a C string or function definition
167
+ #divination[:ptr?] = (arg.split[0..-2].join.include?('*') && !arg.gsub(/(const|char|\*|\s)+/,'').empty?)
168
+ divination[:ptr?] = (arg.include?('*') && !arg.gsub(/(const|char|\*|\s)+/,'').empty?)
169
+
170
+ #if there isn't a const that isn't part of a larger word, we're done
171
+ return divination if !(/(?:^|\s|\*)const(?:\*|\s|$)/ =~ arg)
172
+ divination[:const?] = true
173
+
174
+ # check const comes after * indicating const ptr
175
+ if (/\*\s*const/ =~ arg)
176
+ divination[:const_ptr?] = true
177
+
178
+ #check const comes before * indicating also const data
179
+ divination[:const?] = (/const(?:\w|\s)*\*/ =~ arg) ? true : false
180
+ end
181
+
182
+ return divination
183
+ end
184
+
164
185
  def clean_args(arg_list)
165
186
  if ((@local_as_void.include?(arg_list.strip)) or (arg_list.empty?))
166
187
  return 'void'
@@ -220,6 +241,7 @@ class CMockHeaderParser
220
241
  #build attribute and return type strings
221
242
  decl[:modifier] = []
222
243
  rettype = []
244
+ full_retval = descriptors[0..-2].join(' ')
223
245
  descriptors[0..-2].each do |word|
224
246
  if @c_attributes.include?(word)
225
247
  decl[:modifier] << word
@@ -234,11 +256,9 @@ class CMockHeaderParser
234
256
  rettype = 'void' if (@local_as_void.include?(rettype.strip))
235
257
  decl[:return] = { :type => rettype,
236
258
  :name => 'cmock_to_return',
237
- :ptr? => divine_ptr(rettype),
238
- :const? => decl[:modifier].split(/\s/).include?('const'),
239
259
  :str => "#{rettype} cmock_to_return",
240
260
  :void? => (rettype == 'void')
241
- }
261
+ }.merge(divine_ptr_and_const(full_retval))
242
262
 
243
263
  #remove default argument statements from mock definitions
244
264
  args.gsub!(/=\s*[a-zA-Z0-9_\.]+\s*/, ' ')
@@ -4,5 +4,5 @@ raise "Header file to mock must be specified!" unless ARGV.length >= 1
4
4
 
5
5
  mock_out = ENV.fetch('MOCK_OUT', './build/test/mocks')
6
6
  mock_prefix = ENV.fetch('MOCK_PREFIX', 'mock_')
7
- cmock = CMock.new(plugins: [:ignore, :return_thru_ptr], mock_prefix: 'mock_', mock_path: mock_out)
7
+ cmock = CMock.new({:plugins => [:ignore, :return_thru_ptr], :mock_prefix => mock_prefix, :mock_path => mock_out})
8
8
  cmock.setup_mocks(ARGV[0])
@@ -20,3 +20,18 @@ void const_variants2(
20
20
  struct _DUMMY_T const * const param1,
21
21
  const unsigned long int const * const param2,
22
22
  const struct _DUMMY_T const * param3 );
23
+
24
+ const int * const_retval1(void); /* nicety version for pointer to constant int */
25
+ int const * const_retval2(void); /* formal version for pointer to constant int */
26
+ //int * const const_retval3(void); /* formal version for constant pointer to int */
27
+ //int const * const const_retval4(void); /* formal version for constant pointer to constant int */
28
+
29
+ const int* const_retval5(void); /* sticky-left nicety version for pointer to constant int */
30
+ int const* const_retval6(void); /* sticky-left formal version for pointer to constant int */
31
+ //int* const const_retval7(void); /* sticky-left formal version for constant pointer to int */
32
+ //int const* const const_retval8(void); /* sticky-left formal version for constant pointer to constant int */
33
+
34
+ const int *const_retval9(void); /* sticky-right nicety version for pointer to constant int */
35
+ int const *const_retvalA(void); /* sticky-right formal version for pointer to constant int */
36
+ //int *const const_retvalB(void); /* sticky-right formal version for constant pointer to int */
37
+ //int const *const const_retvalC(void); /* sticky-right formal version for constant pointer to constant int */
@@ -94,7 +94,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
94
94
  "#include \"PluginRequiredHeader.h\"\n",
95
95
  "\n",
96
96
  "/* Ignore the following warnings, since we are copying code */\n",
97
- "#if defined(__GNUC__) && !defined(__ICC)\n",
97
+ "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n",
98
98
  "#if !defined(__clang__)\n",
99
99
  "#pragma GCC diagnostic ignored \"-Wpragmas\"\n",
100
100
  "#endif\n",
@@ -144,7 +144,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
144
144
  "#include \"PluginRequiredHeader.h\"\n",
145
145
  "\n",
146
146
  "/* Ignore the following warnings, since we are copying code */\n",
147
- "#if defined(__GNUC__) && !defined(__ICC)\n",
147
+ "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n",
148
148
  "#if !defined(__clang__)\n",
149
149
  "#pragma GCC diagnostic ignored \"-Wpragmas\"\n",
150
150
  "#endif\n",
@@ -178,7 +178,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
178
178
  "#include \"#{orig_filename}\"\n",
179
179
  "\n",
180
180
  "/* Ignore the following warnings, since we are copying code */\n",
181
- "#if defined(__GNUC__) && !defined(__ICC)\n",
181
+ "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n",
182
182
  "#if !defined(__clang__)\n",
183
183
  "#pragma GCC diagnostic ignored \"-Wpragmas\"\n",
184
184
  "#endif\n",
@@ -213,7 +213,7 @@ describe CMockGenerator, "Verify CMockGenerator Module" do
213
213
  "#include \"PluginRequiredHeader.h\"\n",
214
214
  "\n",
215
215
  "/* Ignore the following warnings, since we are copying code */\n",
216
- "#if defined(__GNUC__) && !defined(__ICC)\n",
216
+ "#if defined(__GNUC__) && !defined(__ICC) && !defined(__TMS470__)\n",
217
217
  "#if !defined(__clang__)\n",
218
218
  "#pragma GCC diagnostic ignored \"-Wpragmas\"\n",
219
219
  "#endif\n",
@@ -478,12 +478,13 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
478
478
  :name => 'cmock_to_return',
479
479
  :ptr? => false,
480
480
  :const? => false,
481
+ :const_ptr? => false,
481
482
  :str => "void cmock_to_return",
482
483
  :void? => true
483
484
  },
484
485
  :modifier=>"",
485
486
  :contains_ptr? => false,
486
- :args=>[{:type=>"int", :name=>"a", :ptr? => false, :const? => false}],
487
+ :args=>[{:type=>"int", :name=>"a", :ptr? => false, :const? => false, :const_ptr? => false}],
487
488
  :args_string=>"int a",
488
489
  :args_call=>"a"}
489
490
  assert_equal(expected, @parser.parse_declaration(source))
@@ -497,6 +498,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
497
498
  :name => 'cmock_to_return',
498
499
  :ptr? => false,
499
500
  :const? => false,
501
+ :const_ptr? => false,
500
502
  :str => "int cmock_to_return",
501
503
  :void? => false
502
504
  },
@@ -516,12 +518,13 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
516
518
  :name => 'cmock_to_return',
517
519
  :ptr? => false,
518
520
  :const? => false,
521
+ :const_ptr? => false,
519
522
  :str => "char cmock_to_return",
520
523
  :void? => false
521
524
  },
522
525
  :modifier=>"",
523
526
  :contains_ptr? => true,
524
- :args=>[{:type=>"MY_FUNKY_VOID*", :name=>"bluh", :ptr? => true, :const? => false}],
527
+ :args=>[{:type=>"MY_FUNKY_VOID*", :name=>"bluh", :ptr? => true, :const? => false, :const_ptr? => false}],
525
528
  :args_string=>"MY_FUNKY_VOID* bluh",
526
529
  :args_call=>"bluh" }
527
530
  assert_equal(expected, @parser.parse_declaration(source))
@@ -614,13 +617,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
614
617
  :name => 'cmock_to_return',
615
618
  :ptr? => false,
616
619
  :const? => false,
620
+ :const_ptr? => false,
617
621
  :str => "int cmock_to_return",
618
622
  :void? => false
619
623
  },
620
624
  :modifier=>"",
621
625
  :contains_ptr? => false,
622
- :args=>[ {:type=>"int", :name=>"a", :ptr? => false, :const? => false},
623
- {:type=>"unsigned int", :name=>"b", :ptr? => false, :const? => false}
626
+ :args=>[ {:type=>"int", :name=>"a", :ptr? => false, :const? => false, :const_ptr? => false},
627
+ {:type=>"unsigned int", :name=>"b", :ptr? => false, :const? => false, :const_ptr? => false}
624
628
  ],
625
629
  :args_string=>"int a, unsigned int b",
626
630
  :args_call=>"a, b" }
@@ -635,15 +639,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
635
639
  :name => 'cmock_to_return',
636
640
  :ptr? => false,
637
641
  :const? => false,
642
+ :const_ptr? => false,
638
643
  :str => "void cmock_to_return",
639
644
  :void? => true
640
645
  },
641
646
  :name=>"FunkyChicken",
642
647
  :modifier=>"",
643
648
  :contains_ptr? => false,
644
- :args=>[ {:type=>"uint", :name=>"la", :ptr? => false, :const? => false},
645
- {:type=>"int", :name=>"de", :ptr? => false, :const? => false},
646
- {:type=>"bool", :name=>"da", :ptr? => false, :const? => false}
649
+ :args=>[ {:type=>"uint", :name=>"la", :ptr? => false, :const? => false, :const_ptr? => false},
650
+ {:type=>"int", :name=>"de", :ptr? => false, :const? => false, :const_ptr? => false},
651
+ {:type=>"bool", :name=>"da", :ptr? => false, :const? => false, :const_ptr? => false}
647
652
  ],
648
653
  :args_string=>"uint la, int de, bool da",
649
654
  :args_call=>"la, de, da" }
@@ -658,6 +663,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
658
663
  :name => 'cmock_to_return',
659
664
  :ptr? => false,
660
665
  :const? => false,
666
+ :const_ptr? => false,
661
667
  :str => "void cmock_to_return",
662
668
  :void? => true
663
669
  },
@@ -678,14 +684,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
678
684
  :name => 'cmock_to_return',
679
685
  :ptr? => false,
680
686
  :const? => true,
687
+ :const_ptr? => false,
681
688
  :str => "int cmock_to_return",
682
689
  :void? => false
683
690
  },
684
691
  :name=>"TheMatrix",
685
692
  :modifier=>"const",
686
693
  :contains_ptr? => true,
687
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
688
- {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
694
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
695
+ {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
689
696
  ],
690
697
  :args_string=>"int Trinity, unsigned int* Neo",
691
698
  :args_call=>"Trinity, Neo" }
@@ -700,6 +707,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
700
707
  :name => 'cmock_to_return',
701
708
  :ptr? => false,
702
709
  :const? => true,
710
+ :const_ptr? => false,
703
711
  :str => "int cmock_to_return",
704
712
  :void? => false
705
713
  },
@@ -707,8 +715,8 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
707
715
  :modifier=>"const",
708
716
  :c_calling_convention=>"__stdcall",
709
717
  :contains_ptr? => true,
710
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
711
- {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
718
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
719
+ {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
712
720
  ],
713
721
  :args_string=>"int Trinity, unsigned int* Neo",
714
722
  :args_call=>"Trinity, Neo" }
@@ -725,14 +733,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
725
733
  :name => 'cmock_to_return',
726
734
  :ptr? => false,
727
735
  :const? => true,
736
+ :const_ptr? => false,
728
737
  :str => "int cmock_to_return",
729
738
  :void? => false
730
739
  },
731
740
  :name=>"TheMatrix",
732
741
  :modifier=>"const",
733
742
  :contains_ptr? => true,
734
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
735
- {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
743
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
744
+ {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
736
745
  ],
737
746
  :args_string=>"int Trinity, unsigned int* Neo",
738
747
  :args_call=>"Trinity, Neo" },
@@ -741,14 +750,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
741
750
  :name => 'cmock_to_return',
742
751
  :ptr? => false,
743
752
  :const? => false,
753
+ :const_ptr? => false,
744
754
  :str => "int cmock_to_return",
745
755
  :void? => false
746
756
  },
747
757
  :name=>"Morpheus",
748
758
  :modifier=>"",
749
759
  :contains_ptr? => true,
750
- :args=>[ {:type=>"int", :name=>"cmock_arg1", :ptr? => false, :const? => false},
751
- {:type=>"unsigned int*", :name=>"cmock_arg2", :ptr? => true, :const? => false}
760
+ :args=>[ {:type=>"int", :name=>"cmock_arg1", :ptr? => false, :const? => false, :const_ptr? => false},
761
+ {:type=>"unsigned int*", :name=>"cmock_arg2", :ptr? => true, :const? => false, :const_ptr? => false}
752
762
  ],
753
763
  :args_string=>"int cmock_arg1, unsigned int* cmock_arg2",
754
764
  :args_call=>"cmock_arg1, cmock_arg2"
@@ -767,13 +777,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
767
777
  :name => 'cmock_to_return',
768
778
  :ptr? => false,
769
779
  :const? => true,
780
+ :const_ptr? => false,
770
781
  :str => "int cmock_to_return",
771
782
  :void? => false
772
783
  },
773
784
  :modifier=>"const",
774
785
  :contains_ptr? => true,
775
- :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false},
776
- {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false}
786
+ :args=>[ {:type=>"int", :name=>"Trinity", :ptr? => false, :const? => false, :const_ptr? => false},
787
+ {:type=>"unsigned int*", :name=>"Neo", :ptr? => true, :const? => false, :const_ptr? => false}
777
788
  ],
778
789
  :args_string=>"int Trinity, unsigned int* Neo",
779
790
  :args_call=>"Trinity, Neo"
@@ -781,6 +792,29 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
781
792
  assert_equal(expected, @parser.parse("module", source)[:functions])
782
793
  end
783
794
 
795
+ it "should properly handle const applied after asterisk in return type (not legal C, but sometimes used)" do
796
+
797
+ source = "int * const PorkRoast(void);\n"
798
+
799
+ expected = [{ :var_arg=>nil,
800
+ :name=>"PorkRoast",
801
+ :return=> { :type => "int*",
802
+ :name => 'cmock_to_return',
803
+ :ptr? => true,
804
+ :const? => false,
805
+ :const_ptr? => true,
806
+ :str => "int* cmock_to_return",
807
+ :void? => false
808
+ },
809
+ :modifier=>"const",
810
+ :contains_ptr? => false,
811
+ :args=>[],
812
+ :args_string=>"void",
813
+ :args_call=>""
814
+ }]
815
+ assert_equal(expected, @parser.parse("module", source)[:functions])
816
+ end
817
+
784
818
  it "properly detect typedef'd variants of void and use those" do
785
819
 
786
820
  source = "typedef (void) FUNKY_VOID_T;\n" +
@@ -794,12 +828,13 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
794
828
  :name => 'cmock_to_return',
795
829
  :ptr? => false,
796
830
  :const? => false,
831
+ :const_ptr? => false,
797
832
  :str => "void cmock_to_return",
798
833
  :void? => true
799
834
  },
800
835
  :modifier=>"",
801
836
  :contains_ptr? => false,
802
- :args=>[ {:type=>"int", :name=>"SingAlong", :ptr? => false, :const? => false} ],
837
+ :args=>[ {:type=>"int", :name=>"SingAlong", :ptr? => false, :const? => false, :const_ptr? => false} ],
803
838
  :args_string=>"int SingAlong",
804
839
  :args_call=>"SingAlong"
805
840
  },
@@ -808,6 +843,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
808
843
  :name => 'cmock_to_return',
809
844
  :ptr? => false,
810
845
  :const? => false,
846
+ :const_ptr? => false,
811
847
  :str => "int cmock_to_return",
812
848
  :void? => false
813
849
  },
@@ -832,13 +868,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
832
868
  :name => 'cmock_to_return',
833
869
  :ptr? => false,
834
870
  :const? => false,
871
+ :const_ptr? => false,
835
872
  :str => "int cmock_to_return",
836
873
  :void? => false
837
874
  },
838
875
  :name=>"DrHorrible",
839
876
  :modifier=>"",
840
877
  :contains_ptr? => false,
841
- :args=>[ {:type=>"struct SingAlong", :name=>"Blog", :ptr? => false, :const? => false} ],
878
+ :args=>[ {:type=>"struct SingAlong", :name=>"Blog", :ptr? => false, :const? => false, :const_ptr? => false} ],
842
879
  :args_string=>"struct SingAlong Blog",
843
880
  :args_call=>"Blog"
844
881
  },
@@ -847,13 +884,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
847
884
  :name => 'cmock_to_return',
848
885
  :ptr? => false,
849
886
  :const? => false,
887
+ :const_ptr? => false,
850
888
  :str => "void cmock_to_return",
851
889
  :void? => true
852
890
  },
853
891
  :name=>"Penny",
854
892
  :modifier=>"",
855
893
  :contains_ptr? => true,
856
- :args=>[ {:type=>"struct _KeepYourHeadUp_*", :name=>"BillyBuddy", :ptr? => true, :const? => true} ],
894
+ :args=>[ {:type=>"struct _KeepYourHeadUp_*", :name=>"BillyBuddy", :ptr? => true, :const? => true, :const_ptr? => true} ],
857
895
  :args_string=>"struct const _KeepYourHeadUp_* const BillyBuddy",
858
896
  :args_call=>"BillyBuddy"
859
897
  },
@@ -862,6 +900,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
862
900
  :name => 'cmock_to_return',
863
901
  :ptr? => false,
864
902
  :const? => false,
903
+ :const_ptr? => false,
865
904
  :str => "struct TheseArentTheHammer cmock_to_return",
866
905
  :void? => false
867
906
  },
@@ -882,14 +921,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
882
921
  :name => 'cmock_to_return',
883
922
  :ptr? => false,
884
923
  :const? => false,
924
+ :const_ptr? => false,
885
925
  :str => "void cmock_to_return",
886
926
  :void? => true
887
927
  },
888
928
  :name=>"OrangePeel",
889
929
  :modifier=>"",
890
930
  :contains_ptr? => true,
891
- :args=>[ {:type=>"union STARS_AND_STRIPES*", :name=>"a", :ptr? => true, :const? => false},
892
- {:type=>"union AFL_CIO", :name=>"b", :ptr? => false, :const? => false}
931
+ :args=>[ {:type=>"union STARS_AND_STRIPES*", :name=>"a", :ptr? => true, :const? => false, :const_ptr? => false},
932
+ {:type=>"union AFL_CIO", :name=>"b", :ptr? => false, :const? => false, :const_ptr? => false}
893
933
  ],
894
934
  :args_string=>"union STARS_AND_STRIPES* a, union AFL_CIO b",
895
935
  :args_call=>"a, b" }]
@@ -904,17 +944,18 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
904
944
  :name => 'cmock_to_return',
905
945
  :ptr? => false,
906
946
  :const? => false,
947
+ :const_ptr? => false,
907
948
  :str => "void cmock_to_return",
908
949
  :void? => true
909
950
  },
910
951
  :name=>"ApplePeel",
911
952
  :modifier=>"",
912
953
  :contains_ptr? => true,
913
- :args=>[ {:type=> "unsigned int", :name=>"const_param", :ptr? => false, :const? => true},
914
- {:type=>"int", :name=>"int_param", :ptr? => false, :const? => false},
915
- {:type=>"int", :name=>"integer", :ptr? => false, :const? => false},
916
- {:type=>"char", :name=>"character", :ptr? => false, :const? => false},
917
- {:type=>"int*", :name=>"constant", :ptr? => true, :const? => false}
954
+ :args=>[ {:type=> "unsigned int", :name=>"const_param", :ptr? => false, :const? => true, :const_ptr? => false},
955
+ {:type=>"int", :name=>"int_param", :ptr? => false, :const? => false, :const_ptr? => false},
956
+ {:type=>"int", :name=>"integer", :ptr? => false, :const? => false, :const_ptr? => false},
957
+ {:type=>"char", :name=>"character", :ptr? => false, :const? => false, :const_ptr? => false},
958
+ {:type=>"int*", :name=>"constant", :ptr? => true, :const? => false, :const_ptr? => true}
918
959
  ],
919
960
  :args_string=>"const unsigned int const_param, int int_param, int integer, char character, int* const constant",
920
961
  :args_call=>"const_param, int_param, integer, character, constant" }]
@@ -929,17 +970,18 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
929
970
  :name => 'cmock_to_return',
930
971
  :ptr? => false,
931
972
  :const? => false,
973
+ :const_ptr? => false,
932
974
  :str => "void cmock_to_return",
933
975
  :void? => true
934
976
  },
935
977
  :name=>"LemonPeel",
936
978
  :modifier=>"",
937
979
  :contains_ptr? => true,
938
- :args=>[ {:type=>"integer", :name=>"param", :ptr? => false, :const? => false},
939
- {:type=>"character", :name=>"thing", :ptr? => false, :const? => false},
940
- {:type=>"longint*", :name=>"junk", :ptr? => true, :const? => false},
941
- {:type=>"constant", :name=>"value", :ptr? => false, :const? => false},
942
- {:type=>"int32_t", :name=>"number", :ptr? => false, :const? => true}
980
+ :args=>[ {:type=>"integer", :name=>"param", :ptr? => false, :const? => false, :const_ptr? => false},
981
+ {:type=>"character", :name=>"thing", :ptr? => false, :const? => false, :const_ptr? => false},
982
+ {:type=>"longint*", :name=>"junk", :ptr? => true, :const? => false, :const_ptr? => false},
983
+ {:type=>"constant", :name=>"value", :ptr? => false, :const? => false, :const_ptr? => false},
984
+ {:type=>"int32_t", :name=>"number", :ptr? => false, :const? => true, :const_ptr? => false}
943
985
  ],
944
986
  :args_string=>"integer param, character thing, longint* junk, constant value, int32_t const number",
945
987
  :args_call=>"param, thing, junk, value, number" }]
@@ -954,16 +996,17 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
954
996
  :name => 'cmock_to_return',
955
997
  :ptr? => false,
956
998
  :const? => false,
999
+ :const_ptr? => false,
957
1000
  :str => "void cmock_to_return",
958
1001
  :void? => true
959
1002
  },
960
1003
  :name=>"CoinOperated",
961
1004
  :modifier=>"",
962
1005
  :contains_ptr? => false,
963
- :args=>[ {:type=>"signed char", :name=>"abc", :ptr? => false, :const? => false},
964
- {:type=>"unsigned long int", :name=>"xyz_123", :ptr? => false, :const? => true},
965
- {:type=>"unsigned int", :name=>"abc_123", :ptr? => false, :const? => true},
966
- {:type=>"long long", :name=>"arm_of_the_law", :ptr? => false, :const? => false}
1006
+ :args=>[ {:type=>"signed char", :name=>"abc", :ptr? => false, :const? => false, :const_ptr? => false},
1007
+ {:type=>"unsigned long int", :name=>"xyz_123", :ptr? => false, :const? => true, :const_ptr? => false},
1008
+ {:type=>"unsigned int", :name=>"abc_123", :ptr? => false, :const? => true, :const_ptr? => false},
1009
+ {:type=>"long long", :name=>"arm_of_the_law", :ptr? => false, :const? => false, :const_ptr? => false}
967
1010
  ],
968
1011
  :args_string=>"signed char abc, const unsigned long int xyz_123, unsigned int const abc_123, long long arm_of_the_law",
969
1012
  :args_call=>"abc, xyz_123, abc_123, arm_of_the_law" }]
@@ -978,16 +1021,17 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
978
1021
  :name => 'cmock_to_return',
979
1022
  :ptr? => false,
980
1023
  :const? => false,
1024
+ :const_ptr? => false,
981
1025
  :str => "void cmock_to_return",
982
1026
  :void? => true
983
1027
  },
984
1028
  :name=>"CardOperated",
985
1029
  :modifier=>"",
986
1030
  :contains_ptr? => true,
987
- :args=>[ {:type=>"CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false},
988
- {:type=>"CUSTOM_TYPE*", :name=>"xyz_123", :ptr? => true, :const? => false},
989
- {:type=>"CUSTOM_TYPE", :name=>"abcxyz", :ptr? => false, :const? => true},
990
- {:type=>"struct CUSTOM_TYPE const*", :name=>"abc123", :ptr? => true, :const? => true}
1031
+ :args=>[ {:type=>"CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false, :const_ptr? => false},
1032
+ {:type=>"CUSTOM_TYPE*", :name=>"xyz_123", :ptr? => true, :const? => false, :const_ptr? => false},
1033
+ {:type=>"CUSTOM_TYPE", :name=>"abcxyz", :ptr? => false, :const? => true, :const_ptr? => false},
1034
+ {:type=>"struct CUSTOM_TYPE const*", :name=>"abc123", :ptr? => true, :const? => true, :const_ptr? => true}
991
1035
  ],
992
1036
  :args_string=>"CUSTOM_TYPE abc, CUSTOM_TYPE* xyz_123, CUSTOM_TYPE const abcxyz, struct CUSTOM_TYPE const* const abc123",
993
1037
  :args_call=>"abc, xyz_123, abcxyz, abc123" }]
@@ -1002,16 +1046,17 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1002
1046
  :name => 'cmock_to_return',
1003
1047
  :ptr? => false,
1004
1048
  :const? => false,
1049
+ :const_ptr? => false,
1005
1050
  :str => "void cmock_to_return",
1006
1051
  :void? => true
1007
1052
  },
1008
1053
  :name=>"KeyOperated",
1009
1054
  :modifier=>"",
1010
1055
  :contains_ptr? => true,
1011
- :args=>[ {:type=>"CUSTOM_TYPE*", :name=>"thing1", :ptr? => true, :const? => false},
1012
- {:type=>"int*", :name=>"thing2", :ptr? => true, :const? => false},
1013
- {:type=>"char*", :name=>"thing3", :ptr? => false, :const? => false}, #THIS one will likely change in the future when we improve multidimensional array support
1014
- {:type=>"int**", :name=>"thing4", :ptr? => true, :const? => false} #THIS one will likely change in the future when we improve multidimensional array support
1056
+ :args=>[ {:type=>"CUSTOM_TYPE*", :name=>"thing1", :ptr? => true, :const? => false, :const_ptr? => false},
1057
+ {:type=>"int*", :name=>"thing2", :ptr? => true, :const? => false, :const_ptr? => false},
1058
+ {:type=>"char*", :name=>"thing3", :ptr? => true, :const? => false, :const_ptr? => false}, #THIS one will likely change in the future when we improve multidimensional array support
1059
+ {:type=>"int**", :name=>"thing4", :ptr? => true, :const? => false, :const_ptr? => false} #THIS one will likely change in the future when we improve multidimensional array support
1015
1060
  ],
1016
1061
  :args_string=>"CUSTOM_TYPE* thing1, int* thing2, char* thing3, int** thing4",
1017
1062
  :args_call=>"thing1, thing2, thing3, thing4" }]
@@ -1026,15 +1071,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1026
1071
  :name => 'cmock_to_return',
1027
1072
  :ptr? => false,
1028
1073
  :const? => false,
1074
+ :const_ptr? => false,
1029
1075
  :str => "void cmock_to_return",
1030
1076
  :void? => true
1031
1077
  },
1032
1078
  :name=>"Cheese",
1033
1079
  :modifier=>"",
1034
1080
  :contains_ptr? => false,
1035
- :args=>[ {:type=>"unsigned CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false},
1036
- {:type=>"unsigned", :name=>"xyz", :ptr? => false, :const? => false},
1037
- {:type=>"CUSTOM_TYPE1 CUSTOM_TYPE2", :name=>"pdq", :ptr? => false, :const? => false}
1081
+ :args=>[ {:type=>"unsigned CUSTOM_TYPE", :name=>"abc", :ptr? => false, :const? => false, :const_ptr? => false},
1082
+ {:type=>"unsigned", :name=>"xyz", :ptr? => false, :const? => false, :const_ptr? => false},
1083
+ {:type=>"CUSTOM_TYPE1 CUSTOM_TYPE2", :name=>"pdq", :ptr? => false, :const? => false, :const_ptr? => false}
1038
1084
  ],
1039
1085
  :args_string=>"unsigned CUSTOM_TYPE abc, unsigned xyz, CUSTOM_TYPE1 CUSTOM_TYPE2 pdq",
1040
1086
  :args_call=>"abc, xyz, pdq" }]
@@ -1049,13 +1095,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1049
1095
  :name => 'cmock_to_return',
1050
1096
  :ptr? => false,
1051
1097
  :const? => false,
1098
+ :const_ptr? => false,
1052
1099
  :str => "void cmock_to_return",
1053
1100
  :void? => true
1054
1101
  },
1055
1102
  :name=>"FunkyTurkey",
1056
1103
  :modifier=>"",
1057
1104
  :contains_ptr? => false,
1058
- :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
1105
+ :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
1059
1106
  ],
1060
1107
  :args_string=>"cmock_module_func_ptr1 func_ptr",
1061
1108
  :args_call=>"func_ptr" }]
@@ -1072,13 +1119,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1072
1119
  :name => 'cmock_to_return',
1073
1120
  :ptr? => false,
1074
1121
  :const? => false,
1122
+ :const_ptr? => false,
1075
1123
  :str => "void cmock_to_return",
1076
1124
  :void? => true
1077
1125
  },
1078
1126
  :name=>"FunkyTurkey",
1079
1127
  :modifier=>"",
1080
1128
  :contains_ptr? => false,
1081
- :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
1129
+ :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
1082
1130
  ],
1083
1131
  :args_string=>"cmock_module_func_ptr1 func_ptr",
1084
1132
  :args_call=>"func_ptr" }]
@@ -1095,13 +1143,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1095
1143
  :name => 'cmock_to_return',
1096
1144
  :ptr? => false,
1097
1145
  :const? => false,
1146
+ :const_ptr? => false,
1098
1147
  :str => "void cmock_to_return",
1099
1148
  :void? => true
1100
1149
  },
1101
1150
  :name=>"FunkyTurkey",
1102
1151
  :modifier=>"",
1103
1152
  :contains_ptr? => false,
1104
- :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
1153
+ :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
1105
1154
  ],
1106
1155
  :args_string=>"cmock_module_func_ptr1 func_ptr",
1107
1156
  :args_call=>"func_ptr" }]
@@ -1118,13 +1167,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1118
1167
  :name => 'cmock_to_return',
1119
1168
  :ptr? => false,
1120
1169
  :const? => false,
1170
+ :const_ptr? => false,
1121
1171
  :str => "void cmock_to_return",
1122
1172
  :void? => true
1123
1173
  },
1124
1174
  :name=>"FunkyChicken",
1125
1175
  :modifier=>"",
1126
1176
  :contains_ptr? => false,
1127
- :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => true}
1177
+ :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => true, :const_ptr? => false}
1128
1178
  ],
1129
1179
  :args_string=>"cmock_module_func_ptr1 const func_ptr",
1130
1180
  :args_call=>"func_ptr" }]
@@ -1141,13 +1191,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1141
1191
  # :name => 'cmock_to_return',
1142
1192
  # :ptr? => false,
1143
1193
  # :const? => false,
1194
+ # :const_ptr? => false,
1144
1195
  # :str => "void cmock_to_return",
1145
1196
  # :void? => true
1146
1197
  # },
1147
1198
  # :name=>"FunkyParrot",
1148
1199
  # :modifier=>"",
1149
1200
  # :contains_ptr? => false,
1150
- # :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false}
1201
+ # :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr", :ptr? => false, :const? => false, :const_ptr? => false}
1151
1202
  # ],
1152
1203
  # :args_string=>"cmock_module_func_ptr1 func_ptr",
1153
1204
  # :args_call=>"func_ptr" }]
@@ -1164,14 +1215,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1164
1215
  :name => 'cmock_to_return',
1165
1216
  :ptr? => false,
1166
1217
  :const? => false,
1218
+ :const_ptr? => false,
1167
1219
  :str => "void cmock_to_return",
1168
1220
  :void? => true
1169
1221
  },
1170
1222
  :name=>"FunkyBudgie",
1171
1223
  :modifier=>"",
1172
1224
  :contains_ptr? => false,
1173
- :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false},
1174
- {:type=>"cmock_module_func_ptr2", :name=>"func_ptr2", :ptr? => false, :const? => false}
1225
+ :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false, :const_ptr? => false},
1226
+ {:type=>"cmock_module_func_ptr2", :name=>"func_ptr2", :ptr? => false, :const? => false, :const_ptr? => false}
1175
1227
  ],
1176
1228
  :args_string=>"cmock_module_func_ptr1 func_ptr1, cmock_module_func_ptr2 func_ptr2",
1177
1229
  :args_call=>"func_ptr1, func_ptr2" }]
@@ -1188,15 +1240,16 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1188
1240
  :name => 'cmock_to_return',
1189
1241
  :ptr? => true,
1190
1242
  :const? => false,
1243
+ :const_ptr? => false,
1191
1244
  :str => "struct mytype* cmock_to_return",
1192
1245
  :void? => false
1193
1246
  },
1194
1247
  :name=>"FunkyRobin",
1195
1248
  :modifier=>"",
1196
1249
  :contains_ptr? => false,
1197
- :args=>[ {:type=>"uint16_t", :name=>"num1", :ptr? => false, :const? => false},
1198
- {:type=>"uint16_t", :name=>"num2", :ptr? => false, :const? => false},
1199
- {:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false}
1250
+ :args=>[ {:type=>"uint16_t", :name=>"num1", :ptr? => false, :const? => false, :const_ptr? => false},
1251
+ {:type=>"uint16_t", :name=>"num2", :ptr? => false, :const? => false, :const_ptr? => false},
1252
+ {:type=>"cmock_module_func_ptr1", :name=>"func_ptr1", :ptr? => false, :const? => false, :const_ptr? => false}
1200
1253
  ],
1201
1254
  :args_string=>"uint16_t num1, uint16_t num2, cmock_module_func_ptr1 func_ptr1",
1202
1255
  :args_call=>"num1, num2, func_ptr1" }]
@@ -1213,13 +1266,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1213
1266
  :name => 'cmock_to_return',
1214
1267
  :ptr? => false,
1215
1268
  :const? => false,
1269
+ :const_ptr? => false,
1216
1270
  :str => "void cmock_to_return",
1217
1271
  :void? => true
1218
1272
  },
1219
1273
  :name=>"FunkyFowl",
1220
1274
  :modifier=>"",
1221
1275
  :contains_ptr? => false,
1222
- :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => true}
1276
+ :args=>[ {:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => true, :const_ptr? => false}
1223
1277
  ],
1224
1278
  :args_string=>"cmock_module_func_ptr1 const cmock_arg1",
1225
1279
  :args_call=>"cmock_arg1" }]
@@ -1236,13 +1290,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1236
1290
  :name => 'cmock_to_return',
1237
1291
  :ptr? => false,
1238
1292
  :const? => false,
1293
+ :const_ptr? => false,
1239
1294
  :str => "cmock_module_func_ptr1 cmock_to_return",
1240
1295
  :void? => false
1241
1296
  },
1242
1297
  :name=>"FunkyPidgeon",
1243
1298
  :modifier=>"",
1244
1299
  :contains_ptr? => false,
1245
- :args=>[ {:type=>"char", :name=>"op_code", :ptr? => false, :const? => true}
1300
+ :args=>[ {:type=>"char", :name=>"op_code", :ptr? => false, :const? => true, :const_ptr? => false}
1246
1301
  ],
1247
1302
  :args_string=>"const char op_code",
1248
1303
  :args_call=>"op_code" }]
@@ -1259,6 +1314,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1259
1314
  :name => 'cmock_to_return',
1260
1315
  :ptr? => false,
1261
1316
  :const? => false,
1317
+ :const_ptr? => false,
1262
1318
  :str => "cmock_module_func_ptr1 cmock_to_return",
1263
1319
  :void? => false
1264
1320
  },
@@ -1281,6 +1337,7 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1281
1337
  :name => 'cmock_to_return',
1282
1338
  :ptr? => false,
1283
1339
  :const? => false,
1340
+ :const_ptr? => false,
1284
1341
  :str => "cmock_module_func_ptr1 cmock_to_return",
1285
1342
  :void? => false
1286
1343
  },
@@ -1303,14 +1360,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1303
1360
  :name => 'cmock_to_return',
1304
1361
  :ptr? => false,
1305
1362
  :const? => false,
1363
+ :const_ptr? => false,
1306
1364
  :str => "cmock_module_func_ptr1 cmock_to_return",
1307
1365
  :void? => false
1308
1366
  },
1309
1367
  :name=>"FunkyMacaw",
1310
1368
  :modifier=>"",
1311
1369
  :contains_ptr? => true,
1312
- :args=>[ {:type=>"double*", :name=>"foo", :ptr? => true, :const? => false},
1313
- {:type=>"THING*", :name=>"bar", :ptr? => true, :const? => false}
1370
+ :args=>[ {:type=>"double*", :name=>"foo", :ptr? => true, :const? => false, :const_ptr? => false},
1371
+ {:type=>"THING*", :name=>"bar", :ptr? => true, :const? => false, :const_ptr? => false}
1314
1372
  ],
1315
1373
  :args_string=>"double* foo, THING* bar",
1316
1374
  :args_call=>"foo, bar" }]
@@ -1327,17 +1385,18 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1327
1385
  :name => "cmock_to_return",
1328
1386
  :ptr? => false,
1329
1387
  :const? => false,
1388
+ :const_ptr? => false,
1330
1389
  :str => "int cmock_to_return",
1331
1390
  :void? => false
1332
1391
  },
1333
1392
  :name=>"sqlite3_bind_text",
1334
1393
  :modifier=>"SQLITE_API",
1335
1394
  :contains_ptr? => true,
1336
- :args=>[ {:type=>"sqlite3_stmt*", :name=>"cmock_arg2", :ptr? => true, :const? => false},
1337
- {:type=>"int", :name=>"cmock_arg3", :ptr? => false, :const? => false},
1338
- {:type=>"char*", :name=>"cmock_arg4", :ptr? => false, :const? => true},
1339
- {:type=>"int", :name=>"n", :ptr? => false, :const? => false},
1340
- {:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => false}
1395
+ :args=>[ {:type=>"sqlite3_stmt*", :name=>"cmock_arg2", :ptr? => true, :const? => false, :const_ptr? => false},
1396
+ {:type=>"int", :name=>"cmock_arg3", :ptr? => false, :const? => false, :const_ptr? => false},
1397
+ {:type=>"char*", :name=>"cmock_arg4", :ptr? => true, :const? => true, :const_ptr? => false},
1398
+ {:type=>"int", :name=>"n", :ptr? => false, :const? => false, :const_ptr? => false},
1399
+ {:type=>"cmock_module_func_ptr1", :name=>"cmock_arg1", :ptr? => false, :const? => false, :const_ptr? => false}
1341
1400
  ],
1342
1401
  :args_string=>"sqlite3_stmt* cmock_arg2, int cmock_arg3, const char* cmock_arg4, int n, cmock_module_func_ptr1 cmock_arg1",
1343
1402
  :args_call=>"cmock_arg2, cmock_arg3, cmock_arg4, n, cmock_arg1" }]
@@ -1354,14 +1413,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1354
1413
  :name => 'cmock_to_return',
1355
1414
  :ptr? => false,
1356
1415
  :const? => false,
1416
+ :const_ptr? => false,
1357
1417
  :str => "int cmock_to_return",
1358
1418
  :void? => false
1359
1419
  },
1360
1420
  :name=>"XFiles",
1361
1421
  :modifier=>"",
1362
1422
  :contains_ptr? => false,
1363
- :args=>[ {:type=>"int", :name=>"Scully", :ptr? => false, :const? => false},
1364
- {:type=>"int", :name=>"Mulder", :ptr? => false, :const? => false}
1423
+ :args=>[ {:type=>"int", :name=>"Scully", :ptr? => false, :const? => false, :const_ptr? => false},
1424
+ {:type=>"int", :name=>"Mulder", :ptr? => false, :const? => false, :const_ptr? => false}
1365
1425
  ],
1366
1426
  :args_string=>"int Scully, int Mulder",
1367
1427
  :args_call=>"Scully, Mulder"
@@ -1376,13 +1436,14 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1376
1436
  :name => 'cmock_to_return',
1377
1437
  :ptr? => true,
1378
1438
  :const? => false,
1439
+ :const_ptr? => false,
1379
1440
  :str => "void* cmock_to_return",
1380
1441
  :void? => false
1381
1442
  },
1382
1443
  :name=>"MoreSillySongs",
1383
1444
  :modifier=>"",
1384
1445
  :contains_ptr? => true,
1385
- :args=>[ {:type=>"void*", :name=>"stuff", :ptr? => true, :const? => false}
1446
+ :args=>[ {:type=>"void*", :name=>"stuff", :ptr? => true, :const? => false, :const_ptr? => false}
1386
1447
  ],
1387
1448
  :args_string=>"void* stuff",
1388
1449
  :args_call=>"stuff"
@@ -1397,14 +1458,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1397
1458
  :name => 'cmock_to_return',
1398
1459
  :ptr? => false,
1399
1460
  :const? => false,
1461
+ :const_ptr? => false,
1400
1462
  :str => "int cmock_to_return",
1401
1463
  :void? => false
1402
1464
  },
1403
1465
  :name=>"LaverneAndShirley",
1404
1466
  :modifier=>"",
1405
1467
  :contains_ptr? => false,
1406
- :args=>[ {:type=>"int", :name=>"Lenny", :ptr? => false, :const? => false},
1407
- {:type=>"int", :name=>"Squiggy", :ptr? => false, :const? => false}
1468
+ :args=>[ {:type=>"int", :name=>"Lenny", :ptr? => false, :const? => false, :const_ptr? => false},
1469
+ {:type=>"int", :name=>"Squiggy", :ptr? => false, :const? => false, :const_ptr? => false}
1408
1470
  ],
1409
1471
  :args_string=>"int Lenny, int Squiggy",
1410
1472
  :args_call=>"Lenny, Squiggy"
@@ -1419,14 +1481,15 @@ describe CMockHeaderParser, "Verify CMockHeaderParser Module" do
1419
1481
  :name => 'cmock_to_return',
1420
1482
  :ptr? => false,
1421
1483
  :const? => false,
1484
+ :const_ptr? => false,
1422
1485
  :str => "int cmock_to_return",
1423
1486
  :void? => false
1424
1487
  },
1425
1488
  :name=>"TheCosbyShow",
1426
1489
  :modifier=>"",
1427
1490
  :contains_ptr? => false,
1428
- :args=>[ {:type=>"int", :name=>"Cliff", :ptr? => false, :const? => false},
1429
- {:type=>"int", :name=>"Claire", :ptr? => false, :const? => false}
1491
+ :args=>[ {:type=>"int", :name=>"Cliff", :ptr? => false, :const? => false, :const_ptr? => false},
1492
+ {:type=>"int", :name=>"Claire", :ptr? => false, :const? => false, :const_ptr? => false}
1430
1493
  ],
1431
1494
  :args_string=>"int Cliff, int Claire",
1432
1495
  :args_call=>"Cliff, Claire"