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
@@ -1,9 +0,0 @@
1
- require 'hardmock/expectation'
2
-
3
- module Hardmock
4
- class ExpectationBuilder #:nodoc:
5
- def build_expectation(options)
6
- Expectation.new(options)
7
- end
8
- end
9
- end
@@ -1,26 +0,0 @@
1
- require 'hardmock/method_cleanout'
2
- require 'hardmock/errors'
3
-
4
- module Hardmock
5
- class Expector #:nodoc:
6
- include MethodCleanout
7
-
8
- def initialize(mock,mock_control,expectation_builder)
9
- @mock = mock
10
- @mock_control = mock_control
11
- @expectation_builder = expectation_builder
12
- end
13
-
14
- def method_missing(mname, *args, &block)
15
- expectation = @expectation_builder.build_expectation(
16
- :mock => @mock,
17
- :method => mname,
18
- :arguments => args,
19
- :block => block)
20
-
21
- @mock_control.add_expectation expectation
22
- expectation
23
- end
24
- end
25
-
26
- end
@@ -1,33 +0,0 @@
1
-
2
- module Hardmock #:nodoc:
3
- module MethodCleanout #:nodoc:
4
- SACRED_METHODS = %w{
5
- __id__
6
- __send__
7
- equal?
8
- object_id
9
- send
10
- nil?
11
- class
12
- kind_of?
13
- respond_to?
14
- inspect
15
- method
16
- to_s
17
- instance_variables
18
- instance_eval
19
- ==
20
- hm_metaclass
21
- hm_meta_eval
22
- hm_meta_def
23
- }
24
-
25
- def self.included(base) #:nodoc:
26
- base.class_eval do
27
- instance_methods.each do |m|
28
- undef_method m unless SACRED_METHODS.include?(m.to_s)
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,180 +0,0 @@
1
-
2
- module Hardmock
3
- # Mock is used to set expectations in your test. Most of the time you'll use
4
- # <tt>#expects</tt> to create expectations.
5
- #
6
- # Aside from the scant few control methods (like +expects+, +trap+ and +_verify+)
7
- # all calls made on a Mock instance will be immediately applied to the internal
8
- # expectation mechanism.
9
- #
10
- # * If the method call was expected and all the parameters match properly, execution continues
11
- # * If the expectation was configured with an expectation block, the block is invoked
12
- # * If the expectation was set up to raise an error, the error is raised now
13
- # * If the expectation was set up to return a value, it is returned
14
- # * If the method call was _not_ expected, or the parameter values are wrong, an ExpectationError is raised.
15
- class Mock
16
- include Hardmock::MethodCleanout
17
-
18
- # Create a new Mock instance with a name and a MockControl to support it.
19
- # If not given, a MockControl is made implicitly for this Mock alone; this means
20
- # expectations for this mock are not tied to other expectations in your test.
21
- #
22
- # It's not recommended to use a Mock directly; see Hardmock and
23
- # Hardmock#create_mocks for the more wholistic approach.
24
- def initialize(name, mock_control=nil)
25
- @name = name
26
- @control = mock_control || MockControl.new
27
- @expectation_builder = ExpectationBuilder.new
28
- end
29
-
30
- def inspect
31
- "<Mock #{@name}>"
32
- end
33
-
34
- # Begin declaring an expectation for this Mock.
35
- #
36
- # == Simple Examples
37
- # Expect the +customer+ to be queried for +account+, and return <tt>"The
38
- # Account"</tt>:
39
- # @customer.expects.account.returns "The Account"
40
- #
41
- # Expect the +withdraw+ method to be called, and raise an exception when it
42
- # is (see Expectation#raises for more info):
43
- # @cash_machine.expects.withdraw(20,:dollars).raises("not enough money")
44
- #
45
- # Expect +customer+ to have its +user_name+ set
46
- # @customer.expects.user_name = 'Big Boss'
47
- #
48
- # Expect +customer+ to have its +user_name+ set, and raise a RuntimeException when
49
- # that happens:
50
- # @customer.expects('user_name=', "Big Boss").raises "lost connection"
51
- #
52
- # Expect +evaluate+ to be passed a block, and when that happens, pass a value
53
- # to the block (see Expectation#yields for more info):
54
- # @cruncher.expects.evaluate.yields("some data").returns("some results")
55
- #
56
- #
57
- # == Expectation Blocks
58
- # To do special handling of expected method calls when they occur, you
59
- # may pass a block to your expectation, like:
60
- # @page_scraper.expects.handle_content do |address,request,status|
61
- # assert_not_nil address, "Can't abide nil addresses"
62
- # assert_equal "http-get", request.method, "Can only handle GET"
63
- # assert status > 200 and status < 300, status, "Failed status"
64
- # "Simulated results #{request.content.downcase}"
65
- # end
66
- # In this example, when <tt>page_scraper.handle_content</tt> is called, its
67
- # three arguments are passed to the <i>expectation block</i> and evaluated
68
- # using the above assertions. The last value in the block will be used
69
- # as the return value for +handle_content+
70
- #
71
- # You may specify arguments to the expected method call, just like any normal
72
- # expectation, and those arguments will be pre-validated before being passed
73
- # to the expectation block. This is useful when you know all of the
74
- # expected values but still need to do something programmatic.
75
- #
76
- # If the method being invoked on the mock accepts a block, that block will be
77
- # passed to your expectation block as the last (or only) argument. Eg, the
78
- # convenience method +yields+ can be replaced with the more explicit:
79
- # @cruncher.expects.evaluate do |block|
80
- # block.call "some data"
81
- # "some results"
82
- # end
83
- #
84
- # The result value of the expectation block becomes the return value for the
85
- # expected method call. This can be overidden by using the +returns+ method:
86
- # @cruncher.expects.evaluate do |block|
87
- # block.call "some data"
88
- # "some results"
89
- # end.returns("the actual value")
90
- #
91
- # <b>Additionally</b>, the resulting value of the expectation block is stored
92
- # in the +block_value+ field on the expectation. If you've saved a reference
93
- # to your expectation, you may retrieve the block value once the expectation
94
- # has been met.
95
- #
96
- # evaluation_event = @cruncher.expects.evaluate do |block|
97
- # block.call "some data"
98
- # "some results"
99
- # end.returns("the actual value")
100
- #
101
- # result = @cruncher.evaluate do |input|
102
- # puts input # => 'some data'
103
- # end
104
- # # result is 'the actual value'
105
- #
106
- # evaluation_event.block_value # => 'some results'
107
- #
108
- def expects(*args, &block)
109
- expector = Expector.new(self,@control,@expectation_builder)
110
- # If there are no args, we return the Expector
111
- return expector if args.empty?
112
- # If there ARE args, we set up the expectation right here and return it
113
- expector.send(args.shift.to_sym, *args, &block)
114
- end
115
- alias_method :expect, :expects
116
- alias_method :should_receive, :expects
117
-
118
- # Special-case convenience: #trap sets up an expectation for a method
119
- # that will take a block. That block, when sent to the expected method, will
120
- # be trapped and stored in the expectation's +block_value+ field.
121
- # The Expectation#trigger method may then be used to invoke that block.
122
- #
123
- # Like +expects+, the +trap+ mechanism can be followed by +raises+ or +returns+.
124
- #
125
- # _Unlike_ +expects+, you may not use an expectation block with +trap+. If
126
- # the expected method takes arguments in addition to the block, they must
127
- # be specified in the arguments to the +trap+ call itself.
128
- #
129
- # == Example
130
- #
131
- # create_mocks :address_book, :editor_form
132
- #
133
- # # Expect a subscription on the :person_added event for @address_book:
134
- # person_event = @address_book.trap.subscribe(:person_added)
135
- #
136
- # # The runtime code would look like:
137
- # @address_book.subscribe :person_added do |person_name|
138
- # @editor_form.name = person_name
139
- # end
140
- #
141
- # # At this point, the expectation for 'subscribe' is met and the
142
- # # block has been captured. But we're not done:
143
- # @editor_form.expects.name = "David"
144
- #
145
- # # Now invoke the block we trapped earlier:
146
- # person_event.trigger "David"
147
- #
148
- # verify_mocks
149
- def trap(*args)
150
- Trapper.new(self,@control,ExpectationBuilder.new)
151
- end
152
-
153
- def method_missing(mname,*args) #:nodoc:
154
- block = nil
155
- block = Proc.new if block_given?
156
- @control.apply_method_call(self,mname,args,block)
157
- end
158
-
159
-
160
- def _control #:nodoc:
161
- @control
162
- end
163
-
164
- def _name #:nodoc:
165
- @name
166
- end
167
-
168
- # Verify that all expectations are fulfilled. NOTE: this method triggers
169
- # validation on the _control_ for this mock, so all Mocks that share the
170
- # MockControl with this instance will be included in the verification.
171
- #
172
- # <b>Only use this method if you are managing your own Mocks and their controls.</b>
173
- #
174
- # Normal usage of Hardmock doesn't require you to call this; let
175
- # Hardmock#verify_mocks do it for you.
176
- def _verify
177
- @control.verify
178
- end
179
- end
180
- end
@@ -1,53 +0,0 @@
1
- require 'hardmock/utils'
2
-
3
- module Hardmock
4
- class MockControl #:nodoc:
5
- include Utils
6
- attr_accessor :name
7
-
8
- def initialize
9
- clear_expectations
10
- end
11
-
12
- def happy?
13
- @expectations.empty?
14
- end
15
-
16
- def disappointed?
17
- @disappointed
18
- end
19
-
20
- def add_expectation(expectation)
21
- # puts "MockControl #{self.object_id.to_s(16)} adding expectation: #{expectation}"
22
- @expectations << expectation
23
- end
24
-
25
- def apply_method_call(mock,mname,args,block)
26
- # Are we even expecting any sort of call?
27
- if happy?
28
- @disappointed = true
29
- raise ExpectationError.new("Surprise call to #{format_method_call_string(mock,mname,args)}")
30
- end
31
-
32
- begin
33
- @expectations.shift.apply_method_call(mock,mname,args,block)
34
- rescue Exception => ouch
35
- @disappointed = true
36
- raise ouch
37
- end
38
- end
39
-
40
- def verify
41
- # puts "MockControl #{self.object_id.to_s(16)} verify: happy? #{happy?}"
42
- @disappointed = !happy?
43
- raise VerifyError.new("Unmet expectations", @expectations) unless happy?
44
- end
45
-
46
- def clear_expectations
47
- @expectations = []
48
- @disappointed = false
49
- end
50
-
51
- end
52
-
53
- end
@@ -1,210 +0,0 @@
1
-
2
-
3
- # Stubbing support
4
- #
5
- # Stubs methods on classes and instances
6
- #
7
-
8
- # Why's "metaid.rb" stuff crunched down:
9
- class Object #:nodoc:#
10
- def hm_metaclass #:nodoc:#
11
- class << self
12
- self
13
- end
14
- end
15
-
16
- def hm_meta_eval(&blk) #:nodoc:#
17
- hm_metaclass.instance_eval(&blk)
18
- end
19
-
20
- def hm_meta_def(name, &blk) #:nodoc:#
21
- hm_meta_eval { define_method name, &blk }
22
- end
23
- end
24
-
25
-
26
-
27
- module Hardmock
28
-
29
- # == Hardmock: Stubbing and Mocking Concrete Methods
30
- #
31
- # Hardmock lets you stub and/or mock methods on concrete classes or objects.
32
- #
33
- # * To "stub" a concrete method is to rig it to return the same thing always, disregarding any arguments.
34
- # * To "mock" a concrete method is to surplant its funcionality by delegating to a mock object who will cover this behavior.
35
- #
36
- # Mocked methods have their expectations considered along with all other mock object expectations.
37
- #
38
- # If you use stubbing or concrete mocking in the absence (or before creation) of other mocks, you need to invoke <tt>prepare_hardmock_control</tt>.
39
- # Once <tt>verify_mocks</tt> or <tt>clear_expectaions</tt> is called, the overriden behavior in the target objects is restored.
40
- #
41
- # == Examples
42
- #
43
- # River.stubs!(:sounds_like).returns("gurgle")
44
- #
45
- # River.expects!(:jump).returns("splash")
46
- #
47
- # rogue.stubs!(:sounds_like).returns("pshshsh")
48
- #
49
- # rogue.expects!(:rawhide_tanning_solvents).returns("giant snapping turtles")
50
- #
51
- module Stubbing
52
- # Exists only for documentation
53
- end
54
-
55
- class ReplacedMethod #:nodoc:#
56
- attr_reader :target, :method_name
57
-
58
- def initialize(target, method_name)
59
- @target = target
60
- @method_name = method_name
61
-
62
- Hardmock.track_replaced_method self
63
- end
64
- end
65
-
66
- class StubbedMethod < ReplacedMethod #:nodoc:#
67
- def invoke(args)
68
- raise @raises if @raises
69
- @return_value
70
- end
71
-
72
- def returns(stubbed_return)
73
- @return_value = stubbed_return
74
- end
75
-
76
- def raises(err)
77
- err = RuntimeError.new(err) unless err.kind_of?(Exception)
78
- @raises = err
79
- end
80
- end
81
-
82
- class ::Object
83
- def stubs!(method_name)
84
- method_name = method_name.to_s
85
- already_stubbed = Hardmock.has_replaced_method?(self, method_name)
86
-
87
- stubbed_method = Hardmock::StubbedMethod.new(self, method_name)
88
-
89
-
90
- unless _is_mock? or already_stubbed
91
- if methods.include?(method_name.to_s)
92
- hm_meta_eval do
93
- alias_method "_hardmock_original_#{method_name}".to_sym, method_name.to_sym
94
- end
95
- end
96
- end
97
-
98
- hm_meta_def method_name do |*args|
99
- stubbed_method.invoke(args)
100
- end
101
-
102
- stubbed_method
103
- end
104
-
105
- def expects!(method_name, *args, &block)
106
- if self._is_mock?
107
- raise Hardmock::StubbingError, "Cannot use 'expects!(:#{method_name})' on a Mock object; try 'expects' instead"
108
- end
109
-
110
- method_name = method_name.to_s
111
-
112
- @_my_mock = Mock.new(_my_name, $main_mock_control) if @_my_mock.nil?
113
-
114
- unless Hardmock.has_replaced_method?(self, method_name)
115
- # Track the method as replaced
116
- Hardmock::ReplacedMethod.new(self, method_name)
117
-
118
- # Preserver original implementation of the method by aliasing it away
119
- if methods.include?(method_name)
120
- hm_meta_eval do
121
- alias_method "_hardmock_original_#{method_name}".to_sym, method_name.to_sym
122
- end
123
- end
124
-
125
- # Re-define the method to utilize our patron mock instance.
126
- # (This global-temp-var thing is hokey but I was having difficulty generating
127
- # code for the meta class.)
128
- begin
129
- $method_text_temp = %{
130
- def #{method_name}(*args,&block)
131
- @_my_mock.__send__(:#{method_name}, *args, &block)
132
- end
133
- }
134
- class << self
135
- eval $method_text_temp
136
- end
137
- ensure
138
- $method_text_temp = nil
139
- end
140
- end
141
-
142
- return @_my_mock.expects(method_name, *args, &block)
143
- end
144
-
145
- def _is_mock?
146
- self.kind_of?(Mock)
147
- end
148
-
149
- def _my_name
150
- self.kind_of?(Class) ? self.name : self.class.name
151
- end
152
-
153
- def _clear_mock
154
- @_my_mock = nil
155
- end
156
-
157
- end
158
-
159
- class ::NilClass
160
- # Use this only if you really mean it
161
- alias_method :intentionally_stubs!, :stubs!
162
-
163
- # Use this only if you really mean it
164
- alias_method :intentionally_expects!, :expects!
165
-
166
- # Overridden to protect against accidental nil reference self delusion
167
- def stubs!(mname)
168
- raise StubbingError, "Cannot stub #{mname} method on nil. (If you really mean to, try 'intentionally_stubs!')"
169
- end
170
-
171
- # Overridden to protect against accidental nil reference self delusion
172
- def expects!(mname, *args)
173
- raise StubbingError, "Cannot mock #{mname} method on nil. (If you really mean to, try 'intentionally_expects!')"
174
- end
175
- end
176
-
177
- class << self
178
- def track_replaced_method(replaced_method)
179
- all_replaced_methods << replaced_method
180
- end
181
-
182
- def all_replaced_methods
183
- $all_replaced_methods ||= []
184
- end
185
-
186
- def has_replaced_method?(obj, method_name)
187
- hits = all_replaced_methods.select do |replaced|
188
- (replaced.target.object_id == obj.object_id) and (replaced.method_name.to_s == method_name.to_s)
189
- end
190
- return !hits.empty?
191
- end
192
-
193
- def restore_all_replaced_methods
194
- all_replaced_methods.each do |replaced|
195
- unless replaced.target._is_mock?
196
- backed_up = "_hardmock_original_#{replaced.method_name}"
197
- if replaced.target.methods.include?(backed_up)
198
- replaced.target.hm_meta_eval do
199
- alias_method replaced.method_name.to_sym, backed_up.to_sym
200
- end
201
- end
202
- replaced.target._clear_mock
203
- end
204
- end
205
- all_replaced_methods.clear
206
- end
207
- end
208
-
209
- end
210
-