ceedling 0.29.1 → 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 (1267) 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 -97
  12. data/assets/project_with_guts.yml +102 -98
  13. data/assets/project_with_guts_gcov.yml +102 -98
  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 -339
  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 -2134
  28. data/docs/CeedlingUpgrade.md +83 -83
  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.rb +99 -99
  118. data/lib/ceedling/build_invoker_utils.rb +39 -39
  119. data/lib/ceedling/cacheinator.rb +47 -47
  120. data/lib/ceedling/cacheinator_helper.rb +35 -31
  121. data/lib/ceedling/cmock_builder.rb +15 -15
  122. data/lib/ceedling/configurator.rb +372 -363
  123. data/lib/ceedling/configurator_builder.rb +463 -458
  124. data/lib/ceedling/configurator_plugins.rb +111 -111
  125. data/lib/ceedling/configurator_setup.rb +127 -127
  126. data/lib/ceedling/configurator_validator.rb +193 -193
  127. data/lib/ceedling/constants.rb +99 -97
  128. data/lib/ceedling/defaults.rb +447 -418
  129. data/lib/ceedling/dependinator.rb +97 -98
  130. data/lib/ceedling/erb_wrapper.rb +8 -8
  131. data/lib/ceedling/file_finder.rb +149 -149
  132. data/lib/ceedling/file_finder_helper.rb +56 -54
  133. data/lib/ceedling/file_path_utils.rb +202 -200
  134. data/lib/ceedling/file_system_utils.rb +69 -69
  135. data/lib/ceedling/file_system_wrapper.rb +9 -9
  136. data/lib/ceedling/file_wrapper.rb +83 -83
  137. data/lib/ceedling/flaginator.rb +74 -74
  138. data/lib/ceedling/generator.rb +186 -183
  139. data/lib/ceedling/generator_helper.rb +40 -40
  140. data/lib/ceedling/generator_test_results.rb +100 -100
  141. data/lib/ceedling/generator_test_results_sanity_checker.rb +65 -65
  142. data/lib/ceedling/generator_test_runner.rb +58 -56
  143. data/lib/ceedling/loginator.rb +31 -31
  144. data/lib/ceedling/makefile.rb +46 -46
  145. data/lib/ceedling/objects.yml +311 -310
  146. data/lib/ceedling/par_map.rb +19 -19
  147. data/lib/ceedling/plugin.rb +80 -80
  148. data/lib/ceedling/plugin_builder.rb +52 -52
  149. data/lib/ceedling/plugin_manager.rb +107 -107
  150. data/lib/ceedling/plugin_manager_helper.rb +19 -19
  151. data/lib/ceedling/plugin_reportinator.rb +76 -76
  152. data/lib/ceedling/plugin_reportinator_helper.rb +51 -51
  153. data/lib/ceedling/preprocessinator.rb +47 -42
  154. data/lib/ceedling/preprocessinator_extractor.rb +30 -30
  155. data/lib/ceedling/preprocessinator_file_handler.rb +21 -21
  156. data/lib/ceedling/preprocessinator_helper.rb +50 -46
  157. data/lib/ceedling/preprocessinator_includes_handler.rb +181 -181
  158. data/lib/ceedling/project_config_manager.rb +52 -46
  159. data/lib/ceedling/project_file_loader.rb +99 -99
  160. data/lib/ceedling/rake_utils.rb +17 -17
  161. data/lib/ceedling/rake_wrapper.rb +33 -33
  162. data/lib/ceedling/rakefile.rb +86 -86
  163. data/lib/ceedling/release_invoker.rb +98 -73
  164. data/lib/ceedling/release_invoker_helper.rb +19 -19
  165. data/lib/ceedling/reportinator.rb +26 -26
  166. data/lib/ceedling/rules_cmock.rake +9 -9
  167. data/lib/ceedling/rules_preprocess.rake +26 -26
  168. data/lib/ceedling/rules_release.rake +99 -86
  169. data/lib/ceedling/rules_release_deep_dependencies.rake +15 -15
  170. data/lib/ceedling/rules_tests.rake +73 -74
  171. data/lib/ceedling/rules_tests_deep_dependencies.rake +15 -15
  172. data/lib/ceedling/setupinator.rb +53 -53
  173. data/lib/ceedling/stream_wrapper.rb +28 -28
  174. data/lib/ceedling/streaminator.rb +40 -40
  175. data/lib/ceedling/streaminator_helper.rb +15 -15
  176. data/lib/ceedling/system_utils.rb +37 -37
  177. data/lib/ceedling/system_wrapper.rb +80 -80
  178. data/lib/ceedling/target_loader.rb +38 -38
  179. data/lib/ceedling/task_invoker.rb +122 -117
  180. data/lib/ceedling/tasks_base.rake +116 -105
  181. data/lib/ceedling/tasks_filesystem.rake +113 -112
  182. data/lib/ceedling/tasks_release.rake +30 -30
  183. data/lib/ceedling/tasks_release_deep_dependencies.rake +9 -9
  184. data/lib/ceedling/tasks_tests.rake +60 -60
  185. data/lib/ceedling/tasks_tests_deep_dependencies.rake +9 -9
  186. data/lib/ceedling/tasks_vendor.rake +35 -35
  187. data/lib/ceedling/test_includes_extractor.rb +111 -85
  188. data/lib/ceedling/test_invoker.rb +164 -188
  189. data/lib/ceedling/test_invoker_helper.rb +32 -32
  190. data/lib/ceedling/tool_executor.rb +229 -229
  191. data/lib/ceedling/tool_executor_helper.rb +164 -164
  192. data/lib/ceedling/verbosinator.rb +10 -10
  193. data/lib/ceedling/version.rb +50 -50
  194. data/lib/ceedling/yaml_wrapper.rb +17 -17
  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 -130
  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 -615
  295. data/spec/support/test_example.fail +24 -24
  296. data/spec/support/test_example.pass +24 -24
  297. data/spec/support/test_example_empty.pass +14 -14
  298. data/spec/support/test_example_ignore.pass +24 -24
  299. data/spec/support/test_example_mangled.pass +21 -21
  300. data/spec/support/test_example_with_time.pass +24 -24
  301. data/spec/system/deployment_spec.rb +225 -225
  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.rb +76 -76
  309. data/vendor/behaviors/lib/behaviors/reporttask.rb +158 -158
  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 -696
  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 -163
  546. data/vendor/cmock/lib/cmock_file_writer.rb +48 -44
  547. data/vendor/cmock/lib/cmock_generator.rb +333 -275
  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 -474
  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 -10
  611. data/vendor/cmock/test/system/test_compilation/const.h +37 -37
  612. data/vendor/cmock/test/system/test_compilation/inline.h +23 -23
  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 -460
  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 -123
  653. data/vendor/cmock/test/unit/cmock_config_test.yml +7 -6
  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 -551
  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 -2000
  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.rb +76 -76
  672. data/vendor/cmock/vendor/behaviors/lib/behaviors/reporttask.rb +158 -158
  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.rb +403 -403
  975. data/vendor/diy/lib/diy/factory.rb +36 -36
  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.rb +8 -8
  997. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +7 -7
  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.rb +86 -86
  1064. data/vendor/hardmock/lib/hardmock/errors.rb +22 -22
  1065. data/vendor/hardmock/lib/hardmock/expectation.rb +229 -229
  1066. data/vendor/hardmock/lib/hardmock/expectation_builder.rb +9 -9
  1067. data/vendor/hardmock/lib/hardmock/expector.rb +26 -26
  1068. data/vendor/hardmock/lib/hardmock/method_cleanout.rb +33 -33
  1069. data/vendor/hardmock/lib/hardmock/mock.rb +180 -180
  1070. data/vendor/hardmock/lib/hardmock/mock_control.rb +53 -53
  1071. data/vendor/hardmock/lib/hardmock/stubbing.rb +210 -210
  1072. data/vendor/hardmock/lib/hardmock/trapper.rb +31 -31
  1073. data/vendor/hardmock/lib/hardmock/utils.rb +9 -9
  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 +225 -62
  1245. data/ceedling.sublime-project +0 -28
  1246. data/ceedling.sublime-workspace +0 -1276
  1247. data/docs/CeedlingPacket.odt +0 -0
  1248. data/docs/CeedlingPacket.pdf +0 -0
  1249. data/plugins/bullseye/readme.txt +0 -0
  1250. data/vendor/c_exception/LICENSE.txt +0 -30
  1251. data/vendor/c_exception/Rakefile +0 -42
  1252. data/vendor/c_exception/makefile +0 -24
  1253. data/vendor/c_exception/test/TestException_Runner.c +0 -67
  1254. data/vendor/cmock/vendor/c_exception/LICENSE.txt +0 -30
  1255. data/vendor/cmock/vendor/c_exception/Rakefile +0 -42
  1256. data/vendor/cmock/vendor/c_exception/makefile +0 -24
  1257. data/vendor/cmock/vendor/c_exception/test/TestException_Runner.c +0 -67
  1258. data/vendor/cmock/vendor/unity/extras/fixture/rakefile_helper.rb +0 -183
  1259. data/vendor/cmock/vendor/unity/extras/memory/rakefile.rb +0 -45
  1260. data/vendor/cmock/vendor/unity/extras/memory/rakefile_helper.rb +0 -187
  1261. data/vendor/cmock/vendor/unity/src/CMakeLists.txt +0 -22
  1262. data/vendor/unity/extras/fixture/rakefile.rb +0 -44
  1263. data/vendor/unity/extras/fixture/rakefile_helper.rb +0 -183
  1264. data/vendor/unity/extras/memory/rakefile.rb +0 -45
  1265. data/vendor/unity/extras/memory/rakefile_helper.rb +0 -187
  1266. data/vendor/unity/src/CMakeLists.txt +0 -22
  1267. data/vendor/unity/test/tests/testunity.c +0 -8168
@@ -1,19 +1,19 @@
1
- require 'spec_helper'
2
- require 'ceedling/reportinator'
3
-
4
- describe Reportinator do
5
- before(:each) do
6
- @rp = described_class.new
7
- end
8
-
9
- describe '#generate_banner' do
10
- it 'generates a banner with a width based on a string' do
11
- expect(@rp.generate_banner("Hello world!")).to eq("------------\nHello world!\n------------\n")
12
- end
13
-
14
- it 'generates a banner with a fixed width' do
15
- expect(@rp.generate_banner("Hello world!", 3)).to eq("---\nHello world!\n---\n")
16
- end
17
- end
18
-
19
- end
1
+ require 'spec_helper'
2
+ require 'ceedling/reportinator'
3
+
4
+ describe Reportinator do
5
+ before(:each) do
6
+ @rp = described_class.new
7
+ end
8
+
9
+ describe '#generate_banner' do
10
+ it 'generates a banner with a width based on a string' do
11
+ expect(@rp.generate_banner("Hello world!")).to eq("------------\nHello world!\n------------\n")
12
+ end
13
+
14
+ it 'generates a banner with a fixed width' do
15
+ expect(@rp.generate_banner("Hello world!", 3)).to eq("---\nHello world!\n---\n")
16
+ end
17
+ end
18
+
19
+ end
@@ -1,27 +1,27 @@
1
- require 'require_all'
2
- require 'constructor'
3
-
4
- RSpec.configure do |config|
5
- config.raise_errors_for_deprecations!
6
- end
7
-
8
- here = File.dirname(__FILE__)
9
-
10
- $: << File.join(here, '../lib')
11
- $: << File.join(here, '../vendor/deep_merge/lib')
12
- $: << File.join(here, '../vendor/cmock/lib')
13
-
14
- support_files = File.join(File.dirname(__FILE__), "support/**/*.rb")
15
- require_all Dir.glob(support_files, File::FNM_PATHNAME)
16
- support_dir = File.join(File.dirname(__FILE__), 'support')
17
-
18
- # Eventually, we should use this.
19
- #
20
- # # ceedling_files = File.join(File.dirname(__FILE__), '../lib/**/*.rb')
21
- # # require_all Dir.glob(ceedling_files, File::FNM_PATHNAME)
22
-
23
- require 'ceedling/preprocessinator_extractor'
24
- require 'ceedling/configurator_builder'
25
- require 'ceedling/configurator'
26
-
27
-
1
+ require 'require_all'
2
+ require 'constructor'
3
+
4
+ RSpec.configure do |config|
5
+ config.raise_errors_for_deprecations!
6
+ end
7
+
8
+ here = File.dirname(__FILE__)
9
+
10
+ $: << File.join(here, '../lib')
11
+ $: << File.join(here, '../vendor/deep_merge/lib')
12
+ $: << File.join(here, '../vendor/cmock/lib')
13
+
14
+ support_files = File.join(File.dirname(__FILE__), "support/**/*.rb")
15
+ require_all Dir.glob(support_files, File::FNM_PATHNAME)
16
+ support_dir = File.join(File.dirname(__FILE__), 'support')
17
+
18
+ # Eventually, we should use this.
19
+ #
20
+ # # ceedling_files = File.join(File.dirname(__FILE__), '../lib/**/*.rb')
21
+ # # require_all Dir.glob(ceedling_files, File::FNM_PATHNAME)
22
+
23
+ require 'ceedling/preprocessinator_extractor'
24
+ require 'ceedling/configurator_builder'
25
+ require 'ceedling/configurator'
26
+
27
+
@@ -1,615 +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_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 install --path #{@gem.install_dir}`
137
- checks = ["bundle exec ruby -S ceedling 2>&1"]
138
- checks.each do |c|
139
- `#{c}`
140
- #raise VerificationFailed.new(c) unless $?.success?
141
- end
142
- end
143
- end
144
- end
145
-
146
- # Does a few things:
147
- # - Configures the environment.
148
- # - Runs the command from the temporary context directory.
149
- # - Restores everything to where it was when finished.
150
- def context_exec(cmd, *args)
151
- with_context do
152
- `#{args.unshift(cmd).join(" ")}`
153
- end
154
- end
155
-
156
- def with_context
157
- Dir.chdir @dir do |current_dir|
158
- with_constrained_env do
159
- ENV['RUBYLIB'] = @gem.lib
160
- ENV['RUBYPATH'] = @gem.bin
161
-
162
- yield
163
- end
164
- end
165
- end
166
-
167
- def backup_env
168
- # Force a deep clone. Hacktacular, but works.
169
- @_env = YAML.load(ENV.to_hash.to_yaml)
170
- end
171
-
172
- def reduce_env(destroy_keys=[])
173
- ENV.keys.each {|k| ENV.delete(k) if destroy_keys.include?(k) }
174
- end
175
-
176
- def constrain_env
177
- destroy_keys = %w{BUNDLE_GEMFILE BUNDLE_BIN_PATH RUBYOPT}
178
- reduce_env(destroy_keys)
179
- end
180
-
181
- def restore_env
182
- if @_env
183
- @_env.each_pair {|k,v| ENV[k] = v}
184
- else
185
- raise InvalidBackupEnv.new
186
- end
187
- end
188
-
189
- def with_constrained_env
190
- begin
191
- backup_env
192
- constrain_env
193
- yield
194
- ensure
195
- restore_env
196
- end
197
- end
198
- end
199
-
200
- module CeedlingTestCases
201
- def can_create_projects
202
- @c.with_context do
203
- Dir.chdir @proj_name do
204
- expect(File.exists?("project.yml")).to eq true
205
- expect(File.exists?("src")).to eq true
206
- expect(File.exists?("test")).to eq true
207
- expect(File.exists?("test/support")).to eq true
208
- expect(File.exists?("test/support/.gitkeep")).to eq true
209
- end
210
- end
211
- end
212
-
213
- def has_an_ignore
214
- @c.with_context do
215
- Dir.chdir @proj_name do
216
- expect(File.exists?(".gitignore")).to eq true
217
- end
218
- end
219
- end
220
-
221
- def can_upgrade_projects
222
- @c.with_context do
223
- output = `bundle exec ruby -S ceedling upgrade #{@proj_name} 2>&1`
224
- expect($?.exitstatus).to match(0)
225
- expect(output).to match(/upgraded!/i)
226
- Dir.chdir @proj_name do
227
- expect(File.exists?("project.yml")).to eq true
228
- expect(File.exists?("src")).to eq true
229
- expect(File.exists?("test")).to eq true
230
- all_docs = Dir["vendor/ceedling/docs/*.pdf"].length + Dir["vendor/ceedling/docs/*.md"].length
231
- end
232
- end
233
- end
234
-
235
- def contains_a_vendor_directory
236
- @c.with_context do
237
- Dir.chdir @proj_name do
238
- expect(File.exists?("vendor/ceedling")).to eq true
239
- end
240
- end
241
- end
242
-
243
- def does_not_contain_a_vendor_directory
244
- @c.with_context do
245
- Dir.chdir @proj_name do
246
- expect(File.exists?("vendor/ceedling")).to eq false
247
- end
248
- end
249
- end
250
-
251
- def contains_documentation
252
- @c.with_context do
253
- Dir.chdir @proj_name do
254
- all_docs = Dir["vendor/ceedling/docs/*.pdf"].length + Dir["vendor/ceedling/docs/*.md"].length
255
- expect(all_docs).to be >= 4
256
- end
257
- end
258
- end
259
-
260
- def does_not_contain_documentation
261
- @c.with_context do
262
- Dir.chdir @proj_name do
263
- expect(File.exists?("vendor/ceedling/docs")).to eq false
264
- expect(Dir["vendor/ceedling/**/*.pdf"].length).to eq 0
265
- end
266
- end
267
- end
268
-
269
- def can_test_projects_with_success
270
- @c.with_context do
271
- Dir.chdir @proj_name do
272
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
273
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
274
- FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
275
-
276
- output = `bundle exec ruby -S ceedling test:all 2>&1`
277
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
278
- expect(output).to match(/TESTED:\s+\d/)
279
- expect(output).to match(/PASSED:\s+\d/)
280
- expect(output).to match(/FAILED:\s+\d/)
281
- expect(output).to match(/IGNORED:\s+\d/)
282
- end
283
- end
284
- end
285
-
286
- def can_test_projects_with_success_test_alias
287
- @c.with_context do
288
- Dir.chdir @proj_name do
289
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
290
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
291
- FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
292
-
293
- output = `bundle exec ruby -S ceedling test 2>&1`
294
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
295
- expect(output).to match(/TESTED:\s+\d/)
296
- expect(output).to match(/PASSED:\s+\d/)
297
- expect(output).to match(/FAILED:\s+\d/)
298
- expect(output).to match(/IGNORED:\s+\d/)
299
- end
300
- end
301
- end
302
-
303
- def can_test_projects_with_success_default
304
- @c.with_context do
305
- Dir.chdir @proj_name do
306
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
307
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
308
- FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
309
-
310
- output = `bundle exec ruby -S ceedling 2>&1`
311
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
312
- expect(output).to match(/TESTED:\s+\d/)
313
- expect(output).to match(/PASSED:\s+\d/)
314
- expect(output).to match(/FAILED:\s+\d/)
315
- expect(output).to match(/IGNORED:\s+\d/)
316
- end
317
- end
318
- end
319
-
320
- def can_test_projects_with_unity_exec_time
321
- @c.with_context do
322
- Dir.chdir @proj_name do
323
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
324
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
325
- FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
326
- add_test_define("UNITY_INCLUDE_EXEC_TIME")
327
-
328
- output = `bundle exec ruby -S ceedling 2>&1`
329
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
330
- expect(output).to match(/TESTED:\s+\d/)
331
- expect(output).to match(/PASSED:\s+\d/)
332
- expect(output).to match(/FAILED:\s+\d/)
333
- expect(output).to match(/IGNORED:\s+\d/)
334
- end
335
- end
336
- end
337
-
338
- def can_test_projects_with_fail
339
- @c.with_context do
340
- Dir.chdir @proj_name do
341
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
342
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
343
- FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
344
-
345
- output = `bundle exec ruby -S ceedling test:all 2>&1`
346
- expect($?.exitstatus).to match(1) # Since a test fails, we return error here
347
- expect(output).to match(/TESTED:\s+\d/)
348
- expect(output).to match(/PASSED:\s+\d/)
349
- expect(output).to match(/FAILED:\s+\d/)
350
- expect(output).to match(/IGNORED:\s+\d/)
351
- end
352
- end
353
- end
354
-
355
- def can_test_projects_with_fail_alias
356
- @c.with_context do
357
- Dir.chdir @proj_name do
358
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
359
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
360
- FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
361
-
362
- output = `bundle exec ruby -S ceedling test 2>&1`
363
- expect($?.exitstatus).to match(1) # Since a test fails, we return error here
364
- expect(output).to match(/TESTED:\s+\d/)
365
- expect(output).to match(/PASSED:\s+\d/)
366
- expect(output).to match(/FAILED:\s+\d/)
367
- expect(output).to match(/IGNORED:\s+\d/)
368
- end
369
- end
370
- end
371
-
372
- def can_test_projects_with_fail_default
373
- @c.with_context do
374
- Dir.chdir @proj_name do
375
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
376
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
377
- FileUtils.cp test_asset_path("test_example_file.c"), 'test/'
378
-
379
- output = `bundle exec ruby -S ceedling 2>&1`
380
- expect($?.exitstatus).to match(1) # Since a test fails, we return error here
381
- expect(output).to match(/TESTED:\s+\d/)
382
- expect(output).to match(/PASSED:\s+\d/)
383
- expect(output).to match(/FAILED:\s+\d/)
384
- expect(output).to match(/IGNORED:\s+\d/)
385
- end
386
- end
387
- end
388
-
389
- def can_test_projects_with_compile_error
390
- @c.with_context do
391
- Dir.chdir @proj_name do
392
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
393
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
394
- FileUtils.cp test_asset_path("test_example_file_boom.c"), 'test/'
395
-
396
- output = `bundle exec ruby -S ceedling test:all 2>&1`
397
- expect($?.exitstatus).to match(1) # Since a test explodes, we return error here
398
- expect(output).to match(/ERROR: Ceedling Failed/)
399
- end
400
- end
401
- end
402
-
403
- def uses_raw_output_report_plugin
404
- @c.with_context do
405
- Dir.chdir @proj_name do
406
- FileUtils.cp test_asset_path("example_file.h"), 'src/'
407
- FileUtils.cp test_asset_path("example_file.c"), 'src/'
408
- FileUtils.cp test_asset_path("test_example_file_verbose.c"), 'test/'
409
-
410
- output = `bundle exec ruby -S ceedling test:all 2>&1`
411
- expect($?.exitstatus).to match(0) # Since a test either pass or are ignored, we return success here
412
- expect(output).to match(/TESTED:\s+\d/)
413
- expect(output).to match(/PASSED:\s+\d/)
414
- expect(output).to match(/FAILED:\s+\d/)
415
- expect(output).to match(/IGNORED:\s+\d/)
416
- expect(File.exists?("build/artifacts/test/test_example_file_verbose.log")).to eq true
417
- end
418
- end
419
- end
420
-
421
-
422
- def can_fetch_non_project_help
423
- @c.with_context do
424
- #notice we don't change directory into the project
425
- output = `bundle exec ruby -S ceedling help`
426
- expect($?.exitstatus).to match(0)
427
- expect(output).to match(/ceedling example/i)
428
- expect(output).to match(/ceedling new/i)
429
- expect(output).to match(/ceedling upgrade/i)
430
- expect(output).to match(/ceedling version/i)
431
- end
432
- end
433
-
434
- def can_fetch_project_help
435
- @c.with_context do
436
- Dir.chdir @proj_name do
437
- output = `bundle exec ruby -S ceedling help`
438
- expect($?.exitstatus).to match(0)
439
- expect(output).to match(/ceedling clean/i)
440
- expect(output).to match(/ceedling clobber/i)
441
- expect(output).to match(/ceedling logging/i)
442
- expect(output).to match(/ceedling module:create/i)
443
- expect(output).to match(/ceedling module:destroy/i)
444
- expect(output).to match(/ceedling summary/i)
445
- expect(output).to match(/ceedling test:\*/i)
446
- expect(output).to match(/ceedling test:all/i)
447
- expect(output).to match(/ceedling test:delta/i)
448
- expect(output).to match(/ceedling version/i)
449
- end
450
- end
451
- end
452
-
453
- def can_use_the_module_plugin
454
- @c.with_context do
455
- Dir.chdir @proj_name do
456
- output = `bundle exec ruby -S ceedling module:create[ponies]`
457
- expect($?.exitstatus).to match(0)
458
- expect(output).to match(/Generate Complete/i)
459
- output = `bundle exec ruby -S ceedling test:all`
460
- expect($?.exitstatus).to match(0)
461
- expect(output).to match(/Need to Implement ponies/)
462
- output = `bundle exec ruby -S ceedling module:destroy[ponies]`
463
- expect($?.exitstatus).to match(0)
464
- expect(output).to match(/Destroy Complete/i)
465
-
466
- self.can_use_the_module_plugin_path_extension
467
- self.can_use_the_module_plugin_with_include_path
468
- end
469
- end
470
- end
471
-
472
- def can_use_the_module_plugin_path_extension
473
- @c.with_context do
474
- Dir.chdir @proj_name do
475
- # Module creation
476
- output = `bundle exec ruby -S ceedling module:create[myPonies:ponies]`
477
- expect($?.exitstatus).to match(0)
478
- expect(output).to match(/Generate Complete/i)
479
- expect(File.exists?("myPonies/src/ponies.c")).to eq true
480
- expect(File.exists?("myPonies/src/ponies.h")).to eq true
481
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq true
482
-
483
- # add module path to project file
484
- add_test_path("myPonies/test")
485
- add_source_path("myPonies/src")
486
-
487
- # See if ceedling finds the test in the subdir
488
- output = `bundle exec ruby -S ceedling test:all`
489
- expect($?.exitstatus).to match(0)
490
- expect(output).to match(/Need to Implement ponies/)
491
-
492
- # Module destruction
493
- output = `bundle exec ruby -S ceedling module:destroy[myPonies:ponies]`
494
- expect($?.exitstatus).to match(0)
495
- expect(output).to match(/Destroy Complete/i)
496
- expect(File.exists?("myPonies/src/ponies.c")).to eq false
497
- expect(File.exists?("myPonies/src/ponies.h")).to eq false
498
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq false
499
- end
500
- end
501
- end
502
-
503
- def can_use_the_module_plugin_with_include_path
504
- @c.with_context do
505
- Dir.chdir @proj_name do
506
- # add include path to module generator
507
- mod_gen = Modulegenerator.new(inc_root: "inc/")
508
- add_module_generator_section("project.yml", mod_gen)
509
-
510
- # module creation
511
- output = `bundle exec ruby -S ceedling module:create[myPonies:ponies]`
512
- expect($?.exitstatus).to match(0)
513
- expect(output).to match(/Generate Complete/i)
514
- expect(File.exists?("myPonies/src/ponies.c")).to eq true
515
- expect(File.exists?("myPonies/inc/ponies.h")).to eq true
516
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq true
517
-
518
- # Module destruction
519
- output = `bundle exec ruby -S ceedling module:destroy[myPonies:ponies]`
520
- expect($?.exitstatus).to match(0)
521
- expect(output).to match(/Destroy Complete/i)
522
- expect(File.exists?("myPonies/src/ponies.c")).to eq false
523
- expect(File.exists?("myPonies/inc/ponies.h")).to eq false
524
- expect(File.exists?("myPonies/test/test_ponies.c")).to eq false
525
- end
526
- end
527
- end
528
-
529
- def can_use_the_module_plugin_with_non_default_paths
530
- @c.with_context do
531
- Dir.chdir @proj_name do
532
- # add paths to module generator
533
- mod_gen = Modulegenerator.new({source_root: "foo/", inc_root: "bar/", test_root: "barz/"})
534
- add_module_generator_section("project.yml", mod_gen)
535
-
536
- # module creation
537
- output = `bundle exec ruby -S ceedling module:create[ponies]`
538
- expect($?.exitstatus).to match(0)
539
- expect(output).to match(/Generate Complete/i)
540
- expect(File.exists?("foo/ponies.c")).to eq true
541
- expect(File.exists?("bar/ponies.h")).to eq true
542
- expect(File.exists?("barz/test_ponies.c")).to eq true
543
-
544
- # Module destruction
545
- output = `bundle exec ruby -S ceedling module:destroy[ponies]`
546
- expect($?.exitstatus).to match(0)
547
- expect(output).to match(/Destroy Complete/i)
548
- expect(File.exists?("foo/ponies.c")).to eq false
549
- expect(File.exists?("bar/ponies.h")).to eq false
550
- expect(File.exists?("barz/test_ponies.c")).to eq false
551
- end
552
- end
553
- end
554
-
555
- def handles_creating_the_same_module_twice_using_the_module_plugin
556
- @c.with_context do
557
- Dir.chdir @proj_name do
558
- output = `bundle exec ruby -S ceedling module:create[unicorns]`
559
- expect($?.exitstatus).to match(0)
560
- expect(output).to match(/Generate Complete/i)
561
-
562
- output = `bundle exec ruby -S ceedling module:create[unicorns] 2>&1`
563
- expect($?.exitstatus).to match(1)
564
- expect(output).to match(/ERROR: Ceedling Failed/)
565
-
566
- self.handles_creating_the_same_module_twice_using_the_module_plugin_path_extension
567
- end
568
- end
569
- end
570
-
571
- def handles_creating_the_same_module_twice_using_the_module_plugin
572
- @c.with_context do
573
- Dir.chdir @proj_name do
574
- output = `bundle exec ruby -S ceedling module:create[myUnicorn:unicorns]`
575
- expect($?.exitstatus).to match(0)
576
- expect(output).to match(/Generate Complete/i)
577
-
578
- output = `bundle exec ruby -S ceedling module:create[myUnicorn:unicorns] 2>&1`
579
- expect($?.exitstatus).to match(1)
580
- expect(output).to match(/ERROR: Ceedling Failed/)
581
- end
582
- end
583
- end
584
-
585
- def handles_destroying_a_module_that_does_not_exist_using_the_module_plugin
586
- @c.with_context do
587
- Dir.chdir @proj_name do
588
- output = `bundle exec ruby -S ceedling module:destroy[unknown]`
589
- expect($?.exitstatus).to match(0)
590
-
591
- expect(output).to match(/File src\/unknown\.c does not exist so cannot be removed\./)
592
- expect(output).to match(/File src\/unknown\.h does not exist so cannot be removed\./)
593
- expect(output).to match(/File test\/test_unknown\.c does not exist so cannot be removed\./)
594
- expect(output).to match(/Destroy Complete/)
595
-
596
- self.handles_destroying_a_module_that_does_not_exist_using_the_module_plugin_path_extension
597
- end
598
- end
599
- end
600
-
601
- def handles_destroying_a_module_that_does_not_exist_using_the_module_plugin_path_extension
602
- @c.with_context do
603
- Dir.chdir @proj_name do
604
- output = `bundle exec ruby -S ceedling module:destroy[myUnknownModule:unknown]`
605
- expect($?.exitstatus).to match(0)
606
-
607
- expect(output).to match(/File myUnknownModule\/src\/unknown\.c does not exist so cannot be removed\./)
608
- expect(output).to match(/File myUnknownModule\/src\/unknown\.h does not exist so cannot be removed\./)
609
- expect(output).to match(/File myUnknownModule\/test\/test_unknown\.c does not exist so cannot be removed\./)
610
- expect(output).to match(/Destroy Complete/)
611
- end
612
- end
613
- end
614
-
615
- 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