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