ceedling 0.13.0 → 0.15.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 (308) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +18 -14
  4. data/README.md +6 -4
  5. data/assets/project_as_gem.yml +1 -1
  6. data/assets/rakefile_as_gem.rb +2 -0
  7. data/assets/rakefile_with_guts.rb +3 -1
  8. data/ceedling.gemspec +1 -0
  9. data/examples/blinky/rakefile.rb +2 -2
  10. data/examples/temp_sensor/rakefile.rb +1 -1
  11. data/examples/temp_sensor/src/TemperatureFilter.c +1 -2
  12. data/examples/temp_sensor/test/TestTemperatureCalculator.c +1 -1
  13. data/examples/temp_sensor/test/TestTemperatureFilter.c +12 -2
  14. data/lib/ceedling.rb +94 -22
  15. data/lib/{build_invoker_utils.rb → ceedling/build_invoker_utils.rb} +27 -27
  16. data/lib/{cacheinator.rb → ceedling/cacheinator.rb} +42 -42
  17. data/lib/{cacheinator_helper.rb → ceedling/cacheinator_helper.rb} +12 -12
  18. data/lib/{cmock_builder.rb → ceedling/cmock_builder.rb} +15 -15
  19. data/lib/{configurator.rb → ceedling/configurator.rb} +333 -329
  20. data/lib/{configurator_builder.rb → ceedling/configurator_builder.rb} +437 -437
  21. data/lib/{configurator_plugins.rb → ceedling/configurator_plugins.rb} +124 -124
  22. data/lib/{configurator_setup.rb → ceedling/configurator_setup.rb} +124 -124
  23. data/lib/{configurator_validator.rb → ceedling/configurator_validator.rb} +184 -184
  24. data/lib/{constants.rb → ceedling/constants.rb} +20 -17
  25. data/lib/{defaults.rb → ceedling/defaults.rb} +19 -18
  26. data/lib/{dependinator.rb → ceedling/dependinator.rb} +92 -92
  27. data/lib/{erb_wrapper.rb → ceedling/erb_wrapper.rb} +8 -8
  28. data/lib/{file_finder.rb → ceedling/file_finder.rb} +132 -132
  29. data/lib/{file_finder_helper.rb → ceedling/file_finder_helper.rb} +54 -54
  30. data/lib/{file_path_utils.rb → ceedling/file_path_utils.rb} +189 -189
  31. data/lib/{file_system_utils.rb → ceedling/file_system_utils.rb} +69 -69
  32. data/lib/{file_system_wrapper.rb → ceedling/file_system_wrapper.rb} +9 -9
  33. data/lib/{file_wrapper.rb → ceedling/file_wrapper.rb} +79 -79
  34. data/lib/{flaginator.rb → ceedling/flaginator.rb} +54 -54
  35. data/lib/{generator.rb → ceedling/generator.rb} +164 -164
  36. data/lib/{generator_helper.rb → ceedling/generator_helper.rb} +40 -40
  37. data/lib/{generator_test_results.rb → ceedling/generator_test_results.rb} +86 -89
  38. data/lib/{generator_test_results_sanity_checker.rb → ceedling/generator_test_results_sanity_checker.rb} +64 -62
  39. data/lib/{generator_test_runner.rb → ceedling/generator_test_runner.rb} +63 -63
  40. data/lib/{loginator.rb → ceedling/loginator.rb} +31 -31
  41. data/lib/{makefile.rb → ceedling/makefile.rb} +0 -0
  42. data/lib/{objects.yml → ceedling/objects.yml} +0 -0
  43. data/lib/{par_map.rb → ceedling/par_map.rb} +0 -0
  44. data/lib/{plugin.rb → ceedling/plugin.rb} +80 -80
  45. data/lib/{plugin_builder.rb → ceedling/plugin_builder.rb} +52 -52
  46. data/lib/{plugin_manager.rb → ceedling/plugin_manager.rb} +107 -107
  47. data/lib/{plugin_manager_helper.rb → ceedling/plugin_manager_helper.rb} +19 -19
  48. data/lib/{plugin_reportinator.rb → ceedling/plugin_reportinator.rb} +2 -2
  49. data/lib/{plugin_reportinator_helper.rb → ceedling/plugin_reportinator_helper.rb} +1 -1
  50. data/lib/{preprocessinator.rb → ceedling/preprocessinator.rb} +43 -43
  51. data/lib/{preprocessinator_extractor.rb → ceedling/preprocessinator_extractor.rb} +30 -30
  52. data/lib/{preprocessinator_file_handler.rb → ceedling/preprocessinator_file_handler.rb} +21 -21
  53. data/lib/{preprocessinator_helper.rb → ceedling/preprocessinator_helper.rb} +46 -46
  54. data/lib/ceedling/preprocessinator_includes_handler.rb +82 -0
  55. data/lib/{project_config_manager.rb → ceedling/project_config_manager.rb} +38 -38
  56. data/lib/{project_file_loader.rb → ceedling/project_file_loader.rb} +64 -64
  57. data/lib/{rake_utils.rb → ceedling/rake_utils.rb} +17 -17
  58. data/lib/{rake_wrapper.rb → ceedling/rake_wrapper.rb} +33 -33
  59. data/lib/{rakefile.rb → ceedling/rakefile.rb} +78 -74
  60. data/lib/{release_invoker.rb → ceedling/release_invoker.rb} +58 -58
  61. data/lib/{release_invoker_helper.rb → ceedling/release_invoker_helper.rb} +16 -16
  62. data/lib/{reportinator.rb → ceedling/reportinator.rb} +9 -9
  63. data/lib/{rules_cmock.rake → ceedling/rules_cmock.rake} +9 -9
  64. data/lib/{rules_preprocess.rake → ceedling/rules_preprocess.rake} +26 -26
  65. data/lib/{rules_release.rake → ceedling/rules_release.rake} +79 -79
  66. data/lib/{rules_release_deep_dependencies.rake → ceedling/rules_release_deep_dependencies.rake} +15 -15
  67. data/lib/{rules_tests.rake → ceedling/rules_tests.rake} +59 -59
  68. data/lib/{rules_tests_deep_dependencies.rake → ceedling/rules_tests_deep_dependencies.rake} +15 -15
  69. data/lib/{setupinator.rb → ceedling/setupinator.rb} +51 -51
  70. data/lib/{stream_wrapper.rb → ceedling/stream_wrapper.rb} +20 -20
  71. data/lib/{streaminator.rb → ceedling/streaminator.rb} +40 -41
  72. data/lib/{streaminator_helper.rb → ceedling/streaminator_helper.rb} +15 -15
  73. data/lib/{system_utils.rb → ceedling/system_utils.rb} +0 -0
  74. data/lib/{system_wrapper.rb → ceedling/system_wrapper.rb} +76 -76
  75. data/lib/{target_loader.rb → ceedling/target_loader.rb} +0 -0
  76. data/lib/{task_invoker.rb → ceedling/task_invoker.rb} +89 -89
  77. data/lib/{tasks_base.rake → ceedling/tasks_base.rake} +104 -104
  78. data/lib/{tasks_filesystem.rake → ceedling/tasks_filesystem.rake} +91 -91
  79. data/lib/{tasks_release.rake → ceedling/tasks_release.rake} +28 -28
  80. data/lib/{tasks_release_deep_dependencies.rake → ceedling/tasks_release_deep_dependencies.rake} +9 -9
  81. data/lib/{tasks_tests.rake → ceedling/tasks_tests.rake} +52 -52
  82. data/lib/{tasks_tests_deep_dependencies.rake → ceedling/tasks_tests_deep_dependencies.rake} +9 -9
  83. data/lib/{tasks_vendor.rake → ceedling/tasks_vendor.rake} +36 -36
  84. data/lib/{test_includes_extractor.rb → ceedling/test_includes_extractor.rb} +81 -81
  85. data/lib/{test_invoker.rb → ceedling/test_invoker.rb} +97 -97
  86. data/lib/{test_invoker_helper.rb → ceedling/test_invoker_helper.rb} +28 -28
  87. data/lib/{tool_executor.rb → ceedling/tool_executor.rb} +215 -212
  88. data/lib/{tool_executor_helper.rb → ceedling/tool_executor_helper.rb} +115 -115
  89. data/lib/{verbosinator.rb → ceedling/verbosinator.rb} +10 -10
  90. data/lib/ceedling/version.rb +1 -1
  91. data/lib/{yaml_wrapper.rb → ceedling/yaml_wrapper.rb} +17 -16
  92. data/license.txt +31 -0
  93. data/plugins/bullseye/lib/bullseye.rb +2 -2
  94. data/plugins/gcov/gcov.rb +2 -2
  95. data/plugins/module_generator/lib/module_generator.rb +4 -3
  96. data/plugins/stdout_ide_tests_report/lib/stdout_ide_tests_report.rb +8 -8
  97. data/plugins/stdout_pretty_tests_report/lib/stdout_pretty_tests_report.rb +3 -3
  98. data/plugins/teamcity_tests_report/config/teamcity_tests_report.yml +4 -0
  99. data/plugins/teamcity_tests_report/lib/teamcity_tests_report.rb +57 -0
  100. data/plugins/xml_tests_report/xml_tests_report.rb +4 -4
  101. data/release/version.info +1 -1
  102. data/spec/ceedling_spec.rb +154 -0
  103. data/spec/par_map_spec.rb +1 -1
  104. data/spec/preprocessinator_extractor_spec.rb +26 -27
  105. data/spec/preprocessinator_includes_handler_spec.rb +175 -0
  106. data/spec/spec_helper.rb +8 -27
  107. data/test_graveyard/integration/paths_test.rb +2 -2
  108. data/test_graveyard/unit/busted/configurator_builder_test.rb +2 -2
  109. data/test_graveyard/unit/busted/configurator_test.rb +1 -1
  110. data/test_graveyard/unit/busted/configurator_validator_test.rb +1 -1
  111. data/test_graveyard/unit/busted/dependinator_test.rb +1 -1
  112. data/test_graveyard/unit/busted/file_finder_helper_test.rb +1 -1
  113. data/test_graveyard/unit/busted/file_finder_test.rb +1 -1
  114. data/test_graveyard/unit/busted/file_path_utils_test.rb +1 -1
  115. data/test_graveyard/unit/busted/file_system_utils_test.rb +1 -1
  116. data/test_graveyard/unit/busted/generator_test.rb +1 -1
  117. data/test_graveyard/unit/busted/generator_test_results_test.rb +1 -1
  118. data/test_graveyard/unit/busted/generator_test_runner_test.rb +1 -1
  119. data/test_graveyard/unit/busted/preprocessinator_file_handler_test.rb +1 -1
  120. data/test_graveyard/unit/busted/preprocessinator_helper_test.rb +1 -1
  121. data/test_graveyard/unit/busted/preprocessinator_includes_handler_test.rb +1 -1
  122. data/test_graveyard/unit/busted/preprocessinator_test.rb +1 -1
  123. data/test_graveyard/unit/busted/project_file_loader_test.rb +1 -1
  124. data/test_graveyard/unit/busted/setupinator_test.rb +1 -1
  125. data/test_graveyard/unit/busted/streaminator_test.rb +2 -2
  126. data/test_graveyard/unit/busted/task_invoker_test.rb +1 -1
  127. data/test_graveyard/unit/busted/test_includes_extractor_test.rb +1 -1
  128. data/test_graveyard/unit/busted/test_invoker_helper_test.rb +1 -1
  129. data/test_graveyard/unit/busted/test_invoker_test.rb +1 -1
  130. data/test_graveyard/unit/busted/tool_executor_helper_test.rb +1 -1
  131. data/test_graveyard/unit/busted/tool_executor_test.rb +1 -1
  132. data/test_graveyard/unit/busted/verbosinator_test.rb +1 -1
  133. data/test_graveyard/unit/preprocessinator_extractor_test.rb +1 -1
  134. data/vendor/c_exception/Gemfile +4 -0
  135. data/vendor/c_exception/lib/CException.h +1 -1
  136. data/vendor/c_exception/test/TestException.c +25 -14
  137. data/vendor/c_exception/test/TestException_Runner.c +74 -57
  138. data/vendor/cmock/Gemfile +11 -0
  139. data/vendor/cmock/lib/cmock_generator.rb +13 -12
  140. data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +44 -0
  141. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +74 -0
  142. data/vendor/cmock/lib/cmock_generator_utils.rb +67 -42
  143. data/vendor/cmock/src/cmock.c +20 -30
  144. data/vendor/cmock/src/cmock.h +1 -0
  145. data/vendor/cmock/src/cmock_internals.h +43 -0
  146. data/vendor/cmock/test/c/TestCMockC.c +79 -36
  147. data/vendor/cmock/test/c/TestCMockC_Runner.c +2 -0
  148. data/vendor/cmock/test/spec/cmock_file_writer_spec.rb +21 -1
  149. data/vendor/cmock/test/spec/cmock_generator_plugin_array_spec.rb +52 -0
  150. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +2 -0
  151. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +235 -0
  152. data/vendor/cmock/test/test_helper.rb +10 -5
  153. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +38 -0
  154. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +116 -0
  155. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +134 -0
  156. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +58 -33
  157. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.odt +0 -0
  158. data/vendor/cmock/vendor/c_exception/docs/CExceptionSummary.pdf +0 -0
  159. data/vendor/cmock/vendor/c_exception/docs/license.txt +30 -0
  160. data/vendor/cmock/vendor/c_exception/docs/readme.txt +236 -0
  161. data/vendor/cmock/vendor/c_exception/lib/CException.c +39 -0
  162. data/vendor/cmock/vendor/c_exception/lib/CException.h +70 -0
  163. data/vendor/cmock/vendor/c_exception/makefile +24 -0
  164. data/vendor/cmock/vendor/c_exception/rakefile.rb +41 -0
  165. data/vendor/cmock/vendor/c_exception/release/build.info +2 -0
  166. data/vendor/cmock/vendor/c_exception/release/version.info +2 -0
  167. data/vendor/cmock/vendor/c_exception/test/CExceptionConfig.h +27 -0
  168. data/vendor/cmock/vendor/c_exception/test/TestException.c +291 -0
  169. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +62 -0
  170. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +94 -0
  171. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -0
  172. data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -0
  173. data/vendor/cmock/vendor/unity/auto/generate_module.rb +202 -0
  174. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +313 -0
  175. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +23 -0
  176. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +139 -0
  177. data/vendor/cmock/vendor/unity/docs/Unity Summary.odt +0 -0
  178. data/vendor/cmock/vendor/unity/docs/Unity Summary.pdf +0 -0
  179. data/vendor/cmock/vendor/unity/docs/Unity Summary.txt +217 -0
  180. data/vendor/cmock/vendor/unity/docs/license.txt +31 -0
  181. data/vendor/cmock/vendor/unity/examples/helper/UnityHelper.c +10 -0
  182. data/vendor/cmock/vendor/unity/examples/helper/UnityHelper.h +12 -0
  183. data/vendor/cmock/vendor/unity/examples/makefile +40 -0
  184. data/vendor/cmock/vendor/unity/examples/rakefile.rb +32 -0
  185. data/vendor/cmock/vendor/unity/examples/rakefile_helper.rb +256 -0
  186. data/vendor/cmock/vendor/unity/examples/readme.txt +18 -0
  187. data/vendor/cmock/vendor/unity/examples/src/ProductionCode.c +24 -0
  188. data/vendor/cmock/vendor/unity/examples/src/ProductionCode.h +3 -0
  189. data/vendor/cmock/vendor/unity/examples/src/ProductionCode2.c +9 -0
  190. data/vendor/cmock/vendor/unity/examples/src/ProductionCode2.h +2 -0
  191. data/vendor/cmock/vendor/unity/examples/test/TestProductionCode.c +62 -0
  192. data/vendor/cmock/vendor/unity/examples/test/TestProductionCode2.c +31 -0
  193. data/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode2_Runner.c +46 -0
  194. data/vendor/cmock/vendor/unity/examples/test/no_ruby/TestProductionCode_Runner.c +50 -0
  195. data/vendor/{unity → cmock/vendor/unity}/extras/fixture/build/MakefileWorker.mk +0 -0
  196. data/vendor/{unity → cmock/vendor/unity}/extras/fixture/build/filterGcov.sh +0 -0
  197. data/vendor/cmock/vendor/unity/extras/fixture/rakefile.rb +37 -0
  198. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  199. data/vendor/cmock/vendor/unity/extras/fixture/readme.txt +9 -0
  200. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +381 -0
  201. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +81 -0
  202. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +44 -0
  203. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +16 -0
  204. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +21 -0
  205. data/vendor/cmock/vendor/unity/extras/fixture/test/testunity_fixture.c +39 -0
  206. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +321 -0
  207. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +40 -0
  208. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +56 -0
  209. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  210. data/vendor/cmock/vendor/unity/makefile +35 -0
  211. data/vendor/cmock/vendor/unity/rakefile.rb +48 -0
  212. data/vendor/cmock/vendor/unity/rakefile_helper.rb +240 -0
  213. data/vendor/cmock/vendor/unity/release/build.info +2 -0
  214. data/vendor/cmock/vendor/unity/release/version.info +2 -0
  215. data/vendor/cmock/vendor/unity/src/unity.c +979 -0
  216. data/vendor/cmock/vendor/unity/src/unity.h +232 -0
  217. data/vendor/cmock/vendor/unity/src/unity_internals.h +424 -0
  218. data/vendor/cmock/vendor/unity/targets/gcc.yml +43 -0
  219. data/vendor/cmock/vendor/unity/targets/gcc_64.yml +44 -0
  220. data/vendor/cmock/vendor/unity/targets/hitech_picc18.yml +101 -0
  221. data/vendor/cmock/vendor/unity/targets/iar_arm_v4.yml +89 -0
  222. data/vendor/cmock/vendor/unity/targets/iar_arm_v5.yml +79 -0
  223. data/vendor/cmock/vendor/unity/targets/iar_arm_v5_3.yml +79 -0
  224. data/vendor/cmock/vendor/unity/targets/iar_armcortex_LM3S9B92_v5_4.yml +93 -0
  225. data/vendor/cmock/vendor/unity/targets/iar_cortexm3_v5.yml +83 -0
  226. data/vendor/cmock/vendor/unity/targets/iar_msp430.yml +94 -0
  227. data/vendor/cmock/vendor/unity/targets/iar_sh2a_v6.yml +85 -0
  228. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +54 -0
  229. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +50 -0
  230. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +76 -0
  231. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +72 -0
  232. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +85 -0
  233. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +85 -0
  234. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +73 -0
  235. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +85 -0
  236. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +85 -0
  237. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +86 -0
  238. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +60 -0
  239. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +63 -0
  240. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +51 -0
  241. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +60 -0
  242. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +63 -0
  243. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +64 -0
  244. data/vendor/cmock/vendor/unity/test/test_generate_test_runner.rb +94 -0
  245. data/vendor/cmock/vendor/unity/test/testdata/mocksample.c +51 -0
  246. data/vendor/cmock/vendor/unity/test/testdata/sample.yml +9 -0
  247. data/vendor/cmock/vendor/unity/test/testdata/testsample.c +51 -0
  248. data/vendor/cmock/vendor/unity/test/testparameterized.c +101 -0
  249. data/vendor/cmock/vendor/unity/test/testunity.c +2024 -0
  250. data/vendor/unity/Gemfile +4 -0
  251. data/vendor/unity/auto/generate_test_runner.rb +6 -3
  252. data/vendor/unity/examples/makefile +2 -2
  253. data/vendor/unity/examples/rakefile.rb +13 -2
  254. data/vendor/unity/extras/fixture/rakefile.rb +1 -1
  255. data/vendor/unity/extras/fixture/rakefile_helper.rb +4 -3
  256. data/vendor/unity/extras/fixture/src/unity_fixture.c +15 -12
  257. data/vendor/unity/extras/fixture/src/unity_fixture.h +5 -5
  258. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +1 -1
  259. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +6 -3
  260. data/vendor/unity/makefile +2 -2
  261. data/vendor/unity/src/unity.c +183 -16
  262. data/vendor/unity/src/unity.h +18 -5
  263. data/vendor/unity/src/unity_internals.h +57 -23
  264. data/vendor/unity/targets/gcc_64.yml +45 -0
  265. data/vendor/unity/test/testunity.c +436 -28
  266. metadata +200 -137
  267. data/ceedling-0.13.0.rc4.gem +0 -0
  268. data/ceedling.sublime-project +0 -8
  269. data/ceedling.sublime-workspace +0 -365
  270. data/lib/preprocessinator_includes_handler.rb +0 -55
  271. data/tags +0 -977
  272. data/vendor/cmock/vendor/hardmock/CHANGES +0 -78
  273. data/vendor/cmock/vendor/hardmock/LICENSE +0 -7
  274. data/vendor/cmock/vendor/hardmock/README +0 -70
  275. data/vendor/cmock/vendor/hardmock/Rakefile +0 -8
  276. data/vendor/cmock/vendor/hardmock/config/environment.rb +0 -12
  277. data/vendor/cmock/vendor/hardmock/lib/assert_error.rb +0 -23
  278. data/vendor/cmock/vendor/hardmock/lib/extend_test_unit.rb +0 -14
  279. data/vendor/cmock/vendor/hardmock/lib/hardmock.rb +0 -86
  280. data/vendor/cmock/vendor/hardmock/lib/hardmock/errors.rb +0 -22
  281. data/vendor/cmock/vendor/hardmock/lib/hardmock/expectation.rb +0 -229
  282. data/vendor/cmock/vendor/hardmock/lib/hardmock/expectation_builder.rb +0 -9
  283. data/vendor/cmock/vendor/hardmock/lib/hardmock/expector.rb +0 -26
  284. data/vendor/cmock/vendor/hardmock/lib/hardmock/method_cleanout.rb +0 -33
  285. data/vendor/cmock/vendor/hardmock/lib/hardmock/mock.rb +0 -180
  286. data/vendor/cmock/vendor/hardmock/lib/hardmock/mock_control.rb +0 -53
  287. data/vendor/cmock/vendor/hardmock/lib/hardmock/stubbing.rb +0 -210
  288. data/vendor/cmock/vendor/hardmock/lib/hardmock/trapper.rb +0 -31
  289. data/vendor/cmock/vendor/hardmock/lib/hardmock/utils.rb +0 -9
  290. data/vendor/cmock/vendor/hardmock/lib/test_unit_before_after.rb +0 -169
  291. data/vendor/cmock/vendor/hardmock/rake_tasks/rdoc.rake +0 -19
  292. data/vendor/cmock/vendor/hardmock/rake_tasks/rdoc_options.rb +0 -4
  293. data/vendor/cmock/vendor/hardmock/rake_tasks/test.rake +0 -22
  294. data/vendor/cmock/vendor/hardmock/test/functional/assert_error_test.rb +0 -52
  295. data/vendor/cmock/vendor/hardmock/test/functional/auto_verify_test.rb +0 -178
  296. data/vendor/cmock/vendor/hardmock/test/functional/direct_mock_usage_test.rb +0 -396
  297. data/vendor/cmock/vendor/hardmock/test/functional/hardmock_test.rb +0 -434
  298. data/vendor/cmock/vendor/hardmock/test/functional/stubbing_test.rb +0 -479
  299. data/vendor/cmock/vendor/hardmock/test/test_helper.rb +0 -43
  300. data/vendor/cmock/vendor/hardmock/test/unit/expectation_builder_test.rb +0 -19
  301. data/vendor/cmock/vendor/hardmock/test/unit/expectation_test.rb +0 -372
  302. data/vendor/cmock/vendor/hardmock/test/unit/expector_test.rb +0 -57
  303. data/vendor/cmock/vendor/hardmock/test/unit/method_cleanout_test.rb +0 -36
  304. data/vendor/cmock/vendor/hardmock/test/unit/mock_control_test.rb +0 -175
  305. data/vendor/cmock/vendor/hardmock/test/unit/mock_test.rb +0 -279
  306. data/vendor/cmock/vendor/hardmock/test/unit/test_unit_before_after_test.rb +0 -452
  307. data/vendor/cmock/vendor/hardmock/test/unit/trapper_test.rb +0 -62
  308. data/vendor/cmock/vendor/hardmock/test/unit/verify_error_test.rb +0 -40
@@ -9,12 +9,17 @@
9
9
  require File.expand_path(File.dirname(__FILE__)) + req
10
10
  end
11
11
 
12
+ # Note from Matt July 16 2012: not sure why this is here, as 1.9 comes with
13
+ # minitest, an implementation for Test::Unit in 1.9.
14
+ # Using test-unit makes hardmock quite unhappy.
15
+ # Long-term solution: replace hardmock with a mocking library like rr or rspec
16
+ # that is well maintained into the future. hardmock is off of life support.
12
17
  #gem install test-unit -v 1.2.3
13
- ruby_version = RUBY_VERSION.split('.')
14
- if (ruby_version[1].to_i == 9) and (ruby_version[2].to_i > 1)
15
- require 'rubygems'
16
- gem 'test-unit'
17
- end
18
+ # ruby_version = RUBY_VERSION.split('.')
19
+ # if (ruby_version[1].to_i == 9) and (ruby_version[2].to_i > 1)
20
+ # require 'rubygems'
21
+ # gem 'test-unit'
22
+ # end
18
23
  require 'test/unit'
19
24
  require 'hardmock'
20
25
 
@@ -52,6 +52,7 @@ class CMockGeneratorTest < Test::Unit::TestCase
52
52
  @cmock_generator = CMockGenerator.new(@config, @file_writer, @utils, @plugins)
53
53
  @cmock_generator.module_name = @module_name
54
54
  @cmock_generator.mock_name = "Mock#{@module_name}"
55
+ @cmock_generator.clean_mock_name = "Mock#{@module_name}"
55
56
 
56
57
  #strict handling
57
58
  @config.expect.mock_prefix.returns("Mock")
@@ -65,6 +66,7 @@ class CMockGeneratorTest < Test::Unit::TestCase
65
66
  @cmock_generator_strict = CMockGenerator.new(@config, @file_writer, @utils, @plugins)
66
67
  @cmock_generator_strict.module_name = @module_name
67
68
  @cmock_generator_strict.mock_name = "Mock#{@module_name}"
69
+ @cmock_generator_strict.clean_mock_name = "Mock#{@module_name}"
68
70
  end
69
71
 
70
72
  def teardown
@@ -100,6 +102,42 @@ class CMockGeneratorTest < Test::Unit::TestCase
100
102
  assert_equal(expected, output)
101
103
  end
102
104
 
105
+ should "handle dashes and spaces in the module name" do
106
+ #no strict handling
107
+ @config.expect.mock_prefix.returns("Mock")
108
+ @config.expect.enforce_strict_ordering.returns(nil)
109
+ @config.expect.framework.returns(:unity)
110
+ @config.expect.includes.returns(["ConfigRequiredHeader1.h","ConfigRequiredHeader2.h"])
111
+ @config.expect.includes_h_post_orig_header.returns(nil)
112
+ @config.expect.includes_c_pre_header.returns(nil)
113
+ @config.expect.includes_c_post_header.returns(nil)
114
+ @cmock_generator2 = CMockGenerator.new(@config, @file_writer, @utils, @plugins)
115
+ @cmock_generator2.module_name = "Pout-Pout Fish"
116
+ @cmock_generator2.mock_name = "MockPout-Pout Fish"
117
+ @cmock_generator2.clean_mock_name = "MockPout_Pout_Fish"
118
+
119
+ @config.expect.mock_prefix.returns("Mock")
120
+ orig_filename = "Pout-Pout Fish.h"
121
+ define_name = "MOCKPOUT_POUT_FISH_H"
122
+ mock_name = "MockPout_Pout_Fish"
123
+ output = []
124
+ expected = [ "/* AUTOGENERATED FILE. DO NOT EDIT. */\n",
125
+ "#ifndef _#{define_name}\n",
126
+ "#define _#{define_name}\n\n",
127
+ "#include \"ConfigRequiredHeader1.h\"\n",
128
+ "#include \"ConfigRequiredHeader2.h\"\n",
129
+ "#include \"#{orig_filename}\"\n",
130
+ "#include \"PluginRequiredHeader.h\"\n",
131
+ "\n"
132
+ ]
133
+
134
+ @plugins.expect.run(:include_files).returns("#include \"PluginRequiredHeader.h\"\n")
135
+
136
+ @cmock_generator2.create_mock_header_header(output, "MockPout-Pout Fish.h")
137
+
138
+ assert_equal(expected, output)
139
+ end
140
+
103
141
  should "create the top of a header file with optional include files from config" do
104
142
  @config.expect.mock_prefix.returns("Mock")
105
143
  orig_filename = "PoutPoutFish.h"
@@ -0,0 +1,116 @@
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
+ require File.expand_path(File.dirname(__FILE__)) + "/../test_helper"
8
+ require 'cmock_generator_plugin_ignore_arg'
9
+
10
+ class CMockGeneratorPluginIgnoreArgTest < Test::Unit::TestCase
11
+ def setup
12
+ create_mocks :config, :utils
13
+
14
+ # int *Oak(void)"
15
+ @void_func = {:name => "Oak", :args => [], :return => test_return[:int_ptr]}
16
+
17
+ # void Pine(int chicken, const int beef, int *tofu)
18
+ @complex_func = {:name => "Pine",
19
+ :args => [{ :type => "int",
20
+ :name => "chicken",
21
+ :ptr? => false,
22
+ },
23
+ { :type => "int*",
24
+ :name => "beef",
25
+ :ptr? => true,
26
+ :const? => true,
27
+ },
28
+ { :type => "int*",
29
+ :name => "tofu",
30
+ :ptr? => true,
31
+ }],
32
+ :return => test_return[:void],
33
+ :contains_ptr? => true }
34
+
35
+ #no strict ordering
36
+ @cmock_generator_plugin_ignore_arg = CMockGeneratorPluginIgnoreArg.new(@config, @utils)
37
+ end
38
+
39
+ def teardown
40
+ end
41
+
42
+ should "have set up internal accessors correctly on init" do
43
+ assert_equal(@utils, @cmock_generator_plugin_ignore_arg.utils)
44
+ assert_equal(10, @cmock_generator_plugin_ignore_arg.priority)
45
+ end
46
+
47
+ should "not include any additional include files" do
48
+ assert(!@cmock_generator_plugin_ignore_arg.respond_to?(:include_files))
49
+ end
50
+
51
+ should "not add to typedef structure for functions with no args" do
52
+ returned = @cmock_generator_plugin_ignore_arg.instance_typedefs(@void_func)
53
+ assert_equal("", returned)
54
+ end
55
+
56
+ should "add to tyepdef structure mock needs of functions of style 'void func(int chicken, int* pork)'" do
57
+ expected = " int IgnoreArg_chicken;\n" +
58
+ " int IgnoreArg_beef;\n" +
59
+ " int IgnoreArg_tofu;\n"
60
+ returned = @cmock_generator_plugin_ignore_arg.instance_typedefs(@complex_func)
61
+ assert_equal(expected, returned)
62
+ end
63
+
64
+ should "add mock function declarations for all arguments" do
65
+ expected =
66
+ "#define Pine_IgnoreArg_chicken()" +
67
+ " Pine_CMockIgnoreArg_chicken(__LINE__)\n" +
68
+ "void Pine_CMockIgnoreArg_chicken(UNITY_LINE_TYPE cmock_line);\n" +
69
+
70
+ "#define Pine_IgnoreArg_beef()" +
71
+ " Pine_CMockIgnoreArg_beef(__LINE__)\n" +
72
+ "void Pine_CMockIgnoreArg_beef(UNITY_LINE_TYPE cmock_line);\n" +
73
+
74
+ "#define Pine_IgnoreArg_tofu()" +
75
+ " Pine_CMockIgnoreArg_tofu(__LINE__)\n" +
76
+ "void Pine_CMockIgnoreArg_tofu(UNITY_LINE_TYPE cmock_line);\n"
77
+
78
+ returned = @cmock_generator_plugin_ignore_arg.mock_function_declarations(@complex_func)
79
+ assert_equal(expected, returned)
80
+ end
81
+
82
+ should "add mock interfaces for all arguments" do
83
+ expected =
84
+ "void Pine_CMockIgnoreArg_chicken(UNITY_LINE_TYPE cmock_line)\n" +
85
+ "{\n" +
86
+ " CMOCK_Pine_CALL_INSTANCE* cmock_call_instance = " +
87
+ "cmock_call_instance = (CMOCK_Pine_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.Pine_CallInstance));\n" +
88
+ " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, \"chicken IgnoreArg called before Expect on 'Pine'.\");\n" +
89
+ " cmock_call_instance->IgnoreArg_chicken = 1;\n" +
90
+ "}\n\n" +
91
+
92
+ "void Pine_CMockIgnoreArg_beef(UNITY_LINE_TYPE cmock_line)\n" +
93
+ "{\n" +
94
+ " CMOCK_Pine_CALL_INSTANCE* cmock_call_instance = " +
95
+ "cmock_call_instance = (CMOCK_Pine_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.Pine_CallInstance));\n" +
96
+ " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, \"beef IgnoreArg called before Expect on 'Pine'.\");\n" +
97
+ " cmock_call_instance->IgnoreArg_beef = 1;\n" +
98
+ "}\n\n" +
99
+
100
+ "void Pine_CMockIgnoreArg_tofu(UNITY_LINE_TYPE cmock_line)\n" +
101
+ "{\n" +
102
+ " CMOCK_Pine_CALL_INSTANCE* cmock_call_instance = " +
103
+ "cmock_call_instance = (CMOCK_Pine_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.Pine_CallInstance));\n" +
104
+ " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, \"tofu IgnoreArg called before Expect on 'Pine'.\");\n" +
105
+ " cmock_call_instance->IgnoreArg_tofu = 1;\n" +
106
+ "}\n\n"
107
+
108
+ returned = @cmock_generator_plugin_ignore_arg.mock_interfaces(@complex_func).join("")
109
+ assert_equal(expected, returned)
110
+ end
111
+
112
+ should "not add a mock implementation" do
113
+ assert(!@cmock_generator_plugin_ignore_arg.respond_to?(:mock_implementation))
114
+ end
115
+
116
+ end
@@ -0,0 +1,134 @@
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
+ require File.expand_path(File.dirname(__FILE__)) + "/../test_helper"
8
+ require 'cmock_generator_plugin_return_thru_ptr'
9
+
10
+ class CMockGeneratorPluginReturnThruPtrTest < Test::Unit::TestCase
11
+ def setup
12
+ create_mocks :config, :utils
13
+
14
+ # int *Oak(void)"
15
+ @void_func = {:name => "Oak", :args => [], :return => test_return[:int_ptr]}
16
+
17
+ # char *Maple(int blah)
18
+ @simple_func = {:name => "Maple",
19
+ :args => [{:name => "blah", :type => "int", :ptr? => false}],
20
+ :return => test_return[:string],
21
+ :contains_ptr? => false}
22
+
23
+ # void Pine(int chicken, const int beef, int *tofu)
24
+ @complex_func = {:name => "Pine",
25
+ :args => [{ :type => "int",
26
+ :name => "chicken",
27
+ :ptr? => false,
28
+ },
29
+ { :type => "int*",
30
+ :name => "beef",
31
+ :ptr? => true,
32
+ :const? => true,
33
+ },
34
+ { :type => "int*",
35
+ :name => "tofu",
36
+ :ptr? => true,
37
+ }],
38
+ :return => test_return[:void],
39
+ :contains_ptr? => true }
40
+
41
+ #no strict ordering
42
+ @cmock_generator_plugin_return_thru_ptr = CMockGeneratorPluginReturnThruPtr.new(@config, @utils)
43
+ end
44
+
45
+ def teardown
46
+ end
47
+
48
+ def simple_func_expect
49
+ @utils.expect.ptr_or_str?('int').returns(false)
50
+ end
51
+
52
+ def complex_func_expect
53
+ @utils.expect.ptr_or_str?('int').returns(false)
54
+ @utils.expect.ptr_or_str?('int*').returns(true)
55
+ @utils.expect.ptr_or_str?('int*').returns(true)
56
+ end
57
+
58
+ should "have set up internal accessors correctly on init" do
59
+ assert_equal(@utils, @cmock_generator_plugin_return_thru_ptr.utils)
60
+ assert_equal(9, @cmock_generator_plugin_return_thru_ptr.priority)
61
+ end
62
+
63
+ should "not include any additional include files" do
64
+ assert(!@cmock_generator_plugin_return_thru_ptr.respond_to?(:include_files))
65
+ end
66
+
67
+ should "not add to typedef structure for functions of style 'int* func(void)'" do
68
+ returned = @cmock_generator_plugin_return_thru_ptr.instance_typedefs(@void_func)
69
+ assert_equal("", returned)
70
+ end
71
+
72
+ should "add to tyepdef structure mock needs of functions of style 'void func(int chicken, int* pork)'" do
73
+ complex_func_expect()
74
+ expected = " int ReturnThruPtr_tofu_Used;\n" +
75
+ " int* ReturnThruPtr_tofu_Val;\n" +
76
+ " int ReturnThruPtr_tofu_Size;\n"
77
+ returned = @cmock_generator_plugin_return_thru_ptr.instance_typedefs(@complex_func)
78
+ assert_equal(expected, returned)
79
+ end
80
+
81
+ should "not add an additional mock interface for functions not containing pointers" do
82
+ simple_func_expect()
83
+ returned = @cmock_generator_plugin_return_thru_ptr.mock_function_declarations(@simple_func)
84
+ assert_equal("", returned)
85
+ end
86
+
87
+ should "add a mock function declaration only for non-const pointer arguments" do
88
+ complex_func_expect();
89
+
90
+ expected =
91
+ "#define Pine_ReturnThruPtr_tofu(tofu)" +
92
+ " Pine_CMockReturnMemThruPtr_tofu(__LINE__, tofu, sizeof(*tofu))\n" +
93
+ "#define Pine_ReturnArrayThruPtr_tofu(tofu, cmock_len)" +
94
+ " Pine_CMockReturnMemThruPtr_tofu(__LINE__, tofu, cmock_len * sizeof(*tofu))\n" +
95
+ "#define Pine_ReturnMemThruPtr_tofu(tofu, cmock_size)" +
96
+ " Pine_CMockReturnMemThruPtr_tofu(__LINE__, tofu, cmock_size)\n" +
97
+ "void Pine_CMockReturnMemThruPtr_tofu(UNITY_LINE_TYPE cmock_line, int* tofu, int cmock_size);\n"
98
+
99
+ returned = @cmock_generator_plugin_return_thru_ptr.mock_function_declarations(@complex_func)
100
+ assert_equal(expected, returned)
101
+ end
102
+
103
+ should "add mock interfaces only for non-const pointer arguments" do
104
+ complex_func_expect();
105
+
106
+ expected =
107
+ "void Pine_CMockReturnMemThruPtr_tofu(UNITY_LINE_TYPE cmock_line, int* tofu, int cmock_size)\n" +
108
+ "{\n" +
109
+ " CMOCK_Pine_CALL_INSTANCE* cmock_call_instance = " +
110
+ "cmock_call_instance = (CMOCK_Pine_CALL_INSTANCE*)CMock_Guts_GetAddressFor(CMock_Guts_MemEndOfChain(Mock.Pine_CallInstance));\n" +
111
+ " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, \"tofu ReturnThruPtr called before Expect on 'Pine'.\");\n" +
112
+ " cmock_call_instance->ReturnThruPtr_tofu_Used = 1;\n" +
113
+ " cmock_call_instance->ReturnThruPtr_tofu_Val = tofu;\n" +
114
+ " cmock_call_instance->ReturnThruPtr_tofu_Size = cmock_size;\n" +
115
+ "}\n\n"
116
+
117
+ returned = @cmock_generator_plugin_return_thru_ptr.mock_interfaces(@complex_func).join("")
118
+ assert_equal(expected, returned)
119
+ end
120
+
121
+ should "add mock implementations only for non-const pointer arguments" do
122
+ complex_func_expect()
123
+
124
+ expected =
125
+ " if (cmock_call_instance->ReturnThruPtr_tofu_Used)\n" +
126
+ " {\n" +
127
+ " memcpy(tofu, cmock_call_instance->ReturnThruPtr_tofu_Val,\n" +
128
+ " cmock_call_instance->ReturnThruPtr_tofu_Size);\n" +
129
+ " }\n" +
130
+
131
+ returned = @cmock_generator_plugin_return_thru_ptr.mock_implementation(@complex_func).join("")
132
+ end
133
+
134
+ end
@@ -15,14 +15,18 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
15
15
  @config.expect.enforce_strict_ordering.returns(false)
16
16
  @config.expect.plugins.returns([])
17
17
  @config.expect.plugins.returns([])
18
- @config.expect.treat_as.returns(['int','short','long','char','char*'])
18
+ @config.expect.plugins.returns([])
19
+ @config.expect.plugins.returns([])
20
+ @config.expect.treat_as.returns({'int' => 'INT','short' => 'INT16','long' => 'INT','char' => 'INT8','char*' => 'STRING'})
19
21
  @cmock_generator_utils_simple = CMockGeneratorUtils.new(@config, {:unity_helper => @unity_helper})
20
22
 
21
23
  @config.expect.when_ptr.returns(:smart)
22
24
  @config.expect.enforce_strict_ordering.returns(true)
23
- @config.expect.plugins.returns([:array, :cexception])
24
- @config.expect.plugins.returns([:array, :cexception])
25
- @config.expect.treat_as.returns(['int','short','long','char','uint32_t','char*'])
25
+ @config.expect.plugins.returns([:array, :cexception, :return_thru_ptr, :ignore_arg])
26
+ @config.expect.plugins.returns([:array, :cexception, :return_thru_ptr, :ignore_arg])
27
+ @config.expect.plugins.returns([:array, :cexception, :return_thru_ptr, :ignore_arg])
28
+ @config.expect.plugins.returns([:array, :cexception, :return_thru_ptr, :ignore_arg])
29
+ @config.expect.treat_as.returns({'int' => 'INT','short' => 'INT16','long' => 'INT','char' => 'INT8','uint32_t' => 'HEX32','char*' => 'STRING'})
26
30
  @cmock_generator_utils_complex = CMockGeneratorUtils.new(@config, {:unity_helper => @unity_helper, :A=>1, :B=>2})
27
31
  end
28
32
 
@@ -42,9 +46,15 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
42
46
  assert_equal(true, @cmock_generator_utils_complex.arrays)
43
47
  assert_equal(true, @cmock_generator_utils_complex.cexception)
44
48
  end
49
+
50
+ should "detect pointers and strings" do
51
+ assert_equal(false, @cmock_generator_utils_simple.ptr_or_str?('int'))
52
+ assert_equal(true, @cmock_generator_utils_simple.ptr_or_str?('int*'))
53
+ assert_equal(true, @cmock_generator_utils_simple.ptr_or_str?('char*'))
54
+ end
45
55
 
46
56
  should "add code for a base expectation with no plugins" do
47
- expected =
57
+ expected =
48
58
  " CMOCK_MEM_INDEX_TYPE cmock_guts_index = CMock_Guts_MemNew(sizeof(CMOCK_Apple_CALL_INSTANCE));\n" +
49
59
  " CMOCK_Apple_CALL_INSTANCE* cmock_call_instance = (CMOCK_Apple_CALL_INSTANCE*)CMock_Guts_GetAddressFor(cmock_guts_index);\n" +
50
60
  " UNITY_TEST_ASSERT_NOT_NULL(cmock_call_instance, cmock_line, \"CMock has run out of memory. Please allocate more.\");\n" +
@@ -90,7 +100,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
90
100
  expected3 = " cmock_call_instance->Expected_Kiwi = Kiwi;\n"
91
101
 
92
102
  arg4 = { :name => "Lime", :const? => false, :type => 'LIME_T', :ptr? => false }
93
- expected4 = " memcpy(&cmock_call_instance->Expected_Lime, &Lime, sizeof(LIME_T));\n"
103
+ expected4 = " memcpy(&cmock_call_instance->Expected_Lime, &Lime, sizeof(LIME_T));\n"
94
104
 
95
105
  assert_equal(expected1, @cmock_generator_utils_simple.code_add_an_arg_expectation(arg1))
96
106
  assert_equal(expected2, @cmock_generator_utils_simple.code_add_an_arg_expectation(arg2))
@@ -100,18 +110,23 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
100
110
 
101
111
  should "add argument expectations for values when array plugin enabled" do
102
112
  arg1 = { :name => "Orange", :const? => false, :type => 'int', :ptr? => false }
103
- expected1 = " cmock_call_instance->Expected_Orange = Orange;\n"
113
+ expected1 = " cmock_call_instance->Expected_Orange = Orange;\n" +
114
+ " cmock_call_instance->IgnoreArg_Orange = 0;\n"
104
115
 
105
116
  arg2 = { :name => "Lemon", :const? => true, :type => 'const char*', :ptr? => true }
106
117
  expected2 = " cmock_call_instance->Expected_Lemon = (const char*)Lemon;\n" +
107
- " cmock_call_instance->Expected_Lemon_Depth = Lemon_Depth;\n"
118
+ " cmock_call_instance->Expected_Lemon_Depth = Lemon_Depth;\n" +
119
+ " cmock_call_instance->IgnoreArg_Lemon = 0;\n"
108
120
 
109
121
  arg3 = { :name => "Kiwi", :const? => false, :type => 'KIWI_T*', :ptr? => true }
110
122
  expected3 = " cmock_call_instance->Expected_Kiwi = Kiwi;\n" +
111
- " cmock_call_instance->Expected_Kiwi_Depth = Kiwi_Depth;\n"
123
+ " cmock_call_instance->Expected_Kiwi_Depth = Kiwi_Depth;\n" +
124
+ " cmock_call_instance->IgnoreArg_Kiwi = 0;\n" +
125
+ " cmock_call_instance->ReturnThruPtr_Kiwi_Used = 0;\n"
112
126
 
113
127
  arg4 = { :name => "Lime", :const? => false, :type => 'LIME_T', :ptr? => false }
114
- expected4 = " memcpy(&cmock_call_instance->Expected_Lime, &Lime, sizeof(LIME_T));\n"
128
+ expected4 = " memcpy(&cmock_call_instance->Expected_Lime, &Lime, sizeof(LIME_T));\n" +
129
+ " cmock_call_instance->IgnoreArg_Lime = 0;\n"
115
130
 
116
131
  assert_equal(expected1, @cmock_generator_utils_complex.code_add_an_arg_expectation(arg1))
117
132
  assert_equal(expected2, @cmock_generator_utils_complex.code_add_an_arg_expectation(arg2, 'Lemon_Depth'))
@@ -146,8 +161,12 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
146
161
  expected = "void CMockExpectParameters_Melon(CMOCK_Melon_CALL_INSTANCE* cmock_call_instance, int* MyIntPtr, int MyIntPtr_Depth, const MY_TYPE MyMyType, const char* MyStr)\n{\n" +
147
162
  " cmock_call_instance->Expected_MyIntPtr = MyIntPtr;\n" +
148
163
  " cmock_call_instance->Expected_MyIntPtr_Depth = MyIntPtr_Depth;\n" +
164
+ " cmock_call_instance->IgnoreArg_MyIntPtr = 0;\n" +
165
+ " cmock_call_instance->ReturnThruPtr_MyIntPtr_Used = 0;\n" +
149
166
  " memcpy(&cmock_call_instance->Expected_MyMyType, &MyMyType, sizeof(MY_TYPE));\n" +
167
+ " cmock_call_instance->IgnoreArg_MyMyType = 0;\n" +
150
168
  " cmock_call_instance->Expected_MyStr = (char*)MyStr;\n" +
169
+ " cmock_call_instance->IgnoreArg_MyStr = 0;\n" +
151
170
  "}\n\n"
152
171
  assert_equal(expected, @cmock_generator_utils_complex.code_add_argument_loader(function))
153
172
  end
@@ -179,7 +198,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
179
198
  should 'handle a simple assert when requested' do
180
199
  function = { :name => 'Pear' }
181
200
  arg = test_arg[:int]
182
- expected = " UNITY_TEST_ASSERT_EQUAL_INT(cmock_call_instance->Expected_MyInt, MyInt, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyInt'.\");\n"
201
+ expected = " {\n UNITY_TEST_ASSERT_EQUAL_INT(cmock_call_instance->Expected_MyInt, MyInt, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyInt'.\");\n }\n"
183
202
  @unity_helper.expect.get_helper('int').returns(['UNITY_TEST_ASSERT_EQUAL_INT',''])
184
203
  assert_equal(expected, @cmock_generator_utils_simple.code_verify_an_arg_expectation(function, arg))
185
204
  end
@@ -187,14 +206,14 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
187
206
  should 'handle a pointer comparison when configured to do so' do
188
207
  function = { :name => 'Pear' }
189
208
  arg = test_arg[:int_ptr]
190
- expected = " UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_MyIntPtr, MyIntPtr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\");\n"
209
+ expected = " {\n UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_MyIntPtr, MyIntPtr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\");\n }\n"
191
210
  assert_equal(expected, @cmock_generator_utils_simple.code_verify_an_arg_expectation(function, arg))
192
211
  end
193
212
 
194
213
  should 'handle const char as string compares ' do
195
214
  function = { :name => 'Pear' }
196
215
  arg = test_arg[:string]
197
- expected = " UNITY_TEST_ASSERT_EQUAL_STRING(cmock_call_instance->Expected_MyStr, MyStr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyStr'.\");\n"
216
+ expected = " {\n UNITY_TEST_ASSERT_EQUAL_STRING(cmock_call_instance->Expected_MyStr, MyStr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyStr'.\");\n }\n"
198
217
  @unity_helper.expect.get_helper('char*').returns(['UNITY_TEST_ASSERT_EQUAL_STRING',''])
199
218
  assert_equal(expected, @cmock_generator_utils_simple.code_verify_an_arg_expectation(function, arg))
200
219
  end
@@ -202,7 +221,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
202
221
  should 'handle custom types as memory compares when we have no better way to do it' do
203
222
  function = { :name => 'Pear' }
204
223
  arg = test_arg[:mytype]
205
- expected = " UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_MyMyType), (void*)(&MyMyType), sizeof(MY_TYPE), cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n"
224
+ expected = " {\n UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_MyMyType), (void*)(&MyMyType), sizeof(MY_TYPE), cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n }\n"
206
225
  @unity_helper.expect.get_helper('MY_TYPE').returns(['UNITY_TEST_ASSERT_EQUAL_MEMORY','&'])
207
226
  assert_equal(expected, @cmock_generator_utils_simple.code_verify_an_arg_expectation(function, arg))
208
227
  end
@@ -210,7 +229,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
210
229
  should 'handle custom types with custom handlers when available, even if they do not support the extra message' do
211
230
  function = { :name => 'Pear' }
212
231
  arg = test_arg[:mytype]
213
- expected = " UNITY_TEST_ASSERT_EQUAL_MY_TYPE(cmock_call_instance->Expected_MyMyType, MyMyType, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n"
232
+ expected = " {\n UNITY_TEST_ASSERT_EQUAL_MY_TYPE(cmock_call_instance->Expected_MyMyType, MyMyType, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n }\n"
214
233
  @unity_helper.expect.get_helper('MY_TYPE').returns(['UNITY_TEST_ASSERT_EQUAL_MY_TYPE',''])
215
234
  assert_equal(expected, @cmock_generator_utils_simple.code_verify_an_arg_expectation(function, arg))
216
235
  end
@@ -218,7 +237,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
218
237
  should 'handle pointers to custom types with array handlers, even if the array extension is turned off' do
219
238
  function = { :name => 'Pear' }
220
239
  arg = test_arg[:mytype]
221
- expected = " UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY(&cmock_call_instance->Expected_MyMyType, &MyMyType, 1, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n"
240
+ expected = " {\n UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY(&cmock_call_instance->Expected_MyMyType, &MyMyType, 1, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n }\n"
222
241
  @unity_helper.expect.get_helper('MY_TYPE').returns(['UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY','&'])
223
242
  assert_equal(expected, @cmock_generator_utils_simple.code_verify_an_arg_expectation(function, arg))
224
243
  end
@@ -226,7 +245,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
226
245
  should 'handle a simple assert when requested with array plugin enabled' do
227
246
  function = { :name => 'Pear' }
228
247
  arg = test_arg[:int]
229
- expected = " UNITY_TEST_ASSERT_EQUAL_INT(cmock_call_instance->Expected_MyInt, MyInt, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyInt'.\");\n"
248
+ expected = " if (!cmock_call_instance->IgnoreArg_MyInt)\n {\n UNITY_TEST_ASSERT_EQUAL_INT(cmock_call_instance->Expected_MyInt, MyInt, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyInt'.\");\n }\n"
230
249
  @unity_helper.expect.get_helper('int').returns(['UNITY_TEST_ASSERT_EQUAL_INT',''])
231
250
  assert_equal(expected, @cmock_generator_utils_complex.code_verify_an_arg_expectation(function, arg))
232
251
  end
@@ -234,12 +253,15 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
234
253
  should 'handle an array comparison with array plugin enabled' do
235
254
  function = { :name => 'Pear' }
236
255
  arg = test_arg[:int_ptr]
237
- expected = " if (cmock_call_instance->Expected_MyIntPtr == NULL)\n" +
238
- " { UNITY_TEST_ASSERT_NULL(MyIntPtr, cmock_line, \"Expected NULL. Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\"); }\n" +
239
- " else if (cmock_call_instance->Expected_MyIntPtr_Depth == 0)\n" +
240
- " { UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_MyIntPtr, MyIntPtr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\"); }\n" +
241
- " else\n" +
242
- " { UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(cmock_call_instance->Expected_MyIntPtr, MyIntPtr, cmock_call_instance->Expected_MyIntPtr_Depth, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\"); }\n"
256
+ expected = " if (!cmock_call_instance->IgnoreArg_MyIntPtr)\n" +
257
+ " {\n" +
258
+ " if (cmock_call_instance->Expected_MyIntPtr == NULL)\n" +
259
+ " { UNITY_TEST_ASSERT_NULL(MyIntPtr, cmock_line, \"Expected NULL. Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\"); }\n" +
260
+ " else if (cmock_call_instance->Expected_MyIntPtr_Depth == 0)\n" +
261
+ " { UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_MyIntPtr, MyIntPtr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\"); }\n" +
262
+ " else\n" +
263
+ " { UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(cmock_call_instance->Expected_MyIntPtr, MyIntPtr, cmock_call_instance->Expected_MyIntPtr_Depth, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyIntPtr'.\"); }\n" +
264
+ " }\n"
243
265
  @unity_helper.expect.get_helper('int*').returns(['UNITY_TEST_ASSERT_EQUAL_INT_ARRAY',''])
244
266
  assert_equal(expected, @cmock_generator_utils_complex.code_verify_an_arg_expectation(function, arg))
245
267
  end
@@ -247,7 +269,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
247
269
  should 'handle const char as string compares with array plugin enabled' do
248
270
  function = { :name => 'Pear' }
249
271
  arg = test_arg[:string]
250
- expected = " UNITY_TEST_ASSERT_EQUAL_STRING(cmock_call_instance->Expected_MyStr, MyStr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyStr'.\");\n"
272
+ expected = " if (!cmock_call_instance->IgnoreArg_MyStr)\n {\n UNITY_TEST_ASSERT_EQUAL_STRING(cmock_call_instance->Expected_MyStr, MyStr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyStr'.\");\n }\n"
251
273
  @unity_helper.expect.get_helper('char*').returns(['UNITY_TEST_ASSERT_EQUAL_STRING',''])
252
274
  assert_equal(expected, @cmock_generator_utils_complex.code_verify_an_arg_expectation(function, arg))
253
275
  end
@@ -255,7 +277,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
255
277
  should 'handle custom types as memory compares when we have no better way to do it with array plugin enabled' do
256
278
  function = { :name => 'Pear' }
257
279
  arg = test_arg[:mytype]
258
- expected = " UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_MyMyType), (void*)(&MyMyType), sizeof(MY_TYPE), cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n"
280
+ expected = " if (!cmock_call_instance->IgnoreArg_MyMyType)\n {\n UNITY_TEST_ASSERT_EQUAL_MEMORY((void*)(&cmock_call_instance->Expected_MyMyType), (void*)(&MyMyType), sizeof(MY_TYPE), cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n }\n"
259
281
  @unity_helper.expect.get_helper('MY_TYPE').returns(['UNITY_TEST_ASSERT_EQUAL_MEMORY','&'])
260
282
  assert_equal(expected, @cmock_generator_utils_complex.code_verify_an_arg_expectation(function, arg))
261
283
  end
@@ -263,7 +285,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
263
285
  should 'handle custom types with custom handlers when available, even if they do not support the extra message with array plugin enabled' do
264
286
  function = { :name => 'Pear' }
265
287
  arg = test_arg[:mytype]
266
- expected = " UNITY_TEST_ASSERT_EQUAL_MY_TYPE(cmock_call_instance->Expected_MyMyType, MyMyType, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n"
288
+ expected = " if (!cmock_call_instance->IgnoreArg_MyMyType)\n {\n UNITY_TEST_ASSERT_EQUAL_MY_TYPE(cmock_call_instance->Expected_MyMyType, MyMyType, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n }\n"
267
289
  @unity_helper.expect.get_helper('MY_TYPE').returns(['UNITY_TEST_ASSERT_EQUAL_MY_TYPE',''])
268
290
  assert_equal(expected, @cmock_generator_utils_complex.code_verify_an_arg_expectation(function, arg))
269
291
  end
@@ -271,12 +293,15 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
271
293
  should 'handle custom types with array handlers when array plugin is enabled' do
272
294
  function = { :name => 'Pear' }
273
295
  arg = test_arg[:mytype_ptr]
274
- expected = " if (cmock_call_instance->Expected_MyMyTypePtr == NULL)\n" +
275
- " { UNITY_TEST_ASSERT_NULL(MyMyTypePtr, cmock_line, \"Expected NULL. Function 'Pear' called with unexpected value for argument 'MyMyTypePtr'.\"); }\n" +
276
- " else if (cmock_call_instance->Expected_MyMyTypePtr_Depth == 0)\n" +
277
- " { UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_MyMyTypePtr, MyMyTypePtr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyTypePtr'.\"); }\n" +
278
- " else\n" +
279
- " { UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY(cmock_call_instance->Expected_MyMyTypePtr, MyMyTypePtr, cmock_call_instance->Expected_MyMyTypePtr_Depth, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyTypePtr'.\"); }\n"
296
+ expected = " if (!cmock_call_instance->IgnoreArg_MyMyTypePtr)\n" +
297
+ " {\n" +
298
+ " if (cmock_call_instance->Expected_MyMyTypePtr == NULL)\n" +
299
+ " { UNITY_TEST_ASSERT_NULL(MyMyTypePtr, cmock_line, \"Expected NULL. Function 'Pear' called with unexpected value for argument 'MyMyTypePtr'.\"); }\n" +
300
+ " else if (cmock_call_instance->Expected_MyMyTypePtr_Depth == 0)\n" +
301
+ " { UNITY_TEST_ASSERT_EQUAL_PTR(cmock_call_instance->Expected_MyMyTypePtr, MyMyTypePtr, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyTypePtr'.\"); }\n" +
302
+ " else\n" +
303
+ " { UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY(cmock_call_instance->Expected_MyMyTypePtr, MyMyTypePtr, cmock_call_instance->Expected_MyMyTypePtr_Depth, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyTypePtr'.\"); }\n" +
304
+ " }\n"
280
305
  @unity_helper.expect.get_helper('MY_TYPE*').returns(['UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY',''])
281
306
  assert_equal(expected, @cmock_generator_utils_complex.code_verify_an_arg_expectation(function, arg))
282
307
  end
@@ -284,7 +309,7 @@ class CMockGeneratorUtilsTest < Test::Unit::TestCase
284
309
  should 'handle custom types with array handlers when array plugin is enabled for non-array types' do
285
310
  function = { :name => 'Pear' }
286
311
  arg = test_arg[:mytype]
287
- expected = " UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY(&cmock_call_instance->Expected_MyMyType, &MyMyType, 1, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n"
312
+ expected = " if (!cmock_call_instance->IgnoreArg_MyMyType)\n {\n UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY(&cmock_call_instance->Expected_MyMyType, &MyMyType, 1, cmock_line, \"Function 'Pear' called with unexpected value for argument 'MyMyType'.\");\n }\n"
288
313
  @unity_helper.expect.get_helper('MY_TYPE').returns(['UNITY_TEST_ASSERT_EQUAL_MY_TYPE_ARRAY','&'])
289
314
  assert_equal(expected, @cmock_generator_utils_complex.code_verify_an_arg_expectation(function, arg))
290
315
  end