ceedling 0.29.0 → 0.30.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 (1268) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +15 -16
  3. data/Gemfile.lock +1 -1
  4. data/README.md +108 -107
  5. data/Rakefile +11 -11
  6. data/assets/ceedling +3 -3
  7. data/assets/ceedling.cmd +0 -0
  8. data/assets/default_gitignore +5 -5
  9. data/assets/example_file.c +5 -5
  10. data/assets/example_file.h +6 -6
  11. data/assets/project_as_gem.yml +101 -100
  12. data/assets/project_with_guts.yml +102 -101
  13. data/assets/project_with_guts_gcov.yml +102 -101
  14. data/assets/project_with_guts_gcov_abortonuncovered.yml +93 -0
  15. data/assets/test_example_file.c +13 -13
  16. data/assets/test_example_file_boom.c +13 -13
  17. data/assets/test_example_file_success.c +14 -14
  18. data/assets/test_example_file_verbose.c +12 -12
  19. data/assets/uncovered_example_file.c +5 -0
  20. data/bin/ceedling +351 -337
  21. data/ceedling.gemspec +52 -36
  22. data/config/test_environment.rb +11 -11
  23. data/docs/Ceedling Basic Porting.pdf +0 -0
  24. data/docs/Ceedling Managing Release Code.pdf +0 -0
  25. data/docs/Ceedling Powerful Plugins.pdf +0 -0
  26. data/docs/Ceedling Working with IDEs.pdf +0 -0
  27. data/docs/CeedlingPacket.md +2213 -2119
  28. data/docs/CeedlingUpgrade.md +83 -0
  29. data/docs/ThrowTheSwitchCodingStandard.md +207 -207
  30. data/examples/blinky/project.yml +99 -99
  31. data/examples/blinky/rakefile.rb +31 -31
  32. data/examples/blinky/src/BlinkTask.c +21 -21
  33. data/examples/blinky/src/BlinkTask.h +6 -6
  34. data/examples/blinky/src/Configure.c +36 -36
  35. data/examples/blinky/src/Configure.h +6 -6
  36. data/examples/blinky/src/main.c +51 -51
  37. data/examples/blinky/src/main.h +9 -9
  38. data/examples/blinky/test/support/stub_interrupt.h +347 -347
  39. data/examples/blinky/test/support/stub_io.h +421 -421
  40. data/examples/blinky/test/support/stub_iom328p.h +883 -883
  41. data/examples/blinky/test/support/stub_sfr_defs.h +269 -269
  42. data/examples/blinky/test/test_BlinkTask.c +42 -42
  43. data/examples/blinky/test/test_Configure.c +29 -29
  44. data/examples/blinky/test/test_main.c +60 -60
  45. data/examples/temp_sensor/project.yml +66 -76
  46. data/examples/temp_sensor/rakefile.rb +6 -6
  47. data/examples/temp_sensor/src/AdcConductor.c +42 -42
  48. data/examples/temp_sensor/src/AdcConductor.h +13 -13
  49. data/examples/temp_sensor/src/AdcHardware.c +27 -27
  50. data/examples/temp_sensor/src/AdcHardware.h +11 -11
  51. data/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -18
  52. data/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -10
  53. data/examples/temp_sensor/src/AdcModel.c +33 -33
  54. data/examples/temp_sensor/src/AdcModel.h +13 -13
  55. data/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -51
  56. data/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -10
  57. data/examples/temp_sensor/src/Executor.c +25 -25
  58. data/examples/temp_sensor/src/Executor.h +9 -9
  59. data/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -18
  60. data/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -7
  61. data/examples/temp_sensor/src/Main.c +46 -46
  62. data/examples/temp_sensor/src/Main.h +7 -7
  63. data/examples/temp_sensor/src/Model.c +10 -10
  64. data/examples/temp_sensor/src/Model.h +8 -8
  65. data/examples/temp_sensor/src/ModelConfig.h +7 -7
  66. data/examples/temp_sensor/src/TaskScheduler.c +72 -72
  67. data/examples/temp_sensor/src/TaskScheduler.h +11 -11
  68. data/examples/temp_sensor/src/TemperatureCalculator.c +27 -27
  69. data/examples/temp_sensor/src/TemperatureCalculator.h +8 -8
  70. data/examples/temp_sensor/src/TemperatureFilter.c +38 -38
  71. data/examples/temp_sensor/src/TemperatureFilter.h +10 -10
  72. data/examples/temp_sensor/src/TimerConductor.c +15 -15
  73. data/examples/temp_sensor/src/TimerConductor.h +9 -9
  74. data/examples/temp_sensor/src/TimerConfigurator.c +51 -51
  75. data/examples/temp_sensor/src/TimerConfigurator.h +15 -15
  76. data/examples/temp_sensor/src/TimerHardware.c +15 -15
  77. data/examples/temp_sensor/src/TimerHardware.h +8 -8
  78. data/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -55
  79. data/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -13
  80. data/examples/temp_sensor/src/TimerInterruptHandler.c +25 -25
  81. data/examples/temp_sensor/src/TimerInterruptHandler.h +10 -10
  82. data/examples/temp_sensor/src/TimerModel.c +9 -9
  83. data/examples/temp_sensor/src/TimerModel.h +8 -8
  84. data/examples/temp_sensor/src/Types.h +90 -90
  85. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -18
  86. data/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +8 -8
  87. data/examples/temp_sensor/src/UsartConductor.c +21 -21
  88. data/examples/temp_sensor/src/UsartConductor.h +7 -7
  89. data/examples/temp_sensor/src/UsartConfigurator.c +39 -39
  90. data/examples/temp_sensor/src/UsartConfigurator.h +13 -13
  91. data/examples/temp_sensor/src/UsartHardware.c +22 -22
  92. data/examples/temp_sensor/src/UsartHardware.h +9 -9
  93. data/examples/temp_sensor/src/UsartModel.c +34 -34
  94. data/examples/temp_sensor/src/UsartModel.h +10 -10
  95. data/examples/temp_sensor/src/UsartPutChar.c +16 -16
  96. data/examples/temp_sensor/src/UsartPutChar.h +8 -8
  97. data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -7
  98. data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -8
  99. data/examples/temp_sensor/test/TestAdcConductor.c +121 -121
  100. data/examples/temp_sensor/test/TestAdcHardware.c +44 -44
  101. data/examples/temp_sensor/test/TestAdcModel.c +33 -33
  102. data/examples/temp_sensor/test/TestExecutor.c +36 -36
  103. data/examples/temp_sensor/test/TestMain.c +24 -24
  104. data/examples/temp_sensor/test/TestModel.c +20 -20
  105. data/examples/temp_sensor/test/TestTaskScheduler.c +104 -104
  106. data/examples/temp_sensor/test/TestTemperatureCalculator.c +36 -36
  107. data/examples/temp_sensor/test/TestTemperatureFilter.c +79 -79
  108. data/examples/temp_sensor/test/TestTimerConductor.c +32 -32
  109. data/examples/temp_sensor/test/TestTimerHardware.c +26 -26
  110. data/examples/temp_sensor/test/TestTimerModel.c +18 -18
  111. data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -21
  112. data/examples/temp_sensor/test/TestUsartConductor.c +40 -40
  113. data/examples/temp_sensor/test/TestUsartHardware.c +36 -36
  114. data/examples/temp_sensor/test/TestUsartModel.c +40 -40
  115. data/examples/temp_sensor/test/support/UnityHelper.c +12 -12
  116. data/examples/temp_sensor/test/support/UnityHelper.h +12 -12
  117. data/lib/ceedling/build_invoker_utils.rb +39 -39
  118. data/lib/ceedling/cacheinator.rb +47 -47
  119. data/lib/ceedling/cacheinator_helper.rb +35 -31
  120. data/lib/ceedling/cmock_builder.rb +15 -15
  121. data/lib/ceedling/configurator.rb +372 -363
  122. data/lib/ceedling/configurator_builder.rb +463 -458
  123. data/lib/ceedling/configurator_plugins.rb +111 -111
  124. data/lib/ceedling/configurator_setup.rb +127 -127
  125. data/lib/ceedling/configurator_validator.rb +193 -193
  126. data/lib/ceedling/constants.rb +99 -97
  127. data/lib/ceedling/defaults.rb +447 -418
  128. data/lib/ceedling/dependinator.rb +97 -98
  129. data/lib/ceedling/erb_wrapper.rb +8 -8
  130. data/lib/ceedling/file_finder.rb +149 -149
  131. data/lib/ceedling/file_finder_helper.rb +56 -54
  132. data/lib/ceedling/file_path_utils.rb +202 -200
  133. data/lib/ceedling/file_system_utils.rb +69 -69
  134. data/lib/ceedling/file_system_wrapper.rb +9 -9
  135. data/lib/ceedling/file_wrapper.rb +83 -83
  136. data/lib/ceedling/flaginator.rb +74 -74
  137. data/lib/ceedling/generator.rb +186 -183
  138. data/lib/ceedling/generator_helper.rb +40 -40
  139. data/lib/ceedling/generator_test_results.rb +100 -89
  140. data/lib/ceedling/generator_test_results_sanity_checker.rb +65 -65
  141. data/lib/ceedling/generator_test_runner.rb +58 -56
  142. data/lib/ceedling/loginator.rb +31 -31
  143. data/lib/ceedling/makefile.rb +46 -46
  144. data/lib/ceedling/objects.yml +311 -310
  145. data/lib/ceedling/par_map.rb +19 -19
  146. data/lib/ceedling/plugin.rb +80 -80
  147. data/lib/ceedling/plugin_builder.rb +52 -52
  148. data/lib/ceedling/plugin_manager.rb +107 -107
  149. data/lib/ceedling/plugin_manager_helper.rb +19 -19
  150. data/lib/ceedling/plugin_reportinator.rb +76 -76
  151. data/lib/ceedling/plugin_reportinator_helper.rb +51 -51
  152. data/lib/ceedling/preprocessinator.rb +47 -42
  153. data/lib/ceedling/preprocessinator_extractor.rb +30 -30
  154. data/lib/ceedling/preprocessinator_file_handler.rb +21 -21
  155. data/lib/ceedling/preprocessinator_helper.rb +50 -46
  156. data/lib/ceedling/preprocessinator_includes_handler.rb +181 -181
  157. data/lib/ceedling/project_config_manager.rb +52 -46
  158. data/lib/ceedling/project_file_loader.rb +99 -99
  159. data/lib/ceedling/rake_utils.rb +17 -17
  160. data/lib/ceedling/rake_wrapper.rb +33 -33
  161. data/lib/ceedling/rakefile.rb +86 -86
  162. data/lib/ceedling/release_invoker.rb +98 -73
  163. data/lib/ceedling/release_invoker_helper.rb +19 -19
  164. data/lib/ceedling/reportinator.rb +26 -26
  165. data/lib/ceedling/rules_cmock.rake +9 -9
  166. data/lib/ceedling/rules_preprocess.rake +26 -26
  167. data/lib/ceedling/rules_release.rake +99 -86
  168. data/lib/ceedling/rules_release_deep_dependencies.rake +15 -15
  169. data/lib/ceedling/rules_tests.rake +73 -74
  170. data/lib/ceedling/rules_tests_deep_dependencies.rake +15 -15
  171. data/lib/ceedling/setupinator.rb +53 -53
  172. data/lib/ceedling/stream_wrapper.rb +28 -28
  173. data/lib/ceedling/streaminator.rb +40 -40
  174. data/lib/ceedling/streaminator_helper.rb +15 -15
  175. data/lib/ceedling/system_utils.rb +37 -37
  176. data/lib/ceedling/system_wrapper.rb +80 -80
  177. data/lib/ceedling/target_loader.rb +38 -38
  178. data/lib/ceedling/task_invoker.rb +122 -117
  179. data/lib/ceedling/tasks_base.rake +116 -111
  180. data/lib/ceedling/tasks_filesystem.rake +113 -103
  181. data/lib/ceedling/tasks_release.rake +30 -30
  182. data/lib/ceedling/tasks_release_deep_dependencies.rake +9 -9
  183. data/lib/ceedling/tasks_tests.rake +60 -60
  184. data/lib/ceedling/tasks_tests_deep_dependencies.rake +9 -9
  185. data/lib/ceedling/tasks_vendor.rake +35 -35
  186. data/lib/ceedling/test_includes_extractor.rb +111 -85
  187. data/lib/ceedling/test_invoker.rb +164 -188
  188. data/lib/ceedling/test_invoker_helper.rb +32 -32
  189. data/lib/ceedling/tool_executor.rb +229 -229
  190. data/lib/ceedling/tool_executor_helper.rb +164 -164
  191. data/lib/ceedling/verbosinator.rb +10 -10
  192. data/lib/ceedling/version.rb +50 -36
  193. data/lib/ceedling/yaml_wrapper.rb +17 -17
  194. data/lib/ceedling.rb +99 -99
  195. data/license.txt +31 -31
  196. data/plugins/beep/README.md +22 -22
  197. data/plugins/beep/lib/beep.rb +40 -40
  198. data/plugins/bullseye/README.md +76 -0
  199. data/plugins/bullseye/assets/template.erb +15 -15
  200. data/plugins/bullseye/bullseye.rake +173 -169
  201. data/plugins/bullseye/config/defaults.yml +57 -57
  202. data/plugins/bullseye/lib/bullseye.rb +194 -194
  203. data/plugins/colour_report/README.md +20 -0
  204. data/plugins/colour_report/lib/colour_report.rb +16 -16
  205. data/plugins/command_hooks/README.md +53 -53
  206. data/plugins/command_hooks/lib/command_hooks.rb +92 -92
  207. data/plugins/compile_commands_json/README.md +29 -0
  208. data/plugins/compile_commands_json/lib/compile_commands_json.rb +35 -0
  209. data/plugins/dependencies/README.md +254 -0
  210. data/plugins/dependencies/config/defaults.yml +5 -0
  211. data/plugins/dependencies/dependencies.rake +144 -0
  212. data/plugins/dependencies/lib/dependencies.rb +231 -0
  213. data/plugins/fake_function_framework/README.md +250 -250
  214. data/plugins/fake_function_framework/Rakefile +18 -18
  215. data/plugins/fake_function_framework/examples/fff_example/project.yml +71 -71
  216. data/plugins/fake_function_framework/examples/fff_example/rakefile.rb +7 -7
  217. data/plugins/fake_function_framework/examples/fff_example/src/bar.c +1 -1
  218. data/plugins/fake_function_framework/examples/fff_example/src/bar.h +14 -14
  219. data/plugins/fake_function_framework/examples/fff_example/src/custom_types.h +6 -6
  220. data/plugins/fake_function_framework/examples/fff_example/src/display.c +6 -6
  221. data/plugins/fake_function_framework/examples/fff_example/src/display.h +16 -16
  222. data/plugins/fake_function_framework/examples/fff_example/src/event_processor.c +93 -93
  223. data/plugins/fake_function_framework/examples/fff_example/src/event_processor.h +11 -11
  224. data/plugins/fake_function_framework/examples/fff_example/src/foo.c +16 -16
  225. data/plugins/fake_function_framework/examples/fff_example/src/foo.h +8 -8
  226. data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.c +1 -1
  227. data/plugins/fake_function_framework/examples/fff_example/src/subfolder/zzz.h +6 -6
  228. data/plugins/fake_function_framework/examples/fff_example/test/test_event_processor.c +155 -155
  229. data/plugins/fake_function_framework/examples/fff_example/test/test_foo.c +47 -47
  230. data/plugins/fake_function_framework/lib/fake_function_framework.rb +87 -87
  231. data/plugins/fake_function_framework/lib/fff_mock_generator.rb +163 -163
  232. data/plugins/fake_function_framework/spec/fff_mock_header_generator_spec.rb +304 -304
  233. data/plugins/fake_function_framework/spec/fff_mock_source_generator_spec.rb +148 -148
  234. data/plugins/fake_function_framework/spec/header_generator.rb +50 -50
  235. data/plugins/fake_function_framework/spec/spec_helper.rb +96 -96
  236. data/plugins/fake_function_framework/src/fff_unity_helper.h +32 -32
  237. data/plugins/gcov/README.md +412 -101
  238. data/plugins/gcov/assets/template.erb +15 -15
  239. data/plugins/gcov/config/defaults.yml +51 -73
  240. data/plugins/gcov/gcov.rake +209 -220
  241. data/plugins/gcov/lib/gcov.rb +133 -113
  242. data/plugins/gcov/lib/gcov_constants.rb +48 -19
  243. data/plugins/gcov/lib/gcovr_reportinator.rb +331 -0
  244. data/plugins/gcov/lib/reportgenerator_reportinator.rb +153 -0
  245. data/plugins/gcov/lib/reportinator_helper.rb +15 -0
  246. data/plugins/json_tests_report/README.md +36 -0
  247. data/plugins/json_tests_report/lib/json_tests_report.rb +83 -0
  248. data/plugins/junit_tests_report/README.md +36 -36
  249. data/plugins/junit_tests_report/lib/junit_tests_report.rb +134 -129
  250. data/plugins/module_generator/README.md +105 -0
  251. data/plugins/module_generator/config/module_generator.yml +3 -3
  252. data/plugins/module_generator/lib/module_generator.rb +79 -70
  253. data/plugins/module_generator/module_generator.rake +62 -47
  254. data/plugins/raw_output_report/README.md +19 -0
  255. data/plugins/raw_output_report/lib/raw_output_report.rb +41 -41
  256. data/plugins/stdout_gtestlike_tests_report/README.md +19 -0
  257. data/plugins/stdout_gtestlike_tests_report/assets/template.erb +84 -84
  258. data/plugins/stdout_gtestlike_tests_report/assets/template.erb copy +59 -59
  259. data/plugins/stdout_gtestlike_tests_report/config/stdout_gtestlike_tests_report.yml +4 -4
  260. data/plugins/stdout_gtestlike_tests_report/lib/stdout_gtestlike_tests_report.rb +43 -43
  261. data/plugins/stdout_ide_tests_report/README.md +18 -0
  262. data/plugins/stdout_ide_tests_report/config/stdout_ide_tests_report.yml +4 -4
  263. data/plugins/stdout_ide_tests_report/lib/stdout_ide_tests_report.rb +44 -44
  264. data/plugins/stdout_pretty_tests_report/README.md +20 -0
  265. data/plugins/stdout_pretty_tests_report/assets/template.erb +59 -59
  266. data/plugins/stdout_pretty_tests_report/config/stdout_pretty_tests_report.yml +4 -4
  267. data/plugins/stdout_pretty_tests_report/lib/stdout_pretty_tests_report.rb +47 -47
  268. data/plugins/subprojects/README.md +63 -63
  269. data/plugins/subprojects/config/defaults.yml +33 -33
  270. data/plugins/subprojects/lib/subprojects.rb +92 -92
  271. data/plugins/subprojects/subprojects.rake +78 -78
  272. data/plugins/teamcity_tests_report/README.md +18 -0
  273. data/plugins/teamcity_tests_report/config/teamcity_tests_report.yml +4 -4
  274. data/plugins/teamcity_tests_report/lib/teamcity_tests_report.rb +57 -57
  275. data/plugins/warnings_report/README.md +19 -0
  276. data/plugins/warnings_report/lib/warnings_report.rb +69 -69
  277. data/plugins/xml_tests_report/README.md +36 -36
  278. data/plugins/xml_tests_report/lib/xml_tests_report.rb +110 -110
  279. data/spec/build_invoker_utils_spec.rb +54 -54
  280. data/spec/ceedling_spec.rb +154 -154
  281. data/spec/configurator_builder_spec.rb +6 -6
  282. data/spec/configurator_helper_spec.rb +4 -4
  283. data/spec/configurator_spec.rb +9 -9
  284. data/spec/file_finder_helper_spec.rb +53 -53
  285. data/spec/gcov/gcov_deployment_spec.rb +72 -70
  286. data/spec/gcov/gcov_test_cases_spec.rb +128 -91
  287. data/spec/generator_test_results_sanity_checker_spec.rb +88 -88
  288. data/spec/generator_test_results_spec.rb +107 -107
  289. data/spec/par_map_spec.rb +57 -57
  290. data/spec/preprocessinator_extractor_spec.rb +45 -45
  291. data/spec/preprocessinator_includes_handler_spec.rb +202 -202
  292. data/spec/reportinator_spec.rb +19 -19
  293. data/spec/spec_helper.rb +27 -27
  294. data/spec/spec_system_helper.rb +616 -575
  295. data/spec/support/test_example.fail +24 -22
  296. data/spec/support/test_example.pass +24 -22
  297. data/spec/support/test_example_empty.pass +14 -14
  298. data/spec/support/test_example_ignore.pass +24 -22
  299. data/spec/support/test_example_mangled.pass +21 -20
  300. data/spec/support/test_example_with_time.pass +24 -22
  301. data/spec/system/deployment_spec.rb +225 -219
  302. data/spec/system_utils_spec.rb +56 -56
  303. data/spec/target_loader_spec.rb +30 -30
  304. data/spec/tool_executor_helper_spec.rb +310 -310
  305. data/spec/uncatagorized_specs_spec.rb +8 -8
  306. data/vendor/behaviors/Manifest.txt +9 -9
  307. data/vendor/behaviors/Rakefile +19 -19
  308. data/vendor/behaviors/lib/behaviors/reporttask.rb +158 -158
  309. data/vendor/behaviors/lib/behaviors.rb +76 -76
  310. data/vendor/behaviors/test/behaviors_tasks_test.rb +73 -73
  311. data/vendor/behaviors/test/behaviors_test.rb +50 -50
  312. data/vendor/behaviors/test/tasks_test/Rakefile +19 -19
  313. data/vendor/behaviors/test/tasks_test/lib/user.rb +2 -2
  314. data/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -17
  315. data/vendor/c_exception/Gemfile +4 -4
  316. data/vendor/c_exception/Gemfile.lock +12 -12
  317. data/vendor/c_exception/README.md +249 -162
  318. data/vendor/c_exception/docs/CException.md +332 -292
  319. data/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -207
  320. data/vendor/c_exception/lib/CException.c +46 -46
  321. data/vendor/c_exception/lib/CException.h +115 -115
  322. data/vendor/c_exception/lib/meson.build +11 -0
  323. data/vendor/c_exception/meson.build +48 -0
  324. data/vendor/c_exception/project.yml +37 -0
  325. data/vendor/c_exception/test/TestException.c +391 -391
  326. data/vendor/{cmock/vendor/c_exception/test → c_exception/test/support}/CExceptionConfig.h +46 -46
  327. data/vendor/c_exception/vendor/unity/README.md +220 -220
  328. data/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +118 -118
  329. data/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -39
  330. data/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -36
  331. data/vendor/c_exception/vendor/unity/auto/generate_module.rb +308 -308
  332. data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +437 -437
  333. data/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -220
  334. data/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +252 -252
  335. data/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +25 -25
  336. data/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +6 -6
  337. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +139 -139
  338. data/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +136 -136
  339. data/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +146 -146
  340. data/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -207
  341. data/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -716
  342. data/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -398
  343. data/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -191
  344. data/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -242
  345. data/vendor/c_exception/vendor/unity/docs/license.txt +21 -21
  346. data/vendor/c_exception/vendor/unity/examples/example_1/makefile +71 -71
  347. data/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +4 -4
  348. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +24 -24
  349. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +3 -3
  350. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -11
  351. data/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -2
  352. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -62
  353. data/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -31
  354. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -53
  355. data/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -57
  356. data/vendor/c_exception/vendor/unity/examples/example_2/makefile +70 -70
  357. data/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +4 -4
  358. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +24 -24
  359. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +3 -3
  360. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -11
  361. data/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -2
  362. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -64
  363. data/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -33
  364. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +8 -8
  365. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +10 -10
  366. data/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -12
  367. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -10
  368. data/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -12
  369. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +43 -43
  370. data/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +249 -249
  371. data/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +13 -13
  372. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +24 -24
  373. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +3 -3
  374. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -11
  375. data/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -2
  376. data/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +46 -46
  377. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -62
  378. data/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -31
  379. data/vendor/c_exception/vendor/unity/examples/unity_config.h +237 -237
  380. data/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +26 -26
  381. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile.rb +48 -48
  382. data/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +178 -178
  383. data/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +8 -8
  384. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +432 -432
  385. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +83 -83
  386. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +51 -51
  387. data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +47 -47
  388. data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +74 -74
  389. data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +22 -22
  390. data/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -39
  391. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +543 -543
  392. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +57 -57
  393. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +57 -57
  394. data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -17
  395. data/vendor/c_exception/vendor/unity/release/build.info +2 -2
  396. data/vendor/c_exception/vendor/unity/release/version.info +2 -2
  397. data/vendor/c_exception/vendor/unity/src/unity.c +1517 -1517
  398. data/vendor/c_exception/vendor/unity/src/unity.h +339 -339
  399. data/vendor/c_exception/vendor/unity/src/unity_internals.h +784 -784
  400. data/vendor/c_exception/vendor/unity/test/Makefile +63 -63
  401. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +61 -61
  402. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +57 -57
  403. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -55
  404. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -15
  405. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -80
  406. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +76 -76
  407. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -75
  408. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -13
  409. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -89
  410. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -89
  411. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +77 -77
  412. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -89
  413. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -89
  414. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -90
  415. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +67 -67
  416. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +70 -70
  417. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +58 -58
  418. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +67 -67
  419. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +70 -70
  420. data/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +71 -71
  421. data/vendor/c_exception/vendor/unity/test/rakefile +125 -125
  422. data/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +260 -260
  423. data/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -158
  424. data/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +78 -78
  425. data/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +78 -78
  426. data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -49
  427. data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -50
  428. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +47 -47
  429. data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -59
  430. data/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +47 -47
  431. data/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +101 -101
  432. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +90 -90
  433. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +80 -80
  434. data/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +80 -80
  435. data/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +94 -94
  436. data/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +84 -84
  437. data/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +95 -95
  438. data/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +86 -86
  439. data/vendor/c_exception/vendor/unity/test/testdata/CException.h +11 -11
  440. data/vendor/c_exception/vendor/unity/test/testdata/Defs.h +8 -8
  441. data/vendor/c_exception/vendor/unity/test/testdata/cmock.h +14 -14
  442. data/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +13 -13
  443. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +183 -183
  444. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +67 -67
  445. data/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -192
  446. data/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +1252 -1252
  447. data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +110 -110
  448. data/vendor/c_exception/vendor/unity/test/tests/testunity.c +4993 -4993
  449. data/vendor/cmock/Gemfile +8 -9
  450. data/vendor/cmock/LICENSE.txt +18 -18
  451. data/vendor/cmock/README.md +34 -34
  452. data/vendor/cmock/config/production_environment.rb +12 -14
  453. data/vendor/cmock/config/test_environment.rb +16 -16
  454. data/vendor/cmock/docs/CMock_Summary.md +806 -689
  455. data/vendor/cmock/docs/ThrowTheSwitchCodingStandard.md +207 -207
  456. data/vendor/cmock/examples/make_example/Makefile +30 -30
  457. data/vendor/cmock/examples/make_example/src/foo.c +5 -5
  458. data/vendor/cmock/examples/make_example/src/foo.h +5 -5
  459. data/vendor/cmock/examples/make_example/src/main.c +15 -15
  460. data/vendor/cmock/examples/make_example/test/test_foo.c +17 -17
  461. data/vendor/cmock/examples/make_example/test/test_main.c +15 -15
  462. data/vendor/cmock/examples/temp_sensor/gcc.yml +44 -44
  463. data/vendor/cmock/examples/temp_sensor/iar_v4.yml +92 -92
  464. data/vendor/cmock/examples/temp_sensor/iar_v5.yml +81 -81
  465. data/vendor/cmock/examples/temp_sensor/rakefile.rb +42 -42
  466. data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +268 -272
  467. data/vendor/cmock/examples/temp_sensor/src/AT91SAM7X256.h +2556 -2556
  468. data/vendor/cmock/examples/temp_sensor/src/AdcConductor.c +42 -42
  469. data/vendor/cmock/examples/temp_sensor/src/AdcConductor.h +11 -11
  470. data/vendor/cmock/examples/temp_sensor/src/AdcHardware.c +27 -27
  471. data/vendor/cmock/examples/temp_sensor/src/AdcHardware.h +9 -9
  472. data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.c +18 -18
  473. data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.h +10 -10
  474. data/vendor/cmock/examples/temp_sensor/src/AdcModel.c +33 -33
  475. data/vendor/cmock/examples/temp_sensor/src/AdcModel.h +13 -13
  476. data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.c +51 -51
  477. data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.h +10 -10
  478. data/vendor/cmock/examples/temp_sensor/src/Executor.c +25 -25
  479. data/vendor/cmock/examples/temp_sensor/src/Executor.h +9 -9
  480. data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.c +18 -18
  481. data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.h +7 -7
  482. data/vendor/cmock/examples/temp_sensor/src/Main.c +46 -46
  483. data/vendor/cmock/examples/temp_sensor/src/Main.h +7 -7
  484. data/vendor/cmock/examples/temp_sensor/src/Model.c +10 -10
  485. data/vendor/cmock/examples/temp_sensor/src/Model.h +8 -8
  486. data/vendor/cmock/examples/temp_sensor/src/ModelConfig.h +7 -7
  487. data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.c +72 -72
  488. data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.h +11 -11
  489. data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.c +27 -27
  490. data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.h +6 -6
  491. data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.c +39 -39
  492. data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.h +10 -10
  493. data/vendor/cmock/examples/temp_sensor/src/TimerConductor.c +15 -15
  494. data/vendor/cmock/examples/temp_sensor/src/TimerConductor.h +9 -9
  495. data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.c +51 -51
  496. data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.h +15 -15
  497. data/vendor/cmock/examples/temp_sensor/src/TimerHardware.c +15 -15
  498. data/vendor/cmock/examples/temp_sensor/src/TimerHardware.h +8 -8
  499. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.c +55 -55
  500. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.h +13 -13
  501. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.c +25 -25
  502. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.h +10 -10
  503. data/vendor/cmock/examples/temp_sensor/src/TimerModel.c +9 -9
  504. data/vendor/cmock/examples/temp_sensor/src/TimerModel.h +8 -8
  505. data/vendor/cmock/examples/temp_sensor/src/Types.h +103 -103
  506. data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +18 -18
  507. data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +6 -6
  508. data/vendor/cmock/examples/temp_sensor/src/UsartConductor.c +21 -21
  509. data/vendor/cmock/examples/temp_sensor/src/UsartConductor.h +7 -7
  510. data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.c +39 -39
  511. data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.h +13 -13
  512. data/vendor/cmock/examples/temp_sensor/src/UsartHardware.c +22 -22
  513. data/vendor/cmock/examples/temp_sensor/src/UsartHardware.h +9 -9
  514. data/vendor/cmock/examples/temp_sensor/src/UsartModel.c +34 -34
  515. data/vendor/cmock/examples/temp_sensor/src/UsartModel.h +10 -10
  516. data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.c +16 -16
  517. data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.h +8 -8
  518. data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.c +7 -7
  519. data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.h +8 -8
  520. data/vendor/cmock/examples/temp_sensor/test/TestAdcConductor.c +121 -121
  521. data/vendor/cmock/examples/temp_sensor/test/TestAdcHardware.c +44 -44
  522. data/vendor/cmock/examples/temp_sensor/test/TestAdcHardwareConfigurator.c +43 -43
  523. data/vendor/cmock/examples/temp_sensor/test/TestAdcModel.c +33 -33
  524. data/vendor/cmock/examples/temp_sensor/test/TestAdcTemperatureSensor.c +47 -47
  525. data/vendor/cmock/examples/temp_sensor/test/TestExecutor.c +36 -36
  526. data/vendor/cmock/examples/temp_sensor/test/TestMain.c +24 -24
  527. data/vendor/cmock/examples/temp_sensor/test/TestModel.c +20 -20
  528. data/vendor/cmock/examples/temp_sensor/test/TestTaskScheduler.c +104 -104
  529. data/vendor/cmock/examples/temp_sensor/test/TestTemperatureCalculator.c +33 -33
  530. data/vendor/cmock/examples/temp_sensor/test/TestTemperatureFilter.c +69 -69
  531. data/vendor/cmock/examples/temp_sensor/test/TestTimerConductor.c +32 -32
  532. data/vendor/cmock/examples/temp_sensor/test/TestTimerConfigurator.c +112 -112
  533. data/vendor/cmock/examples/temp_sensor/test/TestTimerHardware.c +26 -26
  534. data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptConfigurator.c +78 -78
  535. data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptHandler.c +66 -66
  536. data/vendor/cmock/examples/temp_sensor/test/TestTimerModel.c +18 -18
  537. data/vendor/cmock/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +21 -21
  538. data/vendor/cmock/examples/temp_sensor/test/TestUsartConductor.c +40 -40
  539. data/vendor/cmock/examples/temp_sensor/test/TestUsartConfigurator.c +77 -77
  540. data/vendor/cmock/examples/temp_sensor/test/TestUsartHardware.c +37 -37
  541. data/vendor/cmock/examples/temp_sensor/test/TestUsartModel.c +40 -40
  542. data/vendor/cmock/examples/temp_sensor/test/TestUsartPutChar.c +43 -43
  543. data/vendor/cmock/examples/temp_sensor/test/TestUsartTransmitBufferStatus.c +22 -22
  544. data/vendor/cmock/lib/cmock.rb +104 -86
  545. data/vendor/cmock/lib/cmock_config.rb +173 -153
  546. data/vendor/cmock/lib/cmock_file_writer.rb +48 -44
  547. data/vendor/cmock/lib/cmock_generator.rb +333 -268
  548. data/vendor/cmock/lib/cmock_generator_plugin_array.rb +63 -63
  549. data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +88 -88
  550. data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +49 -51
  551. data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +100 -103
  552. data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +50 -53
  553. data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +88 -75
  554. data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +42 -42
  555. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +79 -79
  556. data/vendor/cmock/lib/cmock_generator_utils.rb +247 -253
  557. data/vendor/cmock/lib/cmock_header_parser.rb +595 -364
  558. data/vendor/cmock/lib/cmock_plugin_manager.rb +50 -55
  559. data/vendor/cmock/lib/cmock_unityhelper_parser.rb +77 -75
  560. data/vendor/cmock/meson.build +53 -72
  561. data/vendor/cmock/scripts/create_makefile.rb +203 -202
  562. data/vendor/cmock/scripts/create_mock.rb +8 -8
  563. data/vendor/cmock/scripts/create_runner.rb +18 -20
  564. data/vendor/cmock/scripts/test_summary.rb +18 -19
  565. data/vendor/cmock/src/cmock.c +216 -216
  566. data/vendor/cmock/src/cmock.h +41 -40
  567. data/vendor/cmock/src/cmock_internals.h +91 -91
  568. data/vendor/cmock/src/meson.build +12 -17
  569. data/vendor/cmock/test/c/TestCMockC.c +333 -333
  570. data/vendor/cmock/test/c/TestCMockC.yml +14 -14
  571. data/vendor/cmock/test/c/TestCMockCDynamic.c +186 -186
  572. data/vendor/cmock/test/c/TestCMockCDynamic.yml +12 -12
  573. data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +36 -36
  574. data/vendor/cmock/test/c/TestCMockC_Runner.c +41 -41
  575. data/vendor/cmock/test/iar/iar_v4/Resource/at91SAM7X256_FLASH.xcl +185 -185
  576. data/vendor/cmock/test/iar/iar_v4/Resource/at91SAM7X256_RAM.xcl +185 -185
  577. data/vendor/cmock/test/iar/iar_v4/Resource/ioat91sam7x256.ddf +2259 -2259
  578. data/vendor/cmock/test/iar/iar_v4/cmock_demo.dep +3691 -3691
  579. data/vendor/cmock/test/iar/iar_v4/cmock_demo.ewp +2581 -2581
  580. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X-EK.h +61 -61
  581. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.inc +2314 -2314
  582. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.rdf +4704 -4704
  583. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256.tcl +3407 -3407
  584. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +2268 -2268
  585. data/vendor/cmock/test/iar/iar_v4/incIAR/ioat91sam7x256.h +4380 -4380
  586. data/vendor/cmock/test/iar/iar_v4/incIAR/lib_AT91SAM7X256.h +4211 -4211
  587. data/vendor/cmock/test/iar/iar_v4/settings/cmock_demo.cspy.bat +32 -32
  588. data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup.s79 +265 -265
  589. data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup_SAM7.c +98 -98
  590. data/vendor/cmock/test/iar/iar_v5/Resource/at91SAM7X256_FLASH.icf +43 -43
  591. data/vendor/cmock/test/iar/iar_v5/Resource/at91SAM7X256_RAM.icf +42 -42
  592. data/vendor/cmock/test/iar/iar_v5/cmock_demo.dep +4204 -4204
  593. data/vendor/cmock/test/iar/iar_v5/cmock_demo.ewp +2426 -2426
  594. data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X-EK.h +61 -61
  595. data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +2268 -2268
  596. data/vendor/cmock/test/iar/iar_v5/incIAR/lib_AT91SAM7X256.h +4211 -4211
  597. data/vendor/cmock/test/iar/iar_v5/incIAR/project.h +30 -30
  598. data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X.cspy.bat +33 -33
  599. data/vendor/cmock/test/iar/iar_v5/settings/BasicInterrupt_SAM7X_FLASH_Debug.jlink +12 -12
  600. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo.cspy.bat +33 -33
  601. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_Binary.jlink +12 -12
  602. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_FLASH_Debug.jlink +12 -12
  603. data/vendor/cmock/test/iar/iar_v5/settings/cmock_demo_RAM_Debug.jlink +12 -12
  604. data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup.s +299 -299
  605. data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup_SAM7.c +98 -98
  606. data/vendor/cmock/test/rakefile +147 -106
  607. data/vendor/cmock/test/rakefile_helper.rb +403 -382
  608. data/vendor/cmock/test/system/systest_generator.rb +205 -193
  609. data/vendor/cmock/test/system/test_compilation/callingconv.h +11 -11
  610. data/vendor/cmock/test/system/test_compilation/config.yml +10 -9
  611. data/vendor/cmock/test/system/test_compilation/const.h +37 -37
  612. data/vendor/cmock/test/system/test_compilation/inline.h +23 -0
  613. data/vendor/cmock/test/system/test_compilation/osek.h +275 -275
  614. data/vendor/cmock/test/system/test_compilation/parsing.h +89 -89
  615. data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +375 -375
  616. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +460 -459
  617. data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +446 -446
  618. data/vendor/cmock/test/system/test_interactions/basic_expect_and_return.yml +124 -124
  619. data/vendor/cmock/test/system/test_interactions/const_primitives_handling.yml +87 -87
  620. data/vendor/cmock/test/system/test_interactions/doesnt_leave_details_behind.yml +308 -308
  621. data/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +247 -247
  622. data/vendor/cmock/test/system/test_interactions/expect_and_return_custom_types.yml +108 -108
  623. data/vendor/cmock/test/system/test_interactions/expect_and_return_treat_as.yml +173 -173
  624. data/vendor/cmock/test/system/test_interactions/expect_and_throw.yml +170 -170
  625. data/vendor/cmock/test/system/test_interactions/expect_any_args.yml +238 -238
  626. data/vendor/cmock/test/system/test_interactions/fancy_pointer_handling.yml +210 -210
  627. data/vendor/cmock/test/system/test_interactions/function_pointer_handling.yml +83 -82
  628. data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +329 -329
  629. data/vendor/cmock/test/system/test_interactions/ignore_strict_mock_calling.yml +37 -37
  630. data/vendor/cmock/test/system/test_interactions/newer_standards_stuff1.yml +52 -52
  631. data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_1.yml +91 -91
  632. data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_2.yml +59 -59
  633. data/vendor/cmock/test/system/test_interactions/out_of_memory.yml +65 -65
  634. data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +242 -242
  635. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_and_expect_any_args.yml +235 -235
  636. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +231 -231
  637. data/vendor/cmock/test/system/test_interactions/skeleton.yml +55 -0
  638. data/vendor/cmock/test/system/test_interactions/skeleton_update.yml +76 -0
  639. data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return.yml +277 -277
  640. data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return_with_plugins.yml +280 -280
  641. data/vendor/cmock/test/system/test_interactions/stubs_with_callbacks.yml +221 -221
  642. data/vendor/cmock/test/system/test_interactions/unity_64bit_support.yml +77 -77
  643. data/vendor/cmock/test/system/test_interactions/unity_ignores.yml +139 -139
  644. data/vendor/cmock/test/system/test_interactions/unity_void_pointer_compare.yml +91 -91
  645. data/vendor/cmock/test/targets/clang_strict.yml +90 -90
  646. data/vendor/cmock/test/targets/gcc.yml +58 -58
  647. data/vendor/cmock/test/targets/gcc_64.yml +58 -58
  648. data/vendor/cmock/test/targets/gcc_tiny.yml +80 -80
  649. data/vendor/cmock/test/targets/iar_arm_v4.yml +110 -110
  650. data/vendor/cmock/test/targets/iar_arm_v5.yml +95 -95
  651. data/vendor/cmock/test/test_helper.rb +44 -44
  652. data/vendor/cmock/test/unit/cmock_config_test.rb +126 -120
  653. data/vendor/cmock/test/unit/cmock_config_test.yml +7 -5
  654. data/vendor/cmock/test/unit/cmock_file_writer_test.rb +27 -27
  655. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +686 -548
  656. data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +141 -141
  657. data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +281 -281
  658. data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +96 -96
  659. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +185 -183
  660. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +67 -67
  661. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +201 -200
  662. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +116 -116
  663. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +119 -105
  664. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +136 -136
  665. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +398 -415
  666. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +2717 -1728
  667. data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +100 -100
  668. data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +223 -223
  669. data/vendor/cmock/vendor/behaviors/Manifest.txt +9 -9
  670. data/vendor/cmock/vendor/behaviors/Rakefile +19 -19
  671. data/vendor/cmock/vendor/behaviors/lib/behaviors/reporttask.rb +158 -158
  672. data/vendor/cmock/vendor/behaviors/lib/behaviors.rb +76 -76
  673. data/vendor/cmock/vendor/behaviors/test/behaviors_tasks_test.rb +73 -73
  674. data/vendor/cmock/vendor/behaviors/test/behaviors_test.rb +50 -50
  675. data/vendor/cmock/vendor/behaviors/test/tasks_test/Rakefile +19 -19
  676. data/vendor/cmock/vendor/behaviors/test/tasks_test/lib/user.rb +2 -2
  677. data/vendor/cmock/vendor/behaviors/test/tasks_test/test/user_test.rb +17 -17
  678. data/vendor/cmock/vendor/c_exception/Gemfile +4 -4
  679. data/vendor/cmock/vendor/c_exception/Gemfile.lock +12 -12
  680. data/vendor/cmock/vendor/c_exception/README.md +249 -162
  681. data/vendor/cmock/vendor/c_exception/docs/CException.md +332 -292
  682. data/vendor/cmock/vendor/c_exception/docs/ThrowTheSwitchCodingStandard.md +207 -207
  683. data/vendor/cmock/vendor/c_exception/lib/CException.c +46 -46
  684. data/vendor/cmock/vendor/c_exception/lib/CException.h +115 -115
  685. data/vendor/cmock/vendor/c_exception/lib/meson.build +11 -0
  686. data/vendor/cmock/vendor/c_exception/meson.build +48 -0
  687. data/vendor/cmock/vendor/c_exception/project.yml +37 -0
  688. data/vendor/cmock/vendor/c_exception/test/TestException.c +391 -391
  689. data/vendor/{c_exception/test → cmock/vendor/c_exception/test/support}/CExceptionConfig.h +46 -46
  690. data/vendor/cmock/vendor/c_exception/vendor/unity/README.md +220 -0
  691. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_prompt.rb +118 -0
  692. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/colour_reporter.rb +39 -0
  693. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_config.yml +36 -0
  694. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +308 -0
  695. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +437 -0
  696. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/parse_output.rb +220 -0
  697. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/stylize_as_junit.rb +252 -0
  698. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/test_file_filter.rb +25 -0
  699. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/type_sanitizer.rb +6 -0
  700. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.py +139 -0
  701. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_test_summary.rb +136 -0
  702. data/vendor/cmock/vendor/c_exception/vendor/unity/auto/unity_to_junit.py +146 -0
  703. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +207 -0
  704. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsCheatSheetSuitableforPrintingandPossiblyFraming.pdf +0 -0
  705. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityAssertionsReference.md +716 -0
  706. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityConfigurationGuide.md +398 -0
  707. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityGettingStartedGuide.md +191 -0
  708. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/UnityHelperScriptsGuide.md +242 -0
  709. data/vendor/cmock/vendor/c_exception/vendor/unity/docs/license.txt +21 -0
  710. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +71 -0
  711. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/readme.txt +5 -0
  712. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.c +24 -0
  713. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode.h +3 -0
  714. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -0
  715. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -0
  716. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -0
  717. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -0
  718. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -0
  719. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -0
  720. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +70 -0
  721. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/readme.txt +5 -0
  722. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.c +24 -0
  723. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode.h +3 -0
  724. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -0
  725. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -0
  726. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -0
  727. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -0
  728. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +9 -0
  729. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +11 -0
  730. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -0
  731. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -0
  732. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -0
  733. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile.rb +43 -0
  734. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/rakefile_helper.rb +249 -0
  735. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/readme.txt +13 -0
  736. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.c +24 -0
  737. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode.h +3 -0
  738. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -0
  739. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -0
  740. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/target_gcc_32.yml +46 -0
  741. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -0
  742. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -0
  743. data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +237 -0
  744. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/eclipse/error_parsers.txt +26 -0
  745. data/vendor/cmock/vendor/{unity → c_exception/vendor/unity}/extras/fixture/rakefile.rb +48 -44
  746. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/rakefile_helper.rb +178 -0
  747. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/readme.txt +9 -0
  748. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +432 -0
  749. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +83 -0
  750. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +51 -0
  751. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +47 -0
  752. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +74 -0
  753. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +22 -0
  754. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -0
  755. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +543 -0
  756. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +57 -0
  757. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +57 -0
  758. data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +17 -0
  759. data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +2 -0
  760. data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +2 -0
  761. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +1517 -0
  762. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +339 -0
  763. data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +784 -0
  764. data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +63 -0
  765. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_cmd.c +61 -0
  766. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_def.c +57 -0
  767. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.c +55 -0
  768. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_head1.h +15 -0
  769. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -0
  770. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_def.c +76 -0
  771. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -0
  772. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -0
  773. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -0
  774. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -0
  775. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_param.c +77 -0
  776. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -0
  777. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -0
  778. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -0
  779. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new1.c +67 -0
  780. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_new2.c +70 -0
  781. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_param.c +58 -0
  782. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run1.c +67 -0
  783. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_run2.c +70 -0
  784. data/vendor/cmock/vendor/c_exception/vendor/unity/test/expectdata/testsample_yaml.c +71 -0
  785. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile +125 -0
  786. data/vendor/cmock/vendor/c_exception/vendor/unity/test/rakefile_helper.rb +260 -0
  787. data/vendor/cmock/vendor/c_exception/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -0
  788. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_file.yml +78 -0
  789. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/clang_strict.yml +78 -0
  790. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +49 -0
  791. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +50 -0
  792. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_limits.yml +47 -0
  793. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_stdint.yml +59 -0
  794. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_manual_math.yml +47 -0
  795. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/hitech_picc18.yml +101 -0
  796. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v4.yml +90 -0
  797. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5.yml +80 -0
  798. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_arm_v5_3.yml +80 -0
  799. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +94 -0
  800. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_cortexm3_v5.yml +84 -0
  801. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_msp430.yml +95 -0
  802. data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/iar_sh2a_v6.yml +86 -0
  803. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/CException.h +11 -0
  804. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/Defs.h +8 -0
  805. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/cmock.h +14 -0
  806. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/mockMock.h +13 -0
  807. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGenerator.c +183 -0
  808. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +67 -0
  809. data/vendor/cmock/vendor/c_exception/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +192 -0
  810. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/test_generate_test_runner.rb +1252 -0
  811. data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +110 -0
  812. data/vendor/cmock/vendor/{unity → c_exception/vendor/unity}/test/tests/testunity.c +4993 -8168
  813. data/vendor/cmock/vendor/unity/CMakeLists.txt +133 -31
  814. data/vendor/cmock/vendor/unity/LICENSE.txt +21 -21
  815. data/vendor/cmock/vendor/unity/README.md +191 -191
  816. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +119 -119
  817. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +39 -39
  818. data/vendor/cmock/vendor/unity/auto/generate_config.yml +36 -36
  819. data/vendor/cmock/vendor/unity/auto/generate_module.rb +312 -309
  820. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +511 -495
  821. data/vendor/cmock/vendor/unity/auto/parse_output.rb +322 -322
  822. data/vendor/cmock/vendor/unity/auto/run_test.erb +37 -36
  823. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +251 -251
  824. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +25 -25
  825. data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +6 -6
  826. data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +139 -139
  827. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +135 -135
  828. data/vendor/cmock/vendor/unity/auto/unity_to_junit.py +146 -146
  829. data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +206 -206
  830. data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +831 -850
  831. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +563 -541
  832. data/vendor/cmock/vendor/unity/docs/UnityGettingStartedGuide.md +251 -251
  833. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +278 -266
  834. data/vendor/cmock/vendor/unity/examples/example_1/makefile +72 -72
  835. data/vendor/cmock/vendor/unity/examples/example_1/readme.txt +4 -4
  836. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +24 -24
  837. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +3 -3
  838. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -11
  839. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -2
  840. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -62
  841. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -31
  842. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -53
  843. data/vendor/cmock/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -57
  844. data/vendor/cmock/vendor/unity/examples/example_2/makefile +71 -71
  845. data/vendor/cmock/vendor/unity/examples/example_2/readme.txt +4 -4
  846. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +24 -24
  847. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +3 -3
  848. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -11
  849. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -2
  850. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -64
  851. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -33
  852. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +8 -8
  853. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +10 -10
  854. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -12
  855. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -10
  856. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -12
  857. data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +38 -38
  858. data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +250 -250
  859. data/vendor/cmock/vendor/unity/examples/example_3/readme.txt +13 -13
  860. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +24 -24
  861. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +3 -3
  862. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -11
  863. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -2
  864. data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +47 -47
  865. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -62
  866. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -31
  867. data/vendor/cmock/vendor/unity/examples/example_4/meson.build +12 -17
  868. data/vendor/cmock/vendor/unity/examples/example_4/readme.txt +14 -14
  869. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.c +24 -24
  870. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.h +3 -3
  871. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.c +11 -11
  872. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.h +2 -2
  873. data/vendor/cmock/vendor/unity/examples/example_4/src/meson.build +16 -21
  874. data/vendor/cmock/vendor/unity/examples/example_4/subprojects/unity.wrap +4 -4
  875. data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode.c +63 -63
  876. data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode2.c +35 -35
  877. data/vendor/cmock/vendor/unity/examples/example_4/test/meson.build +7 -12
  878. data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -53
  879. data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -57
  880. data/vendor/cmock/vendor/unity/examples/example_4/test/test_runners/meson.build +13 -16
  881. data/vendor/cmock/vendor/unity/examples/unity_config.h +244 -263
  882. data/vendor/cmock/vendor/unity/extras/eclipse/error_parsers.txt +26 -26
  883. data/vendor/cmock/vendor/unity/extras/fixture/readme.md +29 -17
  884. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +310 -275
  885. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +83 -83
  886. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +50 -50
  887. data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +72 -72
  888. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +20 -20
  889. data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -39
  890. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +245 -245
  891. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +32 -32
  892. data/vendor/cmock/vendor/unity/extras/memory/readme.md +49 -49
  893. data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.c +202 -202
  894. data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.h +60 -60
  895. data/vendor/cmock/vendor/unity/extras/memory/test/Makefile +78 -78
  896. data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_Test.c +325 -325
  897. data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +49 -49
  898. data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.c +56 -56
  899. data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.h +16 -16
  900. data/vendor/cmock/vendor/unity/meson.build +48 -69
  901. data/vendor/cmock/vendor/unity/src/meson.build +11 -16
  902. data/vendor/cmock/vendor/unity/src/unity.c +2109 -2085
  903. data/vendor/cmock/vendor/unity/src/unity.h +661 -617
  904. data/vendor/cmock/vendor/unity/src/unity_internals.h +1030 -1002
  905. data/vendor/cmock/vendor/unity/test/Makefile +159 -67
  906. data/vendor/cmock/vendor/unity/test/expectdata/testsample_cmd.c +61 -61
  907. data/vendor/cmock/vendor/unity/test/expectdata/testsample_def.c +57 -57
  908. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.c +55 -55
  909. data/vendor/cmock/vendor/unity/test/expectdata/testsample_head1.h +15 -15
  910. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -80
  911. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_def.c +76 -76
  912. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -75
  913. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -13
  914. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -89
  915. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -89
  916. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_param.c +77 -77
  917. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -89
  918. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -89
  919. data/vendor/cmock/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -90
  920. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new1.c +67 -67
  921. data/vendor/cmock/vendor/unity/test/expectdata/testsample_new2.c +70 -70
  922. data/vendor/cmock/vendor/unity/test/expectdata/testsample_param.c +58 -58
  923. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run1.c +67 -67
  924. data/vendor/cmock/vendor/unity/test/expectdata/testsample_run2.c +70 -70
  925. data/vendor/cmock/vendor/unity/test/expectdata/testsample_yaml.c +71 -71
  926. data/vendor/cmock/vendor/unity/test/rakefile +163 -124
  927. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +315 -269
  928. data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -158
  929. data/vendor/cmock/vendor/unity/test/targets/ansi.yml +44 -49
  930. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +72 -78
  931. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +71 -78
  932. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +45 -49
  933. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +46 -50
  934. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +43 -47
  935. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +55 -59
  936. data/vendor/cmock/vendor/unity/test/targets/gcc_manual_math.yml +43 -47
  937. data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +91 -101
  938. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +98 -90
  939. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +92 -80
  940. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +92 -80
  941. data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +90 -94
  942. data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +94 -84
  943. data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +112 -95
  944. data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +99 -86
  945. data/vendor/cmock/vendor/unity/test/testdata/CException.h +11 -11
  946. data/vendor/cmock/vendor/unity/test/testdata/Defs.h +8 -8
  947. data/vendor/cmock/vendor/unity/test/testdata/cmock.h +14 -14
  948. data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +13 -13
  949. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +189 -189
  950. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +70 -70
  951. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +197 -197
  952. data/vendor/cmock/vendor/unity/test/tests/self_assessment_utils.h +144 -0
  953. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1260 -1268
  954. data/vendor/cmock/vendor/unity/test/tests/test_unity_arrays.c +2874 -0
  955. data/vendor/cmock/vendor/unity/test/tests/test_unity_core.c +371 -0
  956. data/vendor/cmock/vendor/unity/test/tests/test_unity_doubles.c +773 -0
  957. data/vendor/cmock/vendor/unity/test/tests/test_unity_floats.c +884 -0
  958. data/vendor/cmock/vendor/unity/test/tests/test_unity_integers.c +2847 -0
  959. data/vendor/cmock/vendor/unity/test/tests/test_unity_integers_64.c +773 -0
  960. data/vendor/cmock/vendor/unity/test/tests/test_unity_memory.c +81 -0
  961. data/vendor/{unity/test/tests/testparameterized.c → cmock/vendor/unity/test/tests/test_unity_parameterized.c} +171 -171
  962. data/vendor/cmock/vendor/unity/test/tests/test_unity_strings.c +329 -0
  963. data/vendor/cmock/vendor/unity/unityConfig.cmake +1 -0
  964. data/vendor/deep_merge/MIT-LICENSE +20 -20
  965. data/vendor/deep_merge/README +94 -94
  966. data/vendor/deep_merge/Rakefile +28 -28
  967. data/vendor/deep_merge/lib/deep_merge.rb +211 -211
  968. data/vendor/deep_merge/test/test_deep_merge.rb +553 -553
  969. data/vendor/diy/History.txt +28 -28
  970. data/vendor/diy/README.rdoc +233 -233
  971. data/vendor/diy/Rakefile +33 -33
  972. data/vendor/diy/TODO.txt +9 -9
  973. data/vendor/diy/diy.gemspec +131 -131
  974. data/vendor/diy/lib/diy/factory.rb +36 -36
  975. data/vendor/diy/lib/diy.rb +403 -403
  976. data/vendor/diy/sample_code/car.rb +7 -7
  977. data/vendor/diy/sample_code/chassis.rb +5 -5
  978. data/vendor/diy/sample_code/diy_example.rb +26 -26
  979. data/vendor/diy/sample_code/engine.rb +5 -5
  980. data/vendor/diy/sample_code/objects.yml +10 -10
  981. data/vendor/diy/test/constructor.rb +119 -119
  982. data/vendor/diy/test/diy_test.rb +608 -608
  983. data/vendor/diy/test/factory_test.rb +79 -79
  984. data/vendor/diy/test/files/broken_construction.yml +7 -7
  985. data/vendor/diy/test/files/cat/cat.rb +3 -3
  986. data/vendor/diy/test/files/cat/extra_conflict.yml +5 -5
  987. data/vendor/diy/test/files/cat/heritage.rb +2 -2
  988. data/vendor/diy/test/files/cat/needs_input.yml +3 -3
  989. data/vendor/diy/test/files/cat/the_cat_lineage.rb +1 -1
  990. data/vendor/diy/test/files/dog/dog_model.rb +3 -3
  991. data/vendor/diy/test/files/dog/dog_presenter.rb +3 -3
  992. data/vendor/diy/test/files/dog/dog_view.rb +2 -2
  993. data/vendor/diy/test/files/dog/file_resolver.rb +2 -2
  994. data/vendor/diy/test/files/dog/other_thing.rb +2 -2
  995. data/vendor/diy/test/files/dog/simple.yml +11 -11
  996. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +7 -7
  997. data/vendor/diy/test/files/donkey/foo.rb +8 -8
  998. data/vendor/diy/test/files/factory/beef.rb +5 -5
  999. data/vendor/diy/test/files/factory/dog.rb +6 -6
  1000. data/vendor/diy/test/files/factory/factory.yml +19 -19
  1001. data/vendor/diy/test/files/factory/farm/llama.rb +7 -7
  1002. data/vendor/diy/test/files/factory/farm/pork.rb +7 -7
  1003. data/vendor/diy/test/files/factory/kitten.rb +13 -13
  1004. data/vendor/diy/test/files/fud/objects.yml +13 -13
  1005. data/vendor/diy/test/files/fud/toy.rb +14 -14
  1006. data/vendor/diy/test/files/functions/attached_things_builder.rb +1 -1
  1007. data/vendor/diy/test/files/functions/invalid_method.yml +4 -4
  1008. data/vendor/diy/test/files/functions/method_extractor.rb +2 -2
  1009. data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -5
  1010. data/vendor/diy/test/files/functions/objects.yml +21 -21
  1011. data/vendor/diy/test/files/functions/thing.rb +2 -2
  1012. data/vendor/diy/test/files/functions/thing_builder.rb +24 -24
  1013. data/vendor/diy/test/files/functions/things_builder.rb +2 -2
  1014. data/vendor/diy/test/files/gnu/objects.yml +14 -14
  1015. data/vendor/diy/test/files/gnu/thinger.rb +7 -7
  1016. data/vendor/diy/test/files/goat/base.rb +8 -8
  1017. data/vendor/diy/test/files/goat/can.rb +6 -6
  1018. data/vendor/diy/test/files/goat/goat.rb +6 -6
  1019. data/vendor/diy/test/files/goat/objects.yml +12 -12
  1020. data/vendor/diy/test/files/goat/paper.rb +6 -6
  1021. data/vendor/diy/test/files/goat/plane.rb +7 -7
  1022. data/vendor/diy/test/files/goat/shirt.rb +6 -6
  1023. data/vendor/diy/test/files/goat/wings.rb +8 -8
  1024. data/vendor/diy/test/files/horse/holder_thing.rb +3 -3
  1025. data/vendor/diy/test/files/horse/objects.yml +7 -7
  1026. data/vendor/diy/test/files/namespace/animal/bird.rb +5 -5
  1027. data/vendor/diy/test/files/namespace/animal/cat.rb +5 -5
  1028. data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +8 -8
  1029. data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +7 -7
  1030. data/vendor/diy/test/files/namespace/bad_module_specified.yml +8 -8
  1031. data/vendor/diy/test/files/namespace/class_name_combine.yml +8 -8
  1032. data/vendor/diy/test/files/namespace/no_module_specified.yml +8 -8
  1033. data/vendor/diy/test/files/namespace/objects.yml +21 -21
  1034. data/vendor/diy/test/files/namespace/road.rb +2 -2
  1035. data/vendor/diy/test/files/namespace/sky.rb +2 -2
  1036. data/vendor/diy/test/files/namespace/subcontext.yml +22 -22
  1037. data/vendor/diy/test/files/non_singleton/air.rb +2 -2
  1038. data/vendor/diy/test/files/non_singleton/fat_cat.rb +3 -3
  1039. data/vendor/diy/test/files/non_singleton/objects.yml +19 -19
  1040. data/vendor/diy/test/files/non_singleton/pig.rb +3 -3
  1041. data/vendor/diy/test/files/non_singleton/thread_spinner.rb +3 -3
  1042. data/vendor/diy/test/files/non_singleton/tick.rb +3 -3
  1043. data/vendor/diy/test/files/non_singleton/yard.rb +2 -2
  1044. data/vendor/diy/test/files/yak/core_model.rb +3 -3
  1045. data/vendor/diy/test/files/yak/core_presenter.rb +3 -3
  1046. data/vendor/diy/test/files/yak/core_view.rb +1 -1
  1047. data/vendor/diy/test/files/yak/data_source.rb +1 -1
  1048. data/vendor/diy/test/files/yak/fringe_model.rb +3 -3
  1049. data/vendor/diy/test/files/yak/fringe_presenter.rb +3 -3
  1050. data/vendor/diy/test/files/yak/fringe_view.rb +1 -1
  1051. data/vendor/diy/test/files/yak/giant_squid.rb +3 -3
  1052. data/vendor/diy/test/files/yak/krill.rb +2 -2
  1053. data/vendor/diy/test/files/yak/my_objects.yml +21 -21
  1054. data/vendor/diy/test/files/yak/sub_sub_context_test.yml +27 -27
  1055. data/vendor/diy/test/test_helper.rb +55 -55
  1056. data/vendor/hardmock/CHANGES +78 -78
  1057. data/vendor/hardmock/LICENSE +7 -7
  1058. data/vendor/hardmock/README +70 -70
  1059. data/vendor/hardmock/Rakefile +8 -8
  1060. data/vendor/hardmock/config/environment.rb +12 -12
  1061. data/vendor/hardmock/lib/assert_error.rb +23 -23
  1062. data/vendor/hardmock/lib/extend_test_unit.rb +14 -14
  1063. data/vendor/hardmock/lib/hardmock/errors.rb +22 -22
  1064. data/vendor/hardmock/lib/hardmock/expectation.rb +229 -229
  1065. data/vendor/hardmock/lib/hardmock/expectation_builder.rb +9 -9
  1066. data/vendor/hardmock/lib/hardmock/expector.rb +26 -26
  1067. data/vendor/hardmock/lib/hardmock/method_cleanout.rb +33 -33
  1068. data/vendor/hardmock/lib/hardmock/mock.rb +180 -180
  1069. data/vendor/hardmock/lib/hardmock/mock_control.rb +53 -53
  1070. data/vendor/hardmock/lib/hardmock/stubbing.rb +210 -210
  1071. data/vendor/hardmock/lib/hardmock/trapper.rb +31 -31
  1072. data/vendor/hardmock/lib/hardmock/utils.rb +9 -9
  1073. data/vendor/hardmock/lib/hardmock.rb +86 -86
  1074. data/vendor/hardmock/lib/test_unit_before_after.rb +169 -169
  1075. data/vendor/hardmock/rake_tasks/rdoc.rake +19 -19
  1076. data/vendor/hardmock/rake_tasks/rdoc_options.rb +4 -4
  1077. data/vendor/hardmock/rake_tasks/test.rake +22 -22
  1078. data/vendor/hardmock/test/functional/assert_error_test.rb +52 -52
  1079. data/vendor/hardmock/test/functional/auto_verify_test.rb +178 -178
  1080. data/vendor/hardmock/test/functional/direct_mock_usage_test.rb +396 -396
  1081. data/vendor/hardmock/test/functional/hardmock_test.rb +434 -434
  1082. data/vendor/hardmock/test/functional/stubbing_test.rb +479 -479
  1083. data/vendor/hardmock/test/test_helper.rb +43 -43
  1084. data/vendor/hardmock/test/unit/expectation_builder_test.rb +19 -19
  1085. data/vendor/hardmock/test/unit/expectation_test.rb +372 -372
  1086. data/vendor/hardmock/test/unit/expector_test.rb +57 -57
  1087. data/vendor/hardmock/test/unit/method_cleanout_test.rb +36 -36
  1088. data/vendor/hardmock/test/unit/mock_control_test.rb +175 -175
  1089. data/vendor/hardmock/test/unit/mock_test.rb +279 -279
  1090. data/vendor/hardmock/test/unit/test_unit_before_after_test.rb +452 -452
  1091. data/vendor/hardmock/test/unit/trapper_test.rb +62 -62
  1092. data/vendor/hardmock/test/unit/verify_error_test.rb +40 -40
  1093. data/vendor/unity/CMakeLists.txt +133 -31
  1094. data/vendor/unity/LICENSE.txt +21 -21
  1095. data/vendor/unity/README.md +191 -191
  1096. data/vendor/unity/auto/colour_prompt.rb +119 -119
  1097. data/vendor/unity/auto/colour_reporter.rb +39 -39
  1098. data/vendor/unity/auto/generate_config.yml +36 -36
  1099. data/vendor/unity/auto/generate_module.rb +312 -309
  1100. data/vendor/unity/auto/generate_test_runner.rb +511 -495
  1101. data/vendor/unity/auto/parse_output.rb +322 -322
  1102. data/vendor/unity/auto/run_test.erb +37 -36
  1103. data/vendor/unity/auto/stylize_as_junit.rb +251 -251
  1104. data/vendor/unity/auto/test_file_filter.rb +25 -25
  1105. data/vendor/unity/auto/type_sanitizer.rb +6 -6
  1106. data/vendor/unity/auto/unity_test_summary.py +139 -139
  1107. data/vendor/unity/auto/unity_test_summary.rb +135 -135
  1108. data/vendor/unity/auto/unity_to_junit.py +146 -146
  1109. data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +206 -206
  1110. data/vendor/unity/docs/UnityAssertionsReference.md +831 -850
  1111. data/vendor/unity/docs/UnityConfigurationGuide.md +563 -541
  1112. data/vendor/unity/docs/UnityGettingStartedGuide.md +251 -251
  1113. data/vendor/unity/docs/UnityHelperScriptsGuide.md +278 -266
  1114. data/vendor/unity/examples/example_1/makefile +72 -72
  1115. data/vendor/unity/examples/example_1/readme.txt +4 -4
  1116. data/vendor/unity/examples/example_1/src/ProductionCode.c +24 -24
  1117. data/vendor/unity/examples/example_1/src/ProductionCode.h +3 -3
  1118. data/vendor/unity/examples/example_1/src/ProductionCode2.c +11 -11
  1119. data/vendor/unity/examples/example_1/src/ProductionCode2.h +2 -2
  1120. data/vendor/unity/examples/example_1/test/TestProductionCode.c +62 -62
  1121. data/vendor/unity/examples/example_1/test/TestProductionCode2.c +31 -31
  1122. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode2_Runner.c +53 -53
  1123. data/vendor/unity/examples/example_1/test/test_runners/TestProductionCode_Runner.c +57 -57
  1124. data/vendor/unity/examples/example_2/makefile +71 -71
  1125. data/vendor/unity/examples/example_2/readme.txt +4 -4
  1126. data/vendor/unity/examples/example_2/src/ProductionCode.c +24 -24
  1127. data/vendor/unity/examples/example_2/src/ProductionCode.h +3 -3
  1128. data/vendor/unity/examples/example_2/src/ProductionCode2.c +11 -11
  1129. data/vendor/unity/examples/example_2/src/ProductionCode2.h +2 -2
  1130. data/vendor/unity/examples/example_2/test/TestProductionCode.c +64 -64
  1131. data/vendor/unity/examples/example_2/test/TestProductionCode2.c +33 -33
  1132. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +8 -8
  1133. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +10 -10
  1134. data/vendor/unity/examples/example_2/test/test_runners/all_tests.c +12 -12
  1135. data/vendor/unity/examples/example_3/helper/UnityHelper.c +10 -10
  1136. data/vendor/unity/examples/example_3/helper/UnityHelper.h +12 -12
  1137. data/vendor/unity/examples/example_3/rakefile.rb +38 -38
  1138. data/vendor/unity/examples/example_3/rakefile_helper.rb +250 -250
  1139. data/vendor/unity/examples/example_3/readme.txt +13 -13
  1140. data/vendor/unity/examples/example_3/src/ProductionCode.c +24 -24
  1141. data/vendor/unity/examples/example_3/src/ProductionCode.h +3 -3
  1142. data/vendor/unity/examples/example_3/src/ProductionCode2.c +11 -11
  1143. data/vendor/unity/examples/example_3/src/ProductionCode2.h +2 -2
  1144. data/vendor/unity/examples/example_3/target_gcc_32.yml +47 -47
  1145. data/vendor/unity/examples/example_3/test/TestProductionCode.c +62 -62
  1146. data/vendor/unity/examples/example_3/test/TestProductionCode2.c +31 -31
  1147. data/vendor/unity/examples/example_4/meson.build +12 -17
  1148. data/vendor/unity/examples/example_4/readme.txt +14 -14
  1149. data/vendor/unity/examples/example_4/src/ProductionCode.c +24 -24
  1150. data/vendor/unity/examples/example_4/src/ProductionCode.h +3 -3
  1151. data/vendor/unity/examples/example_4/src/ProductionCode2.c +11 -11
  1152. data/vendor/unity/examples/example_4/src/ProductionCode2.h +2 -2
  1153. data/vendor/unity/examples/example_4/src/meson.build +16 -21
  1154. data/vendor/unity/examples/example_4/subprojects/unity.wrap +4 -4
  1155. data/vendor/unity/examples/example_4/test/TestProductionCode.c +63 -63
  1156. data/vendor/unity/examples/example_4/test/TestProductionCode2.c +35 -35
  1157. data/vendor/unity/examples/example_4/test/meson.build +7 -12
  1158. data/vendor/unity/examples/example_4/test/test_runners/TestProductionCode2_Runner.c +53 -53
  1159. data/vendor/unity/examples/example_4/test/test_runners/TestProductionCode_Runner.c +57 -57
  1160. data/vendor/unity/examples/example_4/test/test_runners/meson.build +13 -16
  1161. data/vendor/unity/examples/unity_config.h +244 -263
  1162. data/vendor/unity/extras/eclipse/error_parsers.txt +26 -26
  1163. data/vendor/unity/extras/fixture/readme.md +29 -17
  1164. data/vendor/unity/extras/fixture/src/unity_fixture.c +310 -275
  1165. data/vendor/unity/extras/fixture/src/unity_fixture.h +83 -83
  1166. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +50 -50
  1167. data/vendor/unity/extras/fixture/test/Makefile +72 -72
  1168. data/vendor/unity/extras/fixture/test/main/AllTests.c +20 -20
  1169. data/vendor/unity/extras/fixture/test/template_fixture_tests.c +39 -39
  1170. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +245 -245
  1171. data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +32 -32
  1172. data/vendor/unity/extras/memory/readme.md +49 -49
  1173. data/vendor/unity/extras/memory/src/unity_memory.c +202 -202
  1174. data/vendor/unity/extras/memory/src/unity_memory.h +60 -60
  1175. data/vendor/unity/extras/memory/test/Makefile +78 -78
  1176. data/vendor/unity/extras/memory/test/unity_memory_Test.c +325 -325
  1177. data/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +49 -49
  1178. data/vendor/unity/extras/memory/test/unity_output_Spy.c +56 -56
  1179. data/vendor/unity/extras/memory/test/unity_output_Spy.h +16 -16
  1180. data/vendor/unity/meson.build +48 -69
  1181. data/vendor/unity/src/meson.build +11 -16
  1182. data/vendor/unity/src/unity.c +2109 -2085
  1183. data/vendor/unity/src/unity.h +661 -617
  1184. data/vendor/unity/src/unity_internals.h +1030 -1002
  1185. data/vendor/unity/test/Makefile +159 -67
  1186. data/vendor/unity/test/expectdata/testsample_cmd.c +61 -61
  1187. data/vendor/unity/test/expectdata/testsample_def.c +57 -57
  1188. data/vendor/unity/test/expectdata/testsample_head1.c +55 -55
  1189. data/vendor/unity/test/expectdata/testsample_head1.h +15 -15
  1190. data/vendor/unity/test/expectdata/testsample_mock_cmd.c +80 -80
  1191. data/vendor/unity/test/expectdata/testsample_mock_def.c +76 -76
  1192. data/vendor/unity/test/expectdata/testsample_mock_head1.c +75 -75
  1193. data/vendor/unity/test/expectdata/testsample_mock_head1.h +13 -13
  1194. data/vendor/unity/test/expectdata/testsample_mock_new1.c +89 -89
  1195. data/vendor/unity/test/expectdata/testsample_mock_new2.c +89 -89
  1196. data/vendor/unity/test/expectdata/testsample_mock_param.c +77 -77
  1197. data/vendor/unity/test/expectdata/testsample_mock_run1.c +89 -89
  1198. data/vendor/unity/test/expectdata/testsample_mock_run2.c +89 -89
  1199. data/vendor/unity/test/expectdata/testsample_mock_yaml.c +90 -90
  1200. data/vendor/unity/test/expectdata/testsample_new1.c +67 -67
  1201. data/vendor/unity/test/expectdata/testsample_new2.c +70 -70
  1202. data/vendor/unity/test/expectdata/testsample_param.c +58 -58
  1203. data/vendor/unity/test/expectdata/testsample_run1.c +67 -67
  1204. data/vendor/unity/test/expectdata/testsample_run2.c +70 -70
  1205. data/vendor/unity/test/expectdata/testsample_yaml.c +71 -71
  1206. data/vendor/unity/test/rakefile +163 -124
  1207. data/vendor/unity/test/rakefile_helper.rb +315 -269
  1208. data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +158 -158
  1209. data/vendor/unity/test/targets/ansi.yml +44 -49
  1210. data/vendor/unity/test/targets/clang_file.yml +72 -78
  1211. data/vendor/unity/test/targets/clang_strict.yml +71 -78
  1212. data/vendor/unity/test/targets/gcc_32.yml +45 -49
  1213. data/vendor/unity/test/targets/gcc_64.yml +46 -50
  1214. data/vendor/unity/test/targets/gcc_auto_limits.yml +43 -47
  1215. data/vendor/unity/test/targets/gcc_auto_stdint.yml +55 -59
  1216. data/vendor/unity/test/targets/gcc_manual_math.yml +43 -47
  1217. data/vendor/unity/test/targets/hitech_picc18.yml +91 -101
  1218. data/vendor/unity/test/targets/iar_arm_v4.yml +98 -90
  1219. data/vendor/unity/test/targets/iar_arm_v5.yml +92 -80
  1220. data/vendor/unity/test/targets/iar_arm_v5_3.yml +92 -80
  1221. data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +90 -94
  1222. data/vendor/unity/test/targets/iar_cortexm3_v5.yml +94 -84
  1223. data/vendor/unity/test/targets/iar_msp430.yml +112 -95
  1224. data/vendor/unity/test/targets/iar_sh2a_v6.yml +99 -86
  1225. data/vendor/unity/test/testdata/CException.h +11 -11
  1226. data/vendor/unity/test/testdata/Defs.h +8 -8
  1227. data/vendor/unity/test/testdata/cmock.h +14 -14
  1228. data/vendor/unity/test/testdata/mockMock.h +13 -13
  1229. data/vendor/unity/test/testdata/testRunnerGenerator.c +189 -189
  1230. data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +70 -70
  1231. data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +197 -197
  1232. data/vendor/unity/test/tests/self_assessment_utils.h +144 -0
  1233. data/vendor/unity/test/tests/test_generate_test_runner.rb +1260 -1268
  1234. data/vendor/unity/test/tests/test_unity_arrays.c +2874 -0
  1235. data/vendor/unity/test/tests/test_unity_core.c +371 -0
  1236. data/vendor/unity/test/tests/test_unity_doubles.c +773 -0
  1237. data/vendor/unity/test/tests/test_unity_floats.c +884 -0
  1238. data/vendor/unity/test/tests/test_unity_integers.c +2847 -0
  1239. data/vendor/unity/test/tests/test_unity_integers_64.c +773 -0
  1240. data/vendor/unity/test/tests/test_unity_memory.c +81 -0
  1241. data/vendor/{cmock/vendor/unity/test/tests/testparameterized.c → unity/test/tests/test_unity_parameterized.c} +171 -171
  1242. data/vendor/unity/test/tests/test_unity_strings.c +329 -0
  1243. data/vendor/unity/unityConfig.cmake +1 -0
  1244. metadata +227 -63
  1245. data/ceedling.sublime-project +0 -25
  1246. data/ceedling.sublime-workspace +0 -1276
  1247. data/docs/CeedlingPacket.odt +0 -0
  1248. data/docs/CeedlingPacket.pdf +0 -0
  1249. data/out.fail +0 -22
  1250. data/plugins/bullseye/readme.txt +0 -0
  1251. data/vendor/c_exception/LICENSE.txt +0 -30
  1252. data/vendor/c_exception/Rakefile +0 -42
  1253. data/vendor/c_exception/makefile +0 -24
  1254. data/vendor/c_exception/test/TestException_Runner.c +0 -67
  1255. data/vendor/cmock/vendor/c_exception/LICENSE.txt +0 -30
  1256. data/vendor/cmock/vendor/c_exception/Rakefile +0 -42
  1257. data/vendor/cmock/vendor/c_exception/makefile +0 -24
  1258. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +0 -67
  1259. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +0 -183
  1260. data/vendor/cmock/vendor/unity/extras/memory/rakefile.rb +0 -45
  1261. data/vendor/cmock/vendor/unity/extras/memory/rakefile_helper.rb +0 -187
  1262. data/vendor/cmock/vendor/unity/src/CMakeLists.txt +0 -22
  1263. data/vendor/unity/extras/fixture/rakefile.rb +0 -44
  1264. data/vendor/unity/extras/fixture/rakefile_helper.rb +0 -183
  1265. data/vendor/unity/extras/memory/rakefile.rb +0 -45
  1266. data/vendor/unity/extras/memory/rakefile_helper.rb +0 -187
  1267. data/vendor/unity/src/CMakeLists.txt +0 -22
  1268. data/vendor/unity/test/tests/testunity.c +0 -8168
@@ -1,575 +1,616 @@
1
- require 'fileutils'
2
- require 'tmpdir'
3
- require 'yaml'
4
-
5
- Modulegenerator = Struct.new(:project_root, :source_root, :inc_root, :test_root) do
6
- def initialize(project_root: "./", source_root: "src/", inc_root: "src/", test_root: "test/")
7
- super(project_root, source_root, inc_root, test_root)
8
- end
9
- end
10
-
11
- def test_asset_path(asset_file_name)
12
- File.join(File.dirname(__FILE__), '..', 'assets', asset_file_name)
13
- end
14
-
15
- def convert_slashes(path)
16
- if RUBY_PLATFORM.downcase.match(/mingw|win32/)
17
- path.gsub("/","\\")
18
- else
19
- path
20
- end
21
- end
22
-
23
- def _add_path_in_section(project_file_path, path, section)
24
- project_file_contents = File.readlines(project_file_path)
25
- paths_index = project_file_contents.index(":paths:\n")
26
-
27
- if paths_index.nil?
28
- # Something wrong with project.yml file, no paths?
29
- return
30
- end
31
-
32
- section_index = paths_index + project_file_contents[paths_index..-1].index(" :#{section}:\n")
33
-
34
- project_file_contents.insert(section_index + 1, " - #{path}\n")
35
-
36
- File.open(project_file_path, "w+") do |f|
37
- f.puts(project_file_contents)
38
- end
39
- end
40
-
41
- def add_source_path(path)
42
- _add_path_in_section("project.yml", path, "source")
43
- end
44
-
45
- def add_test_path(path)
46
- _add_path_in_section("project.yml", path, "test")
47
- end
48
-
49
- def add_module_generator_section(project_file_path, mod_gen)
50
- project_file_contents = File.readlines(project_file_path)
51
- module_gen_index = project_file_contents.index(":module_generator:\n")
52
-
53
- unless module_gen_index.nil?
54
- # already a module_generator in project file, delete it
55
- module_gen_end_index = project_file_contents[module_gen_index..-1].index("\n")
56
- project_file_contents.slice[module_gen_index..module_gen_end_index]
57
- end
58
-
59
- project_file_contents.insert(-2, "\n")
60
- project_file_contents.insert(-2, ":module_generator:\n")
61
- project_file_contents.insert(-2, " :project_root: #{mod_gen.project_root}\n")
62
- project_file_contents.insert(-2, " :source_root: #{mod_gen.source_root}\n")
63
- project_file_contents.insert(-2, " :inc_root: #{mod_gen.inc_root}\n")
64
- project_file_contents.insert(-2, " :test_root: #{mod_gen.test_root}\n")
65
- project_file_contents.insert(-2, "\n")
66
-
67
- File.open(project_file_path, "w+") do |f|
68
- f.puts(project_file_contents)
69
- end
70
- end
71
-
72
- class GemDirLayout
73
- attr_reader :gem_dir_base_name
74
-
75
- def initialize(install_dir)
76
- @gem_dir_base_name = "gems"
77
- @d = File.join install_dir, @gem_dir_base_name
78
- FileUtils.mkdir_p @d
79
- end
80
-
81
- def install_dir; convert_slashes(@d) end
82
- def bin; File.join(@d, 'bin') end
83
- def lib; File.join(@d, 'lib') end
84
- end
85
-
86
- class SystemContext
87
- class VerificationFailed < Exception; end
88
- class InvalidBackupEnv < Exception; end
89
-
90
- attr_reader :dir, :gem
91
-
92
- def initialize
93
- @dir = Dir.mktmpdir
94
- @gem = GemDirLayout.new(@dir)
95
- end
96
-
97
- def done!
98
- FileUtils.rm_rf(@dir)
99
- end
100
-
101
- def deploy_gem
102
- git_repo = File.expand_path(File.join(File.dirname(__FILE__), '..'))
103
- bundler_gem_file_data = [ %Q{source "http://rubygems.org/"},
104
- %Q{gem "rake"},
105
- %Q{gem "ceedling", :path => '#{git_repo.to_s}'}
106
- ].join("\n")
107
-
108
- File.open(File.join(@dir, "Gemfile"), "w+") do |f|
109
- f.write(bundler_gem_file_data)
110
- end
111
-
112
- Dir.chdir @dir do
113
- with_constrained_env do
114
- `bundle install --path #{@gem.install_dir}`
115
- checks = ["bundle exec ruby -S ceedling 2>&1"]
116
- checks.each do |c|
117
- `#{c}`
118
- #raise VerificationFailed.new(c) unless $?.success?
119
- end
120
- end
121
- end
122
- end
123
-
124
- # Does a few things:
125
- # - Configures the environment.
126
- # - Runs the command from the temporary context directory.
127
- # - Restores everything to where it was when finished.
128
- def context_exec(cmd, *args)
129
- with_context do
130
- `#{args.unshift(cmd).join(" ")}`
131
- end
132
- end
133
-
134
- def with_context
135
- Dir.chdir @dir do |current_dir|
136
- with_constrained_env do
137
- ENV['RUBYLIB'] = @gem.lib
138
- ENV['RUBYPATH'] = @gem.bin
139
-
140
- yield
141
- end
142
- end
143
- end
144
-
145
- def backup_env
146
- # Force a deep clone. Hacktacular, but works.
147
- @_env = YAML.load(ENV.to_hash.to_yaml)
148
- end
149
-
150
- def reduce_env(destroy_keys=[])
151
- ENV.keys.each {|k| ENV.delete(k) if destroy_keys.include?(k) }
152
- end
153
-
154
- def constrain_env
155
- destroy_keys = %w{BUNDLE_GEMFILE BUNDLE_BIN_PATH RUBYOPT}
156
- reduce_env(destroy_keys)
157
- end
158
-
159
- def restore_env
160
- if @_env
161
- @_env.each_pair {|k,v| ENV[k] = v}
162
- else
163
- raise InvalidBackupEnv.new
164
- end
165
- end
166
-
167
- def with_constrained_env
168
- begin
169
- backup_env
170
- constrain_env
171
- yield
172
- ensure
173
- restore_env
174
- end
175
- end
176
- end
177
-
178
- module CeedlingTestCases
179
- def can_create_projects
180
- @c.with_context do
181
- Dir.chdir @proj_name do
182
- expect(File.exists?("project.yml")).to eq true
183
- expect(File.exists?("src")).to eq true
184
- expect(File.exists?("test")).to eq true
185
- expect(File.exists?("test/support")).to eq true
186
- expect(File.exists?("test/support/.gitkeep")).to eq true
187
- end
188
- end
189
- end
190
-
191
- def has_an_ignore
192
- @c.with_context do
193
- Dir.chdir @proj_name do
194
- expect(File.exists?(".gitignore")).to eq true
195
- end
196
- end
197
- end
198
-
199
- def can_upgrade_projects
200
- @c.with_context do
201
- output = `bundle exec ruby -S ceedling upgrade --local --docs #{@proj_name} 2>&1`
202
- expect($?.exitstatus).to match(0)
203
- expect(output).to match(/upgraded!/i)
204
- Dir.chdir @proj_name do
205
- expect(File.exists?("project.yml")).to eq true
206
- expect(File.exists?("src")).to eq true
207
- expect(File.exists?("test")).to eq true
208
- all_docs = Dir["vendor/ceedling/docs/*.pdf"].length + Dir["vendor/ceedling/docs/*.md"].length
209
- expect(all_docs).to be >= 4
210
- end
211
- end
212
- end
213
-
214
- def contains_a_vendor_directory
215
- @c.with_context do
216
- Dir.chdir @proj_name do
217
- expect(File.exists?("vendor/ceedling")).to eq true
218
- end
219
- end
220
- end
221
-
222
- def does_not_contain_a_vendor_directory
223
- @c.with_context do
224
- Dir.chdir @proj_name do
225
- expect(File.exists?("vendor/ceedling")).to eq false
226
- end
227
- end
228
- end
229
-
230
- def contains_documentation
231
- @c.with_context do
232
- Dir.chdir @proj_name do
233
- all_docs = Dir["vendor/ceedling/docs/*.pdf"].length + Dir["vendor/ceedling/docs/*.md"].length
234
- expect(all_docs).to be >= 4
235
- end
236
- end
237
- end
238
-
239
- def does_not_contain_documentation
240
- @c.with_context do
241
- Dir.chdir @proj_name do
242
- expect(File.exists?("vendor/ceedling/docs")).to eq false
243
- expect(Dir["vendor/ceedling/**/*.pdf"].length).to eq 0
244
- end
245
- end
246
- end
247
-
248
- def can_test_projects_with_success
249
- @c.with_context do
250
- Dir.chdir @proj_name do
251
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
252
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
253
- FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
254
-
255
- output = `bundle exec ruby -S ceedling test:all 2>&1`
256
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
257
- expect(output).to match(/TESTED:\s+\d/)
258
- expect(output).to match(/PASSED:\s+\d/)
259
- expect(output).to match(/FAILED:\s+\d/)
260
- expect(output).to match(/IGNORED:\s+\d/)
261
- end
262
- end
263
- end
264
-
265
- def can_test_projects_with_success_test_alias
266
- @c.with_context do
267
- Dir.chdir @proj_name do
268
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
269
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
270
- FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
271
-
272
- output = `bundle exec ruby -S ceedling test 2>&1`
273
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
274
- expect(output).to match(/TESTED:\s+\d/)
275
- expect(output).to match(/PASSED:\s+\d/)
276
- expect(output).to match(/FAILED:\s+\d/)
277
- expect(output).to match(/IGNORED:\s+\d/)
278
- end
279
- end
280
- end
281
-
282
- def can_test_projects_with_success_default
283
- @c.with_context do
284
- Dir.chdir @proj_name do
285
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
286
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
287
- FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
288
-
289
- output = `bundle exec ruby -S ceedling 2>&1`
290
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
291
- expect(output).to match(/TESTED:\s+\d/)
292
- expect(output).to match(/PASSED:\s+\d/)
293
- expect(output).to match(/FAILED:\s+\d/)
294
- expect(output).to match(/IGNORED:\s+\d/)
295
- end
296
- end
297
- end
298
-
299
- def can_test_projects_with_fail
300
- @c.with_context do
301
- Dir.chdir @proj_name do
302
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
303
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
304
- FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
305
-
306
- output = `bundle exec ruby -S ceedling test:all 2>&1`
307
- expect($?.exitstatus).to match(1) # Since a test fails, we return error here
308
- expect(output).to match(/TESTED:\s+\d/)
309
- expect(output).to match(/PASSED:\s+\d/)
310
- expect(output).to match(/FAILED:\s+\d/)
311
- expect(output).to match(/IGNORED:\s+\d/)
312
- end
313
- end
314
- end
315
- def can_test_projects_with_fail_alias
316
- @c.with_context do
317
- Dir.chdir @proj_name do
318
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
319
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
320
- FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
321
-
322
- output = `bundle exec ruby -S ceedling test 2>&1`
323
- expect($?.exitstatus).to match(1) # Since a test fails, we return error here
324
- expect(output).to match(/TESTED:\s+\d/)
325
- expect(output).to match(/PASSED:\s+\d/)
326
- expect(output).to match(/FAILED:\s+\d/)
327
- expect(output).to match(/IGNORED:\s+\d/)
328
- end
329
- end
330
- end
331
-
332
- def can_test_projects_with_fail_default
333
- @c.with_context do
334
- Dir.chdir @proj_name do
335
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
336
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
337
- FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
338
-
339
- output = `bundle exec ruby -S ceedling 2>&1`
340
- expect($?.exitstatus).to match(1) # Since a test fails, we return error here
341
- expect(output).to match(/TESTED:\s+\d/)
342
- expect(output).to match(/PASSED:\s+\d/)
343
- expect(output).to match(/FAILED:\s+\d/)
344
- expect(output).to match(/IGNORED:\s+\d/)
345
- end
346
- end
347
- end
348
-
349
- def can_test_projects_with_compile_error
350
- @c.with_context do
351
- Dir.chdir @proj_name do
352
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
353
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
354
- FileUtils.cp test_asset_path("test_example_file_boom.c"), 'test/'
355
-
356
- output = `bundle exec ruby -S ceedling test:all 2>&1`
357
- expect($?.exitstatus).to match(1) # Since a test explodes, we return error here
358
- expect(output).to match(/ERROR: Ceedling Failed/)
359
- end
360
- end
361
- end
362
-
363
- def uses_raw_output_report_plugin
364
- @c.with_context do
365
- Dir.chdir @proj_name do
366
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
367
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
368
- FileUtils.cp test_asset_path("test_example_file_verbose.c"), 'test/'
369
-
370
- output = `bundle exec ruby -S ceedling test:all 2>&1`
371
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
372
- expect(output).to match(/TESTED:\s+\d/)
373
- expect(output).to match(/PASSED:\s+\d/)
374
- expect(output).to match(/FAILED:\s+\d/)
375
- expect(output).to match(/IGNORED:\s+\d/)
376
- expect(File.exists?("build/artifacts/test/test_example_file_verbose.log")).to eq true
377
- end
378
- end
379
- end
380
-
381
-
382
- def can_fetch_non_project_help
383
- @c.with_context do
384
- #notice we don't change directory into the project
385
- output = `bundle exec ruby -S ceedling help`
386
- expect($?.exitstatus).to match(0)
387
- expect(output).to match(/ceedling example/i)
388
- expect(output).to match(/ceedling new/i)
389
- expect(output).to match(/ceedling upgrade/i)
390
- expect(output).to match(/ceedling version/i)
391
- end
392
- end
393
-
394
- def can_fetch_project_help
395
- @c.with_context do
396
- Dir.chdir @proj_name do
397
- output = `bundle exec ruby -S ceedling help`
398
- expect($?.exitstatus).to match(0)
399
- expect(output).to match(/ceedling clean/i)
400
- expect(output).to match(/ceedling clobber/i)
401
- expect(output).to match(/ceedling logging/i)
402
- expect(output).to match(/ceedling module:create/i)
403
- expect(output).to match(/ceedling module:destroy/i)
404
- expect(output).to match(/ceedling summary/i)
405
- expect(output).to match(/ceedling test:\*/i)
406
- expect(output).to match(/ceedling test:all/i)
407
- expect(output).to match(/ceedling test:delta/i)
408
- expect(output).to match(/ceedling version/i)
409
- end
410
- end
411
- end
412
-
413
- def can_use_the_module_plugin
414
- @c.with_context do
415
- Dir.chdir @proj_name do
416
- output = `bundle exec ruby -S ceedling module:create[ponies]`
417
- expect($?.exitstatus).to match(0)
418
- expect(output).to match(/Generate Complete/i)
419
- output = `bundle exec ruby -S ceedling test:all`
420
- expect($?.exitstatus).to match(0)
421
- expect(output).to match(/Need to Implement ponies/)
422
- output = `bundle exec ruby -S ceedling module:destroy[ponies]`
423
- expect($?.exitstatus).to match(0)
424
- expect(output).to match(/Destroy Complete/i)
425
-
426
- self.can_use_the_module_plugin_path_extension
427
- self.can_use_the_module_plugin_with_include_path
428
- end
429
- end
430
- end
431
-
432
- def can_use_the_module_plugin_path_extension
433
- @c.with_context do
434
- Dir.chdir @proj_name do
435
- # Module creation
436
- output = `bundle exec ruby -S ceedling module:create[myPonies:ponies]`
437
- expect($?.exitstatus).to match(0)
438
- expect(output).to match(/Generate Complete/i)
439
- expect(File.exists?("myPonies/src/ponies.c")).to eq true
440
- expect(File.exists?("myPonies/src/ponies.h")).to eq true
441
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq true
442
-
443
- # add module path to project file
444
- add_test_path("myPonies/test")
445
- add_source_path("myPonies/src")
446
-
447
- # See if ceedling finds the test in the subdir
448
- output = `bundle exec ruby -S ceedling test:all`
449
- expect($?.exitstatus).to match(0)
450
- expect(output).to match(/Need to Implement ponies/)
451
-
452
- # Module destruction
453
- output = `bundle exec ruby -S ceedling module:destroy[myPonies:ponies]`
454
- expect($?.exitstatus).to match(0)
455
- expect(output).to match(/Destroy Complete/i)
456
- expect(File.exists?("myPonies/src/ponies.c")).to eq false
457
- expect(File.exists?("myPonies/src/ponies.h")).to eq false
458
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq false
459
- end
460
- end
461
- end
462
-
463
- def can_use_the_module_plugin_with_include_path
464
- @c.with_context do
465
- Dir.chdir @proj_name do
466
- # add include path to module generator
467
- mod_gen = Modulegenerator.new(inc_root: "inc/")
468
- add_module_generator_section("project.yml", mod_gen)
469
-
470
- # module creation
471
- output = `bundle exec ruby -S ceedling module:create[myPonies:ponies]`
472
- expect($?.exitstatus).to match(0)
473
- expect(output).to match(/Generate Complete/i)
474
- expect(File.exists?("myPonies/src/ponies.c")).to eq true
475
- expect(File.exists?("myPonies/inc/ponies.h")).to eq true
476
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq true
477
-
478
- # Module destruction
479
- output = `bundle exec ruby -S ceedling module:destroy[myPonies:ponies]`
480
- expect($?.exitstatus).to match(0)
481
- expect(output).to match(/Destroy Complete/i)
482
- expect(File.exists?("myPonies/src/ponies.c")).to eq false
483
- expect(File.exists?("myPonies/inc/ponies.h")).to eq false
484
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq false
485
- end
486
- end
487
- end
488
-
489
- def can_use_the_module_plugin_with_non_default_paths
490
- @c.with_context do
491
- Dir.chdir @proj_name do
492
- # add paths to module generator
493
- mod_gen = Modulegenerator.new({source_root: "foo/", inc_root: "bar/", test_root: "barz/"})
494
- add_module_generator_section("project.yml", mod_gen)
495
-
496
- # module creation
497
- output = `bundle exec ruby -S ceedling module:create[ponies]`
498
- expect($?.exitstatus).to match(0)
499
- expect(output).to match(/Generate Complete/i)
500
- expect(File.exists?("foo/ponies.c")).to eq true
501
- expect(File.exists?("bar/ponies.h")).to eq true
502
- expect(File.exists?("barz/test_ponies.c")).to eq true
503
-
504
- # Module destruction
505
- output = `bundle exec ruby -S ceedling module:destroy[ponies]`
506
- expect($?.exitstatus).to match(0)
507
- expect(output).to match(/Destroy Complete/i)
508
- expect(File.exists?("foo/ponies.c")).to eq false
509
- expect(File.exists?("bar/ponies.h")).to eq false
510
- expect(File.exists?("barz/test_ponies.c")).to eq false
511
- end
512
- end
513
- end
514
-
515
- def handles_creating_the_same_module_twice_using_the_module_plugin
516
- @c.with_context do
517
- Dir.chdir @proj_name do
518
- output = `bundle exec ruby -S ceedling module:create[unicorns]`
519
- expect($?.exitstatus).to match(0)
520
- expect(output).to match(/Generate Complete/i)
521
-
522
- output = `bundle exec ruby -S ceedling module:create[unicorns] 2>&1`
523
- expect($?.exitstatus).to match(1)
524
- expect(output).to match(/ERROR: Ceedling Failed/)
525
-
526
- self.handles_creating_the_same_module_twice_using_the_module_plugin_path_extension
527
- end
528
- end
529
- end
530
-
531
- def handles_creating_the_same_module_twice_using_the_module_plugin
532
- @c.with_context do
533
- Dir.chdir @proj_name do
534
- output = `bundle exec ruby -S ceedling module:create[myUnicorn:unicorns]`
535
- expect($?.exitstatus).to match(0)
536
- expect(output).to match(/Generate Complete/i)
537
-
538
- output = `bundle exec ruby -S ceedling module:create[myUnicorn:unicorns] 2>&1`
539
- expect($?.exitstatus).to match(1)
540
- expect(output).to match(/ERROR: Ceedling Failed/)
541
- end
542
- end
543
- end
544
-
545
- def handles_destroying_a_module_that_does_not_exist_using_the_module_plugin
546
- @c.with_context do
547
- Dir.chdir @proj_name do
548
- output = `bundle exec ruby -S ceedling module:destroy[unknown]`
549
- expect($?.exitstatus).to match(0)
550
-
551
- expect(output).to match(/File src\/unknown\.c does not exist so cannot be removed\./)
552
- expect(output).to match(/File src\/unknown\.h does not exist so cannot be removed\./)
553
- expect(output).to match(/File test\/test_unknown\.c does not exist so cannot be removed\./)
554
- expect(output).to match(/Destroy Complete/)
555
-
556
- self.handles_destroying_a_module_that_does_not_exist_using_the_module_plugin_path_extension
557
- end
558
- end
559
- end
560
-
561
- def handles_destroying_a_module_that_does_not_exist_using_the_module_plugin_path_extension
562
- @c.with_context do
563
- Dir.chdir @proj_name do
564
- output = `bundle exec ruby -S ceedling module:destroy[myUnknownModule:unknown]`
565
- expect($?.exitstatus).to match(0)
566
-
567
- expect(output).to match(/File myUnknownModule\/src\/unknown\.c does not exist so cannot be removed\./)
568
- expect(output).to match(/File myUnknownModule\/src\/unknown\.h does not exist so cannot be removed\./)
569
- expect(output).to match(/File myUnknownModule\/test\/test_unknown\.c does not exist so cannot be removed\./)
570
- expect(output).to match(/Destroy Complete/)
571
- end
572
- end
573
- end
574
-
575
- end
1
+ require 'fileutils'
2
+ require 'tmpdir'
3
+ require 'yaml'
4
+
5
+ Modulegenerator = Struct.new(:project_root, :source_root, :inc_root, :test_root) do
6
+ def initialize(project_root: "./", source_root: "src/", inc_root: "src/", test_root: "test/")
7
+ super(project_root, source_root, inc_root, test_root)
8
+ end
9
+ end
10
+
11
+ def test_asset_path(asset_file_name)
12
+ File.join(File.dirname(__FILE__), '..', 'assets', asset_file_name)
13
+ end
14
+
15
+ def convert_slashes(path)
16
+ if RUBY_PLATFORM.downcase.match(/mingw|win32/)
17
+ path.gsub("/","\\")
18
+ else
19
+ path
20
+ end
21
+ end
22
+
23
+ def _add_path_in_section(project_file_path, path, section)
24
+ project_file_contents = File.readlines(project_file_path)
25
+ paths_index = project_file_contents.index(":paths:\n")
26
+
27
+ if paths_index.nil?
28
+ # Something wrong with project.yml file, no paths?
29
+ return
30
+ end
31
+
32
+ section_index = paths_index + project_file_contents[paths_index..-1].index(" :#{section}:\n")
33
+
34
+ project_file_contents.insert(section_index + 1, " - #{path}\n")
35
+
36
+ File.open(project_file_path, "w+") do |f|
37
+ f.puts(project_file_contents)
38
+ end
39
+ end
40
+
41
+ def _add_define_in_section(project_file_path, define, section)
42
+ project_file_contents = File.readlines(project_file_path)
43
+ defines_index = project_file_contents.index(":defines:\n")
44
+
45
+ if defines_index.nil?
46
+ # Something wrong with project.yml file, no defines?
47
+ return
48
+ end
49
+
50
+ section_index = defines_index + project_file_contents[defines_index..-1].index(" :#{section}:\n")
51
+
52
+ project_file_contents.insert(section_index + 1, " - #{define}\n")
53
+
54
+ File.open(project_file_path, "w+") do |f|
55
+ f.puts(project_file_contents)
56
+ end
57
+ end
58
+
59
+ def add_source_path(path)
60
+ _add_path_in_section("project.yml", path, "source")
61
+ end
62
+
63
+ def add_test_path(path)
64
+ _add_path_in_section("project.yml", path, "test")
65
+ end
66
+
67
+ def add_test_define(define)
68
+ _add_define_in_section("project.yml", define, "test")
69
+ end
70
+
71
+ def add_module_generator_section(project_file_path, mod_gen)
72
+ project_file_contents = File.readlines(project_file_path)
73
+ module_gen_index = project_file_contents.index(":module_generator:\n")
74
+
75
+ unless module_gen_index.nil?
76
+ # already a module_generator in project file, delete it
77
+ module_gen_end_index = project_file_contents[module_gen_index..-1].index("\n")
78
+ project_file_contents.slice[module_gen_index..module_gen_end_index]
79
+ end
80
+
81
+ project_file_contents.insert(-2, "\n")
82
+ project_file_contents.insert(-2, ":module_generator:\n")
83
+ project_file_contents.insert(-2, " :project_root: #{mod_gen.project_root}\n")
84
+ project_file_contents.insert(-2, " :source_root: #{mod_gen.source_root}\n")
85
+ project_file_contents.insert(-2, " :inc_root: #{mod_gen.inc_root}\n")
86
+ project_file_contents.insert(-2, " :test_root: #{mod_gen.test_root}\n")
87
+ project_file_contents.insert(-2, "\n")
88
+
89
+ File.open(project_file_path, "w+") do |f|
90
+ f.puts(project_file_contents)
91
+ end
92
+ end
93
+
94
+ class GemDirLayout
95
+ attr_reader :gem_dir_base_name
96
+
97
+ def initialize(install_dir)
98
+ @gem_dir_base_name = "gems"
99
+ @d = File.join install_dir, @gem_dir_base_name
100
+ FileUtils.mkdir_p @d
101
+ end
102
+
103
+ def install_dir; convert_slashes(@d) end
104
+ def bin; File.join(@d, 'bin') end
105
+ def lib; File.join(@d, 'lib') end
106
+ end
107
+
108
+ class SystemContext
109
+ class VerificationFailed < Exception; end
110
+ class InvalidBackupEnv < Exception; end
111
+
112
+ attr_reader :dir, :gem
113
+
114
+ def initialize
115
+ @dir = Dir.mktmpdir
116
+ @gem = GemDirLayout.new(@dir)
117
+ end
118
+
119
+ def done!
120
+ FileUtils.rm_rf(@dir)
121
+ end
122
+
123
+ def deploy_gem
124
+ git_repo = File.expand_path(File.join(File.dirname(__FILE__), '..'))
125
+ bundler_gem_file_data = [ %Q{source "http://rubygems.org/"},
126
+ %Q{gem "rake"},
127
+ %Q{gem "ceedling", :path => '#{git_repo.to_s}'}
128
+ ].join("\n")
129
+
130
+ File.open(File.join(@dir, "Gemfile"), "w+") do |f|
131
+ f.write(bundler_gem_file_data)
132
+ end
133
+
134
+ Dir.chdir @dir do
135
+ with_constrained_env do
136
+ `bundle config set path '#{@gem.install_dir}'`
137
+ `bundle install`
138
+ checks = ["bundle exec ruby -S ceedling 2>&1"]
139
+ checks.each do |c|
140
+ `#{c}`
141
+ #raise VerificationFailed.new(c) unless $?.success?
142
+ end
143
+ end
144
+ end
145
+ end
146
+
147
+ # Does a few things:
148
+ # - Configures the environment.
149
+ # - Runs the command from the temporary context directory.
150
+ # - Restores everything to where it was when finished.
151
+ def context_exec(cmd, *args)
152
+ with_context do
153
+ `#{args.unshift(cmd).join(" ")}`
154
+ end
155
+ end
156
+
157
+ def with_context
158
+ Dir.chdir @dir do |current_dir|
159
+ with_constrained_env do
160
+ ENV['RUBYLIB'] = @gem.lib
161
+ ENV['RUBYPATH'] = @gem.bin
162
+
163
+ yield
164
+ end
165
+ end
166
+ end
167
+
168
+ def backup_env
169
+ # Force a deep clone. Hacktacular, but works.
170
+ @_env = YAML.load(ENV.to_hash.to_yaml)
171
+ end
172
+
173
+ def reduce_env(destroy_keys=[])
174
+ ENV.keys.each {|k| ENV.delete(k) if destroy_keys.include?(k) }
175
+ end
176
+
177
+ def constrain_env
178
+ destroy_keys = %w{BUNDLE_GEMFILE BUNDLE_BIN_PATH RUBYOPT}
179
+ reduce_env(destroy_keys)
180
+ end
181
+
182
+ def restore_env
183
+ if @_env
184
+ @_env.each_pair {|k,v| ENV[k] = v}
185
+ else
186
+ raise InvalidBackupEnv.new
187
+ end
188
+ end
189
+
190
+ def with_constrained_env
191
+ begin
192
+ backup_env
193
+ constrain_env
194
+ yield
195
+ ensure
196
+ restore_env
197
+ end
198
+ end
199
+ end
200
+
201
+ module CeedlingTestCases
202
+ def can_create_projects
203
+ @c.with_context do
204
+ Dir.chdir @proj_name do
205
+ expect(File.exists?("project.yml")).to eq true
206
+ expect(File.exists?("src")).to eq true
207
+ expect(File.exists?("test")).to eq true
208
+ expect(File.exists?("test/support")).to eq true
209
+ expect(File.exists?("test/support/.gitkeep")).to eq true
210
+ end
211
+ end
212
+ end
213
+
214
+ def has_an_ignore
215
+ @c.with_context do
216
+ Dir.chdir @proj_name do
217
+ expect(File.exists?(".gitignore")).to eq true
218
+ end
219
+ end
220
+ end
221
+
222
+ def can_upgrade_projects
223
+ @c.with_context do
224
+ output = `bundle exec ruby -S ceedling upgrade #{@proj_name} 2>&1`
225
+ expect($?.exitstatus).to match(0)
226
+ expect(output).to match(/upgraded!/i)
227
+ Dir.chdir @proj_name do
228
+ expect(File.exists?("project.yml")).to eq true
229
+ expect(File.exists?("src")).to eq true
230
+ expect(File.exists?("test")).to eq true
231
+ all_docs = Dir["vendor/ceedling/docs/*.pdf"].length + Dir["vendor/ceedling/docs/*.md"].length
232
+ end
233
+ end
234
+ end
235
+
236
+ def contains_a_vendor_directory
237
+ @c.with_context do
238
+ Dir.chdir @proj_name do
239
+ expect(File.exists?("vendor/ceedling")).to eq true
240
+ end
241
+ end
242
+ end
243
+
244
+ def does_not_contain_a_vendor_directory
245
+ @c.with_context do
246
+ Dir.chdir @proj_name do
247
+ expect(File.exists?("vendor/ceedling")).to eq false
248
+ end
249
+ end
250
+ end
251
+
252
+ def contains_documentation
253
+ @c.with_context do
254
+ Dir.chdir @proj_name do
255
+ all_docs = Dir["docs/*.md"].length + Dir["vendor/ceedling/docs/*.md"].length
256
+ expect(all_docs).to be >= 4
257
+ end
258
+ end
259
+ end
260
+
261
+ def does_not_contain_documentation
262
+ @c.with_context do
263
+ Dir.chdir @proj_name do
264
+ expect(File.exists?("vendor/ceedling/docs")).to eq false
265
+ expect(Dir["vendor/ceedling/**/*.pdf"].length).to eq 0
266
+ end
267
+ end
268
+ end
269
+
270
+ def can_test_projects_with_success
271
+ @c.with_context do
272
+ Dir.chdir @proj_name do
273
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
274
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
275
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
276
+
277
+ output = `bundle exec ruby -S ceedling test:all 2>&1`
278
+ expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
279
+ expect(output).to match(/TESTED:\s+\d/)
280
+ expect(output).to match(/PASSED:\s+\d/)
281
+ expect(output).to match(/FAILED:\s+\d/)
282
+ expect(output).to match(/IGNORED:\s+\d/)
283
+ end
284
+ end
285
+ end
286
+
287
+ def can_test_projects_with_success_test_alias
288
+ @c.with_context do
289
+ Dir.chdir @proj_name do
290
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
291
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
292
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
293
+
294
+ output = `bundle exec ruby -S ceedling test 2>&1`
295
+ expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
296
+ expect(output).to match(/TESTED:\s+\d/)
297
+ expect(output).to match(/PASSED:\s+\d/)
298
+ expect(output).to match(/FAILED:\s+\d/)
299
+ expect(output).to match(/IGNORED:\s+\d/)
300
+ end
301
+ end
302
+ end
303
+
304
+ def can_test_projects_with_success_default
305
+ @c.with_context do
306
+ Dir.chdir @proj_name do
307
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
308
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
309
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
310
+
311
+ output = `bundle exec ruby -S ceedling 2>&1`
312
+ expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
313
+ expect(output).to match(/TESTED:\s+\d/)
314
+ expect(output).to match(/PASSED:\s+\d/)
315
+ expect(output).to match(/FAILED:\s+\d/)
316
+ expect(output).to match(/IGNORED:\s+\d/)
317
+ end
318
+ end
319
+ end
320
+
321
+ def can_test_projects_with_unity_exec_time
322
+ @c.with_context do
323
+ Dir.chdir @proj_name do
324
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
325
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
326
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
327
+ add_test_define("UNITY_INCLUDE_EXEC_TIME")
328
+
329
+ output = `bundle exec ruby -S ceedling 2>&1`
330
+ expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
331
+ expect(output).to match(/TESTED:\s+\d/)
332
+ expect(output).to match(/PASSED:\s+\d/)
333
+ expect(output).to match(/FAILED:\s+\d/)
334
+ expect(output).to match(/IGNORED:\s+\d/)
335
+ end
336
+ end
337
+ end
338
+
339
+ def can_test_projects_with_fail
340
+ @c.with_context do
341
+ Dir.chdir @proj_name do
342
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
343
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
344
+ FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
345
+
346
+ output = `bundle exec ruby -S ceedling test:all 2>&1`
347
+ expect($?.exitstatus).to match(1) # Since a test fails, we return error here
348
+ expect(output).to match(/TESTED:\s+\d/)
349
+ expect(output).to match(/PASSED:\s+\d/)
350
+ expect(output).to match(/FAILED:\s+\d/)
351
+ expect(output).to match(/IGNORED:\s+\d/)
352
+ end
353
+ end
354
+ end
355
+
356
+ def can_test_projects_with_fail_alias
357
+ @c.with_context do
358
+ Dir.chdir @proj_name do
359
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
360
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
361
+ FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
362
+
363
+ output = `bundle exec ruby -S ceedling test 2>&1`
364
+ expect($?.exitstatus).to match(1) # Since a test fails, we return error here
365
+ expect(output).to match(/TESTED:\s+\d/)
366
+ expect(output).to match(/PASSED:\s+\d/)
367
+ expect(output).to match(/FAILED:\s+\d/)
368
+ expect(output).to match(/IGNORED:\s+\d/)
369
+ end
370
+ end
371
+ end
372
+
373
+ def can_test_projects_with_fail_default
374
+ @c.with_context do
375
+ Dir.chdir @proj_name do
376
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
377
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
378
+ FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
379
+
380
+ output = `bundle exec ruby -S ceedling 2>&1`
381
+ expect($?.exitstatus).to match(1) # Since a test fails, we return error here
382
+ expect(output).to match(/TESTED:\s+\d/)
383
+ expect(output).to match(/PASSED:\s+\d/)
384
+ expect(output).to match(/FAILED:\s+\d/)
385
+ expect(output).to match(/IGNORED:\s+\d/)
386
+ end
387
+ end
388
+ end
389
+
390
+ def can_test_projects_with_compile_error
391
+ @c.with_context do
392
+ Dir.chdir @proj_name do
393
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
394
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
395
+ FileUtils.cp test_asset_path("test_example_file_boom.c"), 'test/'
396
+
397
+ output = `bundle exec ruby -S ceedling test:all 2>&1`
398
+ expect($?.exitstatus).to match(1) # Since a test explodes, we return error here
399
+ expect(output).to match(/ERROR: Ceedling Failed/)
400
+ end
401
+ end
402
+ end
403
+
404
+ def uses_raw_output_report_plugin
405
+ @c.with_context do
406
+ Dir.chdir @proj_name do
407
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
408
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
409
+ FileUtils.cp test_asset_path("test_example_file_verbose.c"), 'test/'
410
+
411
+ output = `bundle exec ruby -S ceedling test:all 2>&1`
412
+ expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
413
+ expect(output).to match(/TESTED:\s+\d/)
414
+ expect(output).to match(/PASSED:\s+\d/)
415
+ expect(output).to match(/FAILED:\s+\d/)
416
+ expect(output).to match(/IGNORED:\s+\d/)
417
+ expect(File.exists?("build/artifacts/test/test_example_file_verbose.log")).to eq true
418
+ end
419
+ end
420
+ end
421
+
422
+
423
+ def can_fetch_non_project_help
424
+ @c.with_context do
425
+ #notice we don't change directory into the project
426
+ output = `bundle exec ruby -S ceedling help`
427
+ expect($?.exitstatus).to match(0)
428
+ expect(output).to match(/ceedling example/i)
429
+ expect(output).to match(/ceedling new/i)
430
+ expect(output).to match(/ceedling upgrade/i)
431
+ expect(output).to match(/ceedling version/i)
432
+ end
433
+ end
434
+
435
+ def can_fetch_project_help
436
+ @c.with_context do
437
+ Dir.chdir @proj_name do
438
+ output = `bundle exec ruby -S ceedling help`
439
+ expect($?.exitstatus).to match(0)
440
+ expect(output).to match(/ceedling clean/i)
441
+ expect(output).to match(/ceedling clobber/i)
442
+ expect(output).to match(/ceedling logging/i)
443
+ expect(output).to match(/ceedling module:create/i)
444
+ expect(output).to match(/ceedling module:destroy/i)
445
+ expect(output).to match(/ceedling summary/i)
446
+ expect(output).to match(/ceedling test:\*/i)
447
+ expect(output).to match(/ceedling test:all/i)
448
+ expect(output).to match(/ceedling test:delta/i)
449
+ expect(output).to match(/ceedling version/i)
450
+ end
451
+ end
452
+ end
453
+
454
+ def can_use_the_module_plugin
455
+ @c.with_context do
456
+ Dir.chdir @proj_name do
457
+ output = `bundle exec ruby -S ceedling module:create[ponies]`
458
+ expect($?.exitstatus).to match(0)
459
+ expect(output).to match(/Generate Complete/i)
460
+ output = `bundle exec ruby -S ceedling test:all`
461
+ expect($?.exitstatus).to match(0)
462
+ expect(output).to match(/Need to Implement ponies/)
463
+ output = `bundle exec ruby -S ceedling module:destroy[ponies]`
464
+ expect($?.exitstatus).to match(0)
465
+ expect(output).to match(/Destroy Complete/i)
466
+
467
+ self.can_use_the_module_plugin_path_extension
468
+ self.can_use_the_module_plugin_with_include_path
469
+ end
470
+ end
471
+ end
472
+
473
+ def can_use_the_module_plugin_path_extension
474
+ @c.with_context do
475
+ Dir.chdir @proj_name do
476
+ # Module creation
477
+ output = `bundle exec ruby -S ceedling module:create[myPonies:ponies]`
478
+ expect($?.exitstatus).to match(0)
479
+ expect(output).to match(/Generate Complete/i)
480
+ expect(File.exists?("myPonies/src/ponies.c")).to eq true
481
+ expect(File.exists?("myPonies/src/ponies.h")).to eq true
482
+ expect(File.exists?("myPonies/test/test_ponies.c")).to eq true
483
+
484
+ # add module path to project file
485
+ add_test_path("myPonies/test")
486
+ add_source_path("myPonies/src")
487
+
488
+ # See if ceedling finds the test in the subdir
489
+ output = `bundle exec ruby -S ceedling test:all`
490
+ expect($?.exitstatus).to match(0)
491
+ expect(output).to match(/Need to Implement ponies/)
492
+
493
+ # Module destruction
494
+ output = `bundle exec ruby -S ceedling module:destroy[myPonies:ponies]`
495
+ expect($?.exitstatus).to match(0)
496
+ expect(output).to match(/Destroy Complete/i)
497
+ expect(File.exists?("myPonies/src/ponies.c")).to eq false
498
+ expect(File.exists?("myPonies/src/ponies.h")).to eq false
499
+ expect(File.exists?("myPonies/test/test_ponies.c")).to eq false
500
+ end
501
+ end
502
+ end
503
+
504
+ def can_use_the_module_plugin_with_include_path
505
+ @c.with_context do
506
+ Dir.chdir @proj_name do
507
+ # add include path to module generator
508
+ mod_gen = Modulegenerator.new(inc_root: "inc/")
509
+ add_module_generator_section("project.yml", mod_gen)
510
+
511
+ # module creation
512
+ output = `bundle exec ruby -S ceedling module:create[myPonies:ponies]`
513
+ expect($?.exitstatus).to match(0)
514
+ expect(output).to match(/Generate Complete/i)
515
+ expect(File.exists?("myPonies/src/ponies.c")).to eq true
516
+ expect(File.exists?("myPonies/inc/ponies.h")).to eq true
517
+ expect(File.exists?("myPonies/test/test_ponies.c")).to eq true
518
+
519
+ # Module destruction
520
+ output = `bundle exec ruby -S ceedling module:destroy[myPonies:ponies]`
521
+ expect($?.exitstatus).to match(0)
522
+ expect(output).to match(/Destroy Complete/i)
523
+ expect(File.exists?("myPonies/src/ponies.c")).to eq false
524
+ expect(File.exists?("myPonies/inc/ponies.h")).to eq false
525
+ expect(File.exists?("myPonies/test/test_ponies.c")).to eq false
526
+ end
527
+ end
528
+ end
529
+
530
+ def can_use_the_module_plugin_with_non_default_paths
531
+ @c.with_context do
532
+ Dir.chdir @proj_name do
533
+ # add paths to module generator
534
+ mod_gen = Modulegenerator.new({source_root: "foo/", inc_root: "bar/", test_root: "barz/"})
535
+ add_module_generator_section("project.yml", mod_gen)
536
+
537
+ # module creation
538
+ output = `bundle exec ruby -S ceedling module:create[ponies]`
539
+ expect($?.exitstatus).to match(0)
540
+ expect(output).to match(/Generate Complete/i)
541
+ expect(File.exists?("foo/ponies.c")).to eq true
542
+ expect(File.exists?("bar/ponies.h")).to eq true
543
+ expect(File.exists?("barz/test_ponies.c")).to eq true
544
+
545
+ # Module destruction
546
+ output = `bundle exec ruby -S ceedling module:destroy[ponies]`
547
+ expect($?.exitstatus).to match(0)
548
+ expect(output).to match(/Destroy Complete/i)
549
+ expect(File.exists?("foo/ponies.c")).to eq false
550
+ expect(File.exists?("bar/ponies.h")).to eq false
551
+ expect(File.exists?("barz/test_ponies.c")).to eq false
552
+ end
553
+ end
554
+ end
555
+
556
+ def handles_creating_the_same_module_twice_using_the_module_plugin
557
+ @c.with_context do
558
+ Dir.chdir @proj_name do
559
+ output = `bundle exec ruby -S ceedling module:create[unicorns]`
560
+ expect($?.exitstatus).to match(0)
561
+ expect(output).to match(/Generate Complete/i)
562
+
563
+ output = `bundle exec ruby -S ceedling module:create[unicorns] 2>&1`
564
+ expect($?.exitstatus).to match(1)
565
+ expect(output).to match(/ERROR: Ceedling Failed/)
566
+
567
+ self.handles_creating_the_same_module_twice_using_the_module_plugin_path_extension
568
+ end
569
+ end
570
+ end
571
+
572
+ def handles_creating_the_same_module_twice_using_the_module_plugin
573
+ @c.with_context do
574
+ Dir.chdir @proj_name do
575
+ output = `bundle exec ruby -S ceedling module:create[myUnicorn:unicorns]`
576
+ expect($?.exitstatus).to match(0)
577
+ expect(output).to match(/Generate Complete/i)
578
+
579
+ output = `bundle exec ruby -S ceedling module:create[myUnicorn:unicorns] 2>&1`
580
+ expect($?.exitstatus).to match(1)
581
+ expect(output).to match(/ERROR: Ceedling Failed/)
582
+ end
583
+ end
584
+ end
585
+
586
+ def handles_destroying_a_module_that_does_not_exist_using_the_module_plugin
587
+ @c.with_context do
588
+ Dir.chdir @proj_name do
589
+ output = `bundle exec ruby -S ceedling module:destroy[unknown]`
590
+ expect($?.exitstatus).to match(0)
591
+
592
+ expect(output).to match(/File src\/unknown\.c does not exist so cannot be removed\./)
593
+ expect(output).to match(/File src\/unknown\.h does not exist so cannot be removed\./)
594
+ expect(output).to match(/File test\/test_unknown\.c does not exist so cannot be removed\./)
595
+ expect(output).to match(/Destroy Complete/)
596
+
597
+ self.handles_destroying_a_module_that_does_not_exist_using_the_module_plugin_path_extension
598
+ end
599
+ end
600
+ end
601
+
602
+ def handles_destroying_a_module_that_does_not_exist_using_the_module_plugin_path_extension
603
+ @c.with_context do
604
+ Dir.chdir @proj_name do
605
+ output = `bundle exec ruby -S ceedling module:destroy[myUnknownModule:unknown]`
606
+ expect($?.exitstatus).to match(0)
607
+
608
+ expect(output).to match(/File myUnknownModule\/src\/unknown\.c does not exist so cannot be removed\./)
609
+ expect(output).to match(/File myUnknownModule\/src\/unknown\.h does not exist so cannot be removed\./)
610
+ expect(output).to match(/File myUnknownModule\/test\/test_unknown\.c does not exist so cannot be removed\./)
611
+ expect(output).to match(/Destroy Complete/)
612
+ end
613
+ end
614
+ end
615
+
616
+ end