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,69 +1,69 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'set'
4
- require 'fileutils'
5
- require 'file_path_utils.rb'
6
-
7
-
8
- class FileSystemUtils
9
-
10
- constructor :file_wrapper
11
-
12
- # build up path list from input of one or more strings or arrays of (+/-) paths & globs
13
- def collect_paths(*paths)
14
- raw = [] # all paths and globs
15
- plus = Set.new # all paths to expand and add
16
- minus = Set.new # all paths to remove from plus set
17
-
18
- # assemble all globs and simple paths, reforming our glob notation to ruby globs
19
- paths.each do |paths_container|
20
- case (paths_container)
21
- when String then raw << (FilePathUtils::reform_glob(paths_container))
22
- when Array then paths_container.each {|path| raw << (FilePathUtils::reform_glob(path))}
23
- else raise "Don't know how to handle #{paths_container.class}"
24
- end
25
- end
26
-
27
- # iterate through each path and glob
28
- raw.each do |path|
29
-
30
- dirs = [] # container for only (expanded) paths
31
-
32
- # if a glob, expand it and slurp up all non-file paths
33
- if path.include?('*')
34
- # grab base directory only if globs are snug up to final path separator
35
- if (path =~ /\/\*+$/)
36
- dirs << FilePathUtils.extract_path(path)
37
- end
38
-
39
- # grab expanded sub-directory globs
40
- expanded = @file_wrapper.directory_listing( FilePathUtils.extract_path_no_aggregation_operators(path) )
41
- expanded.each do |entry|
42
- dirs << entry if @file_wrapper.directory?(entry)
43
- end
44
-
45
- # else just grab simple path
46
- # note: we could just run this through glob expansion but such an
47
- # approach doesn't handle a path not yet on disk)
48
- else
49
- dirs << FilePathUtils.extract_path_no_aggregation_operators(path)
50
- end
51
-
52
- # add dirs to the appropriate set based on path aggregation modifier if present
53
- FilePathUtils.add_path?(path) ? plus.merge(dirs) : minus.merge(dirs)
54
- end
55
-
56
- return (plus - minus).to_a.uniq
57
- end
58
-
59
-
60
- # given a file list, add to it or remove from it
61
- def revise_file_list(list, revisions)
62
- revisions.each do |revision|
63
- # include or exclude file or glob to file list
64
- file = FilePathUtils.extract_path_no_aggregation_operators( revision )
65
- FilePathUtils.add_path?(revision) ? list.include(file) : list.exclude(file)
66
- end
67
- end
68
-
69
- end
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'set'
4
+ require 'fileutils'
5
+ require 'ceedling/file_path_utils'
6
+
7
+
8
+ class FileSystemUtils
9
+
10
+ constructor :file_wrapper
11
+
12
+ # build up path list from input of one or more strings or arrays of (+/-) paths & globs
13
+ def collect_paths(*paths)
14
+ raw = [] # all paths and globs
15
+ plus = Set.new # all paths to expand and add
16
+ minus = Set.new # all paths to remove from plus set
17
+
18
+ # assemble all globs and simple paths, reforming our glob notation to ruby globs
19
+ paths.each do |paths_container|
20
+ case (paths_container)
21
+ when String then raw << (FilePathUtils::reform_glob(paths_container))
22
+ when Array then paths_container.each {|path| raw << (FilePathUtils::reform_glob(path))}
23
+ else raise "Don't know how to handle #{paths_container.class}"
24
+ end
25
+ end
26
+
27
+ # iterate through each path and glob
28
+ raw.each do |path|
29
+
30
+ dirs = [] # container for only (expanded) paths
31
+
32
+ # if a glob, expand it and slurp up all non-file paths
33
+ if path.include?('*')
34
+ # grab base directory only if globs are snug up to final path separator
35
+ if (path =~ /\/\*+$/)
36
+ dirs << FilePathUtils.extract_path(path)
37
+ end
38
+
39
+ # grab expanded sub-directory globs
40
+ expanded = @file_wrapper.directory_listing( FilePathUtils.extract_path_no_aggregation_operators(path) )
41
+ expanded.each do |entry|
42
+ dirs << entry if @file_wrapper.directory?(entry)
43
+ end
44
+
45
+ # else just grab simple path
46
+ # note: we could just run this through glob expansion but such an
47
+ # approach doesn't handle a path not yet on disk)
48
+ else
49
+ dirs << FilePathUtils.extract_path_no_aggregation_operators(path)
50
+ end
51
+
52
+ # add dirs to the appropriate set based on path aggregation modifier if present
53
+ FilePathUtils.add_path?(path) ? plus.merge(dirs) : minus.merge(dirs)
54
+ end
55
+
56
+ return (plus - minus).to_a.uniq
57
+ end
58
+
59
+
60
+ # given a file list, add to it or remove from it
61
+ def revise_file_list(list, revisions)
62
+ revisions.each do |revision|
63
+ # include or exclude file or glob to file list
64
+ file = FilePathUtils.extract_path_no_aggregation_operators( revision )
65
+ FilePathUtils.add_path?(revision) ? list.include(file) : list.exclude(file)
66
+ end
67
+ end
68
+
69
+ end
@@ -1,10 +1,10 @@
1
-
2
- class FileSystemWrapper
3
-
4
- def cd(path)
5
- FileUtils.cd path do
6
- yield
7
- end
8
- end
9
-
1
+
2
+ class FileSystemWrapper
3
+
4
+ def cd(path)
5
+ FileUtils.cd path do
6
+ yield
7
+ end
8
+ end
9
+
10
10
  end
@@ -1,79 +1,79 @@
1
- require 'rubygems'
2
- require 'rake' # for FileList
3
- require 'constants'
4
- require 'fileutils'
5
-
6
-
7
- class FileWrapper
8
-
9
- def get_expanded_path(path)
10
- return File.expand_path(path)
11
- end
12
-
13
- def basename(path, extension=nil)
14
- return File.basename(path, extension) if extension
15
- return File.basename(path)
16
- end
17
-
18
- def exist?(filepath)
19
- return true if (filepath == NULL_FILE_PATH)
20
- return File.exist?(filepath)
21
- end
22
-
23
- def directory?(path)
24
- return File.directory?(path)
25
- end
26
-
27
- def dirname(path)
28
- return File.dirname(path)
29
- end
30
-
31
- def directory_listing(glob)
32
- return Dir.glob(glob)
33
- end
34
-
35
- def rm_f(filepath, options={})
36
- FileUtils.rm_f(filepath, options)
37
- end
38
-
39
- def rm_r(filepath, options={})
40
- FileUtils.rm_r(filepath, options={})
41
- end
42
-
43
- def cp(source, destination, options={})
44
- FileUtils.cp(source, destination, options)
45
- end
46
-
47
- def compare(from, to)
48
- return FileUtils.compare_file(from, to)
49
- end
50
-
51
- def open(filepath, flags)
52
- File.open(filepath, flags) do |file|
53
- yield(file)
54
- end
55
- end
56
-
57
- def read(filepath)
58
- return File.read(filepath)
59
- end
60
-
61
- def touch(filepath, options={})
62
- FileUtils.touch(filepath, options)
63
- end
64
-
65
- def write(filepath, contents, flags='w')
66
- File.open(filepath, flags) do |file|
67
- file.write(contents)
68
- end
69
- end
70
-
71
- def readlines(filepath)
72
- return File.readlines(filepath)
73
- end
74
-
75
- def instantiate_file_list(files=[])
76
- return FileList.new(files)
77
- end
78
-
79
- end
1
+ require 'rubygems'
2
+ require 'rake' # for FileList
3
+ require 'fileutils'
4
+ require 'ceedling/constants'
5
+
6
+
7
+ class FileWrapper
8
+
9
+ def get_expanded_path(path)
10
+ return File.expand_path(path)
11
+ end
12
+
13
+ def basename(path, extension=nil)
14
+ return File.basename(path, extension) if extension
15
+ return File.basename(path)
16
+ end
17
+
18
+ def exist?(filepath)
19
+ return true if (filepath == NULL_FILE_PATH)
20
+ return File.exist?(filepath)
21
+ end
22
+
23
+ def directory?(path)
24
+ return File.directory?(path)
25
+ end
26
+
27
+ def dirname(path)
28
+ return File.dirname(path)
29
+ end
30
+
31
+ def directory_listing(glob)
32
+ return Dir.glob(glob)
33
+ end
34
+
35
+ def rm_f(filepath, options={})
36
+ FileUtils.rm_f(filepath, options)
37
+ end
38
+
39
+ def rm_r(filepath, options={})
40
+ FileUtils.rm_r(filepath, options={})
41
+ end
42
+
43
+ def cp(source, destination, options={})
44
+ FileUtils.cp(source, destination, options)
45
+ end
46
+
47
+ def compare(from, to)
48
+ return FileUtils.compare_file(from, to)
49
+ end
50
+
51
+ def open(filepath, flags)
52
+ File.open(filepath, flags) do |file|
53
+ yield(file)
54
+ end
55
+ end
56
+
57
+ def read(filepath)
58
+ return File.read(filepath)
59
+ end
60
+
61
+ def touch(filepath, options={})
62
+ FileUtils.touch(filepath, options)
63
+ end
64
+
65
+ def write(filepath, contents, flags='w')
66
+ File.open(filepath, flags) do |file|
67
+ file.write(contents)
68
+ end
69
+ end
70
+
71
+ def readlines(filepath)
72
+ return File.readlines(filepath)
73
+ end
74
+
75
+ def instantiate_file_list(files=[])
76
+ return FileList.new(files)
77
+ end
78
+
79
+ end
@@ -1,54 +1,54 @@
1
- require 'rubygems'
2
- require 'rake' # for ext()
3
- require 'fileutils'
4
- require 'constants'
5
-
6
-
7
- # :flags:
8
- # :release:
9
- # :compile:
10
- # :*: # add '-foo' to compilation of all files not main.c
11
- # - -foo
12
- # :main: # add '-Wall' to compilation of main.c
13
- # - -Wall
14
- # :test:
15
- # :link:
16
- # :test_main: # add '--bar --baz' to linking of test_main.exe
17
- # - --bar
18
- # - --baz
19
-
20
-
21
- class Flaginator
22
-
23
- constructor :configurator
24
-
25
- def flag_down( operation, context, file )
26
- # create configurator accessor method
27
- accessor = ('flags_' + context.to_s).to_sym
28
-
29
- # create simple filename key from whatever filename provided
30
- file_key = File.basename( file ).ext('').to_sym
31
-
32
- # if no entry in configuration for flags for this context, bail out
33
- return [] if not @configurator.respond_to?( accessor )
34
-
35
- # get flags sub hash associated with this context
36
- flags = @configurator.send( accessor )
37
-
38
- # if operation not represented in flags hash, bail out
39
- return [] if not flags.include?( operation )
40
-
41
- # redefine flags to sub hash associated with the operation
42
- flags = flags[operation]
43
-
44
- # if our file is in the flags hash, extract the array of flags
45
- if (flags.include?( file_key )) then return flags[file_key]
46
- # if our file isn't in the flags hash, but there is default for all other files, extract array of flags
47
- elsif (flags.include?( :* )) then return flags[:*]
48
- end
49
-
50
- # fall through: flags were specified but none applying to present file
51
- return []
52
- end
53
-
54
- end
1
+ require 'rubygems'
2
+ require 'rake' # for ext()
3
+ require 'fileutils'
4
+ require 'ceedling/constants'
5
+
6
+
7
+ # :flags:
8
+ # :release:
9
+ # :compile:
10
+ # :*: # add '-foo' to compilation of all files not main.c
11
+ # - -foo
12
+ # :main: # add '-Wall' to compilation of main.c
13
+ # - -Wall
14
+ # :test:
15
+ # :link:
16
+ # :test_main: # add '--bar --baz' to linking of test_main.exe
17
+ # - --bar
18
+ # - --baz
19
+
20
+
21
+ class Flaginator
22
+
23
+ constructor :configurator
24
+
25
+ def flag_down( operation, context, file )
26
+ # create configurator accessor method
27
+ accessor = ('flags_' + context.to_s).to_sym
28
+
29
+ # create simple filename key from whatever filename provided
30
+ file_key = File.basename( file ).ext('').to_sym
31
+
32
+ # if no entry in configuration for flags for this context, bail out
33
+ return [] if not @configurator.respond_to?( accessor )
34
+
35
+ # get flags sub hash associated with this context
36
+ flags = @configurator.send( accessor )
37
+
38
+ # if operation not represented in flags hash, bail out
39
+ return [] if not flags.include?( operation )
40
+
41
+ # redefine flags to sub hash associated with the operation
42
+ flags = flags[operation]
43
+
44
+ # if our file is in the flags hash, extract the array of flags
45
+ if (flags.include?( file_key )) then return flags[file_key]
46
+ # if our file isn't in the flags hash, but there is default for all other files, extract array of flags
47
+ elsif (flags.include?( :* )) then return flags[:*]
48
+ end
49
+
50
+ # fall through: flags were specified but none applying to present file
51
+ return []
52
+ end
53
+
54
+ end
@@ -1,164 +1,164 @@
1
- require 'constants'
2
-
3
-
4
- class Generator
5
-
6
- constructor :configurator,
7
- :generator_helper,
8
- :preprocessinator,
9
- :cmock_builder,
10
- :generator_test_runner,
11
- :generator_test_results,
12
- :flaginator,
13
- :test_includes_extractor,
14
- :tool_executor,
15
- :file_finder,
16
- :file_path_utils,
17
- :streaminator,
18
- :plugin_manager,
19
- :file_wrapper
20
-
21
-
22
- def generate_shallow_includes_list(context, file)
23
- @preprocessinator.preprocess_shallow_includes(file)
24
- end
25
-
26
- def generate_preprocessed_file(context, file)
27
- @streaminator.stdout_puts("Preprocessing #{File.basename(file)}...", Verbosity::NORMAL)
28
- @preprocessinator.preprocess_file(file)
29
- end
30
-
31
- def generate_dependencies_file(tool, context, source, object, dependencies)
32
- @streaminator.stdout_puts("Generating dependencies for #{File.basename(source)}...", Verbosity::NORMAL)
33
-
34
- command =
35
- @tool_executor.build_command_line(
36
- tool,
37
- source,
38
- dependencies,
39
- object)
40
-
41
- @tool_executor.exec( command[:line], command[:options] )
42
- end
43
-
44
- def generate_mock(context, header_filepath)
45
- arg_hash = {:header_file => header_filepath, :context => context}
46
- @plugin_manager.pre_mock_generate( arg_hash )
47
-
48
- begin
49
- @cmock_builder.cmock.setup_mocks( arg_hash[:header_file] )
50
- rescue
51
- raise
52
- ensure
53
- @plugin_manager.post_mock_generate( arg_hash )
54
- end
55
- end
56
-
57
- # test_filepath may be either preprocessed test file or original test file
58
- def generate_test_runner(context, test_filepath, runner_filepath)
59
- arg_hash = {:context => context, :test_file => test_filepath, :runner_file => runner_filepath}
60
- @plugin_manager.pre_runner_generate(arg_hash)
61
-
62
- # collect info we need
63
- module_name = File.basename(arg_hash[:test_file])
64
- test_cases = @generator_test_runner.find_test_cases( @file_finder.find_test_from_runner_path(runner_filepath) )
65
- mock_list = @test_includes_extractor.lookup_raw_mock_list(arg_hash[:test_file])
66
-
67
- @streaminator.stdout_puts("Generating runner for #{module_name}...", Verbosity::NORMAL)
68
-
69
- # build runner file
70
- begin
71
- @generator_test_runner.generate(module_name, runner_filepath, test_cases, mock_list)
72
- rescue
73
- raise
74
- ensure
75
- @plugin_manager.post_runner_generate(arg_hash)
76
- end
77
- end
78
-
79
- def generate_object_file(tool, context, source, object, list='')
80
- shell_result = {}
81
- arg_hash = {:tool => tool, :context => context, :source => source, :object => object, :list => list}
82
- @plugin_manager.pre_compile_execute(arg_hash)
83
-
84
- @streaminator.stdout_puts("Compiling #{File.basename(arg_hash[:source])}...", Verbosity::NORMAL)
85
- command =
86
- @tool_executor.build_command_line( arg_hash[:tool],
87
- arg_hash[:source],
88
- arg_hash[:object],
89
- arg_hash[:list],
90
- @flaginator.flag_down( OPERATION_COMPILE_SYM, context, source ) )
91
-
92
- begin
93
- shell_result = @tool_executor.exec( command[:line], command[:options] )
94
- rescue ShellExecutionException => ex
95
- shell_result = ex.shell_result
96
- raise ''
97
- ensure
98
- arg_hash[:shell_result] = shell_result
99
- @plugin_manager.post_compile_execute(arg_hash)
100
- end
101
- end
102
-
103
- def generate_executable_file(tool, context, objects, executable, map='')
104
- shell_result = {}
105
- arg_hash = {:tool => tool, :context => context, :objects => objects, :executable => executable, :map => map}
106
- @plugin_manager.pre_link_execute(arg_hash)
107
-
108
- @streaminator.stdout_puts("Linking #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
109
- command =
110
- @tool_executor.build_command_line( arg_hash[:tool],
111
- arg_hash[:objects],
112
- arg_hash[:executable],
113
- arg_hash[:map],
114
- @flaginator.flag_down( OPERATION_LINK_SYM, context, executable ) )
115
-
116
- begin
117
- shell_result = @tool_executor.exec( command[:line], command[:options] )
118
- rescue ShellExecutionException => ex
119
- notice = "\n" +
120
- "NOTICE: If the linker reports missing symbols, the following may be to blame:\n" +
121
- " 1. Test lacks #include statements corresponding to needed source files.\n" +
122
- " 2. Project search paths do not contain source files corresponding to #include statements in the test.\n"
123
-
124
- if (@configurator.project_use_mocks)
125
- notice += " 3. Test does not #include needed mocks.\n\n"
126
- else
127
- notice += "\n"
128
- end
129
-
130
- @streaminator.stderr_puts(notice, Verbosity::COMPLAIN)
131
- shell_result = ex.shell_result
132
- raise ''
133
- ensure
134
- arg_hash[:shell_result] = shell_result
135
- @plugin_manager.post_link_execute(arg_hash)
136
- end
137
- end
138
-
139
- def generate_test_results(tool, context, executable, result)
140
- arg_hash = {:tool => tool, :context => context, :executable => executable, :result_file => result}
141
- @plugin_manager.pre_test_fixture_execute(arg_hash)
142
-
143
- @streaminator.stdout_puts("Running #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
144
-
145
- # Unity's exit code is equivalent to the number of failed tests, so we tell @tool_executor not to fail out if there are failures
146
- # so that we can run all tests and collect all results
147
- command = @tool_executor.build_command_line(arg_hash[:tool], arg_hash[:executable])
148
- command[:options][:boom] = false
149
- shell_result = @tool_executor.exec( command[:line], command[:options] )
150
-
151
- @generator_helper.test_results_error_handler(executable, shell_result)
152
-
153
- processed = @generator_test_results.process_and_write_results( shell_result,
154
- arg_hash[:result_file],
155
- @file_finder.find_test_from_file_path(arg_hash[:executable]) )
156
-
157
- arg_hash[:result_file] = processed[:result_file]
158
- arg_hash[:results] = processed[:results]
159
- arg_hash[:shell_result] = shell_result # for raw output display if no plugins for formatted display
160
-
161
- @plugin_manager.post_test_fixture_execute(arg_hash)
162
- end
163
-
164
- end
1
+ require 'ceedling/constants'
2
+
3
+
4
+ class Generator
5
+
6
+ constructor :configurator,
7
+ :generator_helper,
8
+ :preprocessinator,
9
+ :cmock_builder,
10
+ :generator_test_runner,
11
+ :generator_test_results,
12
+ :flaginator,
13
+ :test_includes_extractor,
14
+ :tool_executor,
15
+ :file_finder,
16
+ :file_path_utils,
17
+ :streaminator,
18
+ :plugin_manager,
19
+ :file_wrapper
20
+
21
+
22
+ def generate_shallow_includes_list(context, file)
23
+ @preprocessinator.preprocess_shallow_includes(file)
24
+ end
25
+
26
+ def generate_preprocessed_file(context, file)
27
+ @streaminator.stdout_puts("Preprocessing #{File.basename(file)}...", Verbosity::NORMAL)
28
+ @preprocessinator.preprocess_file(file)
29
+ end
30
+
31
+ def generate_dependencies_file(tool, context, source, object, dependencies)
32
+ @streaminator.stdout_puts("Generating dependencies for #{File.basename(source)}...", Verbosity::NORMAL)
33
+
34
+ command =
35
+ @tool_executor.build_command_line(
36
+ tool,
37
+ source,
38
+ dependencies,
39
+ object)
40
+
41
+ @tool_executor.exec( command[:line], command[:options] )
42
+ end
43
+
44
+ def generate_mock(context, header_filepath)
45
+ arg_hash = {:header_file => header_filepath, :context => context}
46
+ @plugin_manager.pre_mock_generate( arg_hash )
47
+
48
+ begin
49
+ @cmock_builder.cmock.setup_mocks( arg_hash[:header_file] )
50
+ rescue
51
+ raise
52
+ ensure
53
+ @plugin_manager.post_mock_generate( arg_hash )
54
+ end
55
+ end
56
+
57
+ # test_filepath may be either preprocessed test file or original test file
58
+ def generate_test_runner(context, test_filepath, runner_filepath)
59
+ arg_hash = {:context => context, :test_file => test_filepath, :runner_file => runner_filepath}
60
+ @plugin_manager.pre_runner_generate(arg_hash)
61
+
62
+ # collect info we need
63
+ module_name = File.basename(arg_hash[:test_file])
64
+ test_cases = @generator_test_runner.find_test_cases( @file_finder.find_test_from_runner_path(runner_filepath) )
65
+ mock_list = @test_includes_extractor.lookup_raw_mock_list(arg_hash[:test_file])
66
+
67
+ @streaminator.stdout_puts("Generating runner for #{module_name}...", Verbosity::NORMAL)
68
+
69
+ # build runner file
70
+ begin
71
+ @generator_test_runner.generate(module_name, runner_filepath, test_cases, mock_list)
72
+ rescue
73
+ raise
74
+ ensure
75
+ @plugin_manager.post_runner_generate(arg_hash)
76
+ end
77
+ end
78
+
79
+ def generate_object_file(tool, context, source, object, list='')
80
+ shell_result = {}
81
+ arg_hash = {:tool => tool, :context => context, :source => source, :object => object, :list => list}
82
+ @plugin_manager.pre_compile_execute(arg_hash)
83
+
84
+ @streaminator.stdout_puts("Compiling #{File.basename(arg_hash[:source])}...", Verbosity::NORMAL)
85
+ command =
86
+ @tool_executor.build_command_line( arg_hash[:tool],
87
+ arg_hash[:source],
88
+ arg_hash[:object],
89
+ arg_hash[:list],
90
+ @flaginator.flag_down( OPERATION_COMPILE_SYM, context, source ) )
91
+
92
+ begin
93
+ shell_result = @tool_executor.exec( command[:line], command[:options] )
94
+ rescue ShellExecutionException => ex
95
+ shell_result = ex.shell_result
96
+ raise ''
97
+ ensure
98
+ arg_hash[:shell_result] = shell_result
99
+ @plugin_manager.post_compile_execute(arg_hash)
100
+ end
101
+ end
102
+
103
+ def generate_executable_file(tool, context, objects, executable, map='')
104
+ shell_result = {}
105
+ arg_hash = {:tool => tool, :context => context, :objects => objects, :executable => executable, :map => map}
106
+ @plugin_manager.pre_link_execute(arg_hash)
107
+
108
+ @streaminator.stdout_puts("Linking #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
109
+ command =
110
+ @tool_executor.build_command_line( arg_hash[:tool],
111
+ arg_hash[:objects],
112
+ arg_hash[:executable],
113
+ arg_hash[:map],
114
+ @flaginator.flag_down( OPERATION_LINK_SYM, context, executable ) )
115
+
116
+ begin
117
+ shell_result = @tool_executor.exec( command[:line], command[:options] )
118
+ rescue ShellExecutionException => ex
119
+ notice = "\n" +
120
+ "NOTICE: If the linker reports missing symbols, the following may be to blame:\n" +
121
+ " 1. Test lacks #include statements corresponding to needed source files.\n" +
122
+ " 2. Project search paths do not contain source files corresponding to #include statements in the test.\n"
123
+
124
+ if (@configurator.project_use_mocks)
125
+ notice += " 3. Test does not #include needed mocks.\n\n"
126
+ else
127
+ notice += "\n"
128
+ end
129
+
130
+ @streaminator.stderr_puts(notice, Verbosity::COMPLAIN)
131
+ shell_result = ex.shell_result
132
+ raise ''
133
+ ensure
134
+ arg_hash[:shell_result] = shell_result
135
+ @plugin_manager.post_link_execute(arg_hash)
136
+ end
137
+ end
138
+
139
+ def generate_test_results(tool, context, executable, result)
140
+ arg_hash = {:tool => tool, :context => context, :executable => executable, :result_file => result}
141
+ @plugin_manager.pre_test_fixture_execute(arg_hash)
142
+
143
+ @streaminator.stdout_puts("Running #{File.basename(arg_hash[:executable])}...", Verbosity::NORMAL)
144
+
145
+ # Unity's exit code is equivalent to the number of failed tests, so we tell @tool_executor not to fail out if there are failures
146
+ # so that we can run all tests and collect all results
147
+ command = @tool_executor.build_command_line(arg_hash[:tool], arg_hash[:executable])
148
+ command[:options][:boom] = false
149
+ shell_result = @tool_executor.exec( command[:line], command[:options] )
150
+
151
+ @generator_helper.test_results_error_handler(executable, shell_result)
152
+
153
+ processed = @generator_test_results.process_and_write_results( shell_result,
154
+ arg_hash[:result_file],
155
+ @file_finder.find_test_from_file_path(arg_hash[:executable]) )
156
+
157
+ arg_hash[:result_file] = processed[:result_file]
158
+ arg_hash[:results] = processed[:results]
159
+ arg_hash[:shell_result] = shell_result # for raw output display if no plugins for formatted display
160
+
161
+ @plugin_manager.post_test_fixture_execute(arg_hash)
162
+ end
163
+
164
+ end