ceedling 1.0.1 → 1.1.1

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 (1266) hide show
  1. checksums.yaml +4 -4
  2. data/GIT_COMMIT_SHA +1 -1
  3. data/Gemfile +7 -1
  4. data/Gemfile.lock +19 -12
  5. data/README.md +145 -158
  6. data/Rakefile +189 -9
  7. data/assets/example_file.c +1 -1
  8. data/assets/example_file.h +1 -1
  9. data/assets/example_file_call.c +1 -1
  10. data/assets/example_file_call.h +1 -1
  11. data/assets/example_file_with_statics.c +10 -0
  12. data/assets/example_file_with_stdio.c +13 -0
  13. data/assets/example_file_with_stdio.h +15 -0
  14. data/assets/project.yml +20 -18
  15. data/assets/test_example_file.c +1 -1
  16. data/assets/test_example_file_boom.c +1 -1
  17. data/assets/test_example_file_crash_assert.c +25 -0
  18. data/assets/{test_example_file_crash.c → test_example_file_crash_sigsegv.c} +4 -3
  19. data/assets/test_example_file_source_include.c +17 -0
  20. data/assets/test_example_file_success.c +1 -1
  21. data/assets/test_example_file_unity_printf.c +1 -1
  22. data/assets/test_example_file_verbose.c +1 -1
  23. data/assets/test_example_file_with_mock.c +1 -1
  24. data/assets/test_example_file_with_stdio.c +18 -0
  25. data/assets/test_example_with_parameterized_tests.c +1 -1
  26. data/assets/tests_with_defines/src/adc_hardware.c +1 -1
  27. data/assets/tests_with_defines/src/adc_hardware.h +1 -1
  28. data/assets/tests_with_defines/src/adc_hardware_configurator.c +1 -1
  29. data/assets/tests_with_defines/src/adc_hardware_configurator.h +1 -1
  30. data/assets/tests_with_defines/test/test_adc_hardware.c +1 -1
  31. data/assets/tests_with_defines/test/test_adc_hardware_special.c +1 -1
  32. data/assets/tests_with_encoding/src/unicoder.c +12 -0
  33. data/assets/tests_with_encoding/src/unicoder.h +14 -0
  34. data/assets/tests_with_encoding/test/test_unicoder.c +15 -0
  35. data/assets/tests_with_encoding/test/test_unicoder_partial.c +17 -0
  36. data/assets/tests_with_fallback_conditionals/src/conditional_module.c +18 -0
  37. data/assets/tests_with_fallback_conditionals/src/conditional_module.h +13 -0
  38. data/assets/tests_with_fallback_conditionals/src/optional_dep.h +12 -0
  39. data/assets/tests_with_fallback_conditionals/test/test_conditionals.c +49 -0
  40. data/assets/tests_with_preprocessing/src/adc_hardwareA.c +1 -1
  41. data/assets/tests_with_preprocessing/src/adc_hardwareA.h +1 -1
  42. data/assets/tests_with_preprocessing/src/adc_hardwareB.c +1 -1
  43. data/assets/tests_with_preprocessing/src/adc_hardwareB.h +1 -1
  44. data/assets/tests_with_preprocessing/src/adc_hardwareC.c +1 -1
  45. data/assets/tests_with_preprocessing/src/adc_hardwareC.h +1 -1
  46. data/assets/tests_with_preprocessing/src/adc_hardware_configuratorA.h +1 -1
  47. data/assets/tests_with_preprocessing/src/adc_hardware_configuratorB.h +1 -1
  48. data/assets/tests_with_preprocessing/src/adc_hardware_configuratorC.h +1 -1
  49. data/assets/tests_with_preprocessing/test/test_adc_hardwareA.c +1 -1
  50. data/assets/tests_with_preprocessing/test/test_adc_hardwareB.c +1 -1
  51. data/assets/tests_with_preprocessing/test/test_adc_hardwareC.c +1 -1
  52. data/assets/uncovered_example_file.c +1 -1
  53. data/bin/actions_wrapper.rb +1 -1
  54. data/bin/app_cfg.rb +1 -1
  55. data/bin/ceedling +14 -3
  56. data/bin/cli.rb +110 -38
  57. data/bin/cli_handler.rb +167 -68
  58. data/bin/cli_helper.rb +179 -55
  59. data/bin/configinator.rb +71 -12
  60. data/bin/merginator.rb +82 -0
  61. data/bin/mixin_standardizer.rb +127 -0
  62. data/bin/mixinator.rb +199 -33
  63. data/bin/mixins.rb +4 -2
  64. data/bin/objects.yml +22 -1
  65. data/bin/path_validator.rb +1 -1
  66. data/bin/projectinator.rb +29 -20
  67. data/bin/rake_patches.rb +31 -0
  68. data/bin/recursive_merger.rb +128 -0
  69. data/bin/versionator.rb +2 -2
  70. data/ceedling.gemspec +31 -14
  71. data/config/test_environment.rb +1 -1
  72. data/docs/BreakingChanges.md +16 -3
  73. data/docs/Changelog.md +215 -16
  74. data/docs/KnownIssues.md +35 -0
  75. data/docs/ReleaseNotes.md +137 -19
  76. data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
  77. data/docs/mkdocs/assets/images/ceedling.svg +90 -0
  78. data/docs/mkdocs/assets/images/favicon.png +0 -0
  79. data/docs/mkdocs/assets/stylesheets/admonitions.css +152 -0
  80. data/docs/mkdocs/assets/stylesheets/fixes-local.css +15 -0
  81. data/docs/mkdocs/assets/stylesheets/styling.css +102 -0
  82. data/docs/mkdocs/configuration/environment-vars.md +14 -0
  83. data/docs/mkdocs/configuration/global-collections.md +156 -0
  84. data/docs/mkdocs/configuration/index.md +75 -0
  85. data/docs/mkdocs/configuration/loading.md +89 -0
  86. data/docs/mkdocs/configuration/mixins.md +607 -0
  87. data/docs/mkdocs/configuration/parallel-builds.md +97 -0
  88. data/docs/mkdocs/configuration/project-file.md +198 -0
  89. data/docs/mkdocs/configuration/reference/cexception.md +35 -0
  90. data/docs/mkdocs/configuration/reference/cmock.md +106 -0
  91. data/docs/mkdocs/configuration/reference/defines.md +352 -0
  92. data/docs/mkdocs/configuration/reference/environment.md +55 -0
  93. data/docs/mkdocs/configuration/reference/extension.md +63 -0
  94. data/docs/mkdocs/configuration/reference/files.md +154 -0
  95. data/docs/mkdocs/configuration/reference/flags.md +296 -0
  96. data/docs/mkdocs/configuration/reference/index.md +168 -0
  97. data/docs/mkdocs/configuration/reference/libraries.md +82 -0
  98. data/docs/mkdocs/configuration/reference/mixins.md +24 -0
  99. data/docs/mkdocs/configuration/reference/paths.md +276 -0
  100. data/docs/mkdocs/configuration/reference/plugins.md +60 -0
  101. data/docs/mkdocs/configuration/reference/project.md +333 -0
  102. data/docs/mkdocs/configuration/reference/release-build.md +62 -0
  103. data/docs/mkdocs/configuration/reference/test-build.md +55 -0
  104. data/docs/mkdocs/configuration/reference/test-runner.md +61 -0
  105. data/docs/mkdocs/configuration/reference/tools.md +457 -0
  106. data/docs/mkdocs/configuration/reference/unity.md +49 -0
  107. data/docs/mkdocs/configuration/which-ceedling.md +77 -0
  108. data/docs/mkdocs/development/index.md +50 -0
  109. data/docs/mkdocs/development/plugins/configuration.md +164 -0
  110. data/docs/mkdocs/development/plugins/index.md +84 -0
  111. data/docs/{PluginDevelopmentGuide.md → mkdocs/development/plugins/plugin-subclass.md} +61 -312
  112. data/docs/mkdocs/development/plugins/rake-tasks.md +54 -0
  113. data/docs/mkdocs/development/workflow.md +284 -0
  114. data/docs/mkdocs/getting-started/command-line.md +477 -0
  115. data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +65 -0
  116. data/docs/mkdocs/getting-started/example-projects/index.md +49 -0
  117. data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +60 -0
  118. data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +45 -0
  119. data/docs/mkdocs/getting-started/index.md +41 -0
  120. data/docs/mkdocs/getting-started/installation.md +179 -0
  121. data/docs/mkdocs/getting-started/quick-start.md +83 -0
  122. data/docs/mkdocs/help.md +49 -0
  123. data/docs/mkdocs/index.md +222 -0
  124. data/docs/mkdocs/overview/build-system.md +115 -0
  125. data/docs/mkdocs/overview/index.md +29 -0
  126. data/docs/mkdocs/overview/test-environments.md +33 -0
  127. data/docs/mkdocs/overview/tools-and-frameworks.md +115 -0
  128. data/{plugins/beep/README.md → docs/mkdocs/plugins/beep.md} +10 -9
  129. data/{plugins/bullseye/README.md → docs/mkdocs/plugins/bullseye.md} +14 -12
  130. data/{plugins/command_hooks/README.md → docs/mkdocs/plugins/command-hooks.md} +87 -60
  131. data/{plugins/compile_commands_json_db/README.md → docs/mkdocs/plugins/compile-commands-json-db.md} +7 -5
  132. data/docs/mkdocs/plugins/cppcheck.md +377 -0
  133. data/{plugins/dependencies/README.md → docs/mkdocs/plugins/dependencies.md} +39 -50
  134. data/{plugins/fff/README.md → docs/mkdocs/plugins/fff.md} +42 -37
  135. data/docs/mkdocs/plugins/gcov/examples.md +92 -0
  136. data/docs/mkdocs/plugins/gcov/gcovr.md +272 -0
  137. data/docs/mkdocs/plugins/gcov/index.md +74 -0
  138. data/docs/mkdocs/plugins/gcov/overview.md +145 -0
  139. data/docs/mkdocs/plugins/gcov/reportgenerator.md +58 -0
  140. data/docs/mkdocs/plugins/gcov/reporting.md +147 -0
  141. data/docs/mkdocs/plugins/gcov/setup.md +232 -0
  142. data/docs/mkdocs/plugins/gcov/tool-versions.md +60 -0
  143. data/docs/mkdocs/plugins/gcov/troubleshooting.md +78 -0
  144. data/docs/mkdocs/plugins/index.md +261 -0
  145. data/{plugins/module_generator/README.md → docs/mkdocs/plugins/module-generator.md} +44 -44
  146. data/{plugins/report_build_warnings_log/README.md → docs/mkdocs/plugins/report-build-warnings-log.md} +6 -4
  147. data/{plugins/report_tests_gtestlike_stdout/README.md → docs/mkdocs/plugins/report-tests-gtestlike-stdout.md} +9 -7
  148. data/{plugins/report_tests_ide_stdout/README.md → docs/mkdocs/plugins/report-tests-ide-stdout.md} +8 -7
  149. data/{plugins/report_tests_log_factory/README.md → docs/mkdocs/plugins/report-tests-log-factory.md} +44 -36
  150. data/{plugins/report_tests_pretty_stdout/README.md → docs/mkdocs/plugins/report-tests-pretty-stdout.md} +8 -6
  151. data/{plugins/report_tests_raw_output_log/README.md → docs/mkdocs/plugins/report-tests-raw-output-log.md} +9 -7
  152. data/{plugins/report_tests_teamcity_stdout/README.md → docs/mkdocs/plugins/report-tests-teamcity-stdout.md} +8 -6
  153. data/docs/mkdocs/plugins/sample_html_report.png +0 -0
  154. data/docs/mkdocs/plugins/valgrind.md +198 -0
  155. data/docs/mkdocs/project/release-history.md +61 -0
  156. data/docs/{CeedlingUpgrade.md → mkdocs/project/upgrade.md} +9 -7
  157. data/docs/mkdocs/reference/build-directives.md +37 -0
  158. data/docs/mkdocs/reference/command-line.md +323 -0
  159. data/docs/mkdocs/reference/environment-vars.md +60 -0
  160. data/docs/mkdocs/reference/gcov-plugin.md +577 -0
  161. data/docs/mkdocs/reference/global-collections.md +160 -0
  162. data/docs/mkdocs/reference/index.md +65 -0
  163. data/docs/mkdocs/reference/partials-macros.md +79 -0
  164. data/docs/mkdocs/reference/project-configuration.md +46 -0
  165. data/docs/mkdocs/snapshot/assets/project.yml +404 -0
  166. data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +210 -0
  167. data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +283 -0
  168. data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +92 -0
  169. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +33 -0
  170. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +136 -0
  171. data/docs/mkdocs/snapshot.yml +20 -0
  172. data/docs/mkdocs/testing-guide/build-directives.md +153 -0
  173. data/docs/mkdocs/testing-guide/conventions.md +616 -0
  174. data/docs/mkdocs/testing-guide/frameworks.md +192 -0
  175. data/docs/mkdocs/testing-guide/index.md +80 -0
  176. data/docs/mkdocs/testing-guide/partials/configuration.md +67 -0
  177. data/docs/mkdocs/testing-guide/partials/conventions.md +68 -0
  178. data/docs/mkdocs/testing-guide/partials/directives.md +212 -0
  179. data/docs/mkdocs/testing-guide/partials/example.md +149 -0
  180. data/docs/mkdocs/testing-guide/partials/index.md +88 -0
  181. data/docs/mkdocs/testing-guide/partials/overview.md +81 -0
  182. data/docs/mkdocs/testing-guide/partials/variables.md +244 -0
  183. data/docs/mkdocs/testing-guide/test-cases.md +194 -0
  184. data/docs/mkdocs/testing-guide/test-sample.md +94 -0
  185. data/docs/mkdocs/testing-guide/test-suite-anatomy.md +58 -0
  186. data/examples/cipher_quest/README.md +210 -0
  187. data/examples/cipher_quest/mixin/release_analyze.yml +28 -0
  188. data/examples/cipher_quest/mixin/release_caesar.yml +28 -0
  189. data/examples/cipher_quest/mixin/release_full.yml +30 -0
  190. data/examples/cipher_quest/mixin/release_rot13.yml +28 -0
  191. data/examples/cipher_quest/project.yml +108 -0
  192. data/examples/cipher_quest/src/analyzer.c +83 -0
  193. data/examples/cipher_quest/src/analyzer.h +29 -0
  194. data/examples/cipher_quest/src/cipher.c +59 -0
  195. data/examples/cipher_quest/src/cipher.h +27 -0
  196. data/examples/cipher_quest/src/main.c +151 -0
  197. data/examples/cipher_quest/src/text_utils.c +119 -0
  198. data/examples/cipher_quest/src/text_utils.h +23 -0
  199. data/examples/cipher_quest/test/TestAnalyzer.c +133 -0
  200. data/examples/cipher_quest/test/TestCipherCaesar.c +81 -0
  201. data/examples/cipher_quest/test/TestCipherRot13.c +74 -0
  202. data/examples/cipher_quest/test/TestTextUtils.c +184 -0
  203. data/examples/temp_sensor/README.md +279 -14
  204. data/examples/temp_sensor/mixin/add_gcov.yml +1 -1
  205. data/examples/temp_sensor/mixin/add_unity_helper.yml +1 -1
  206. data/examples/temp_sensor/project.yml +4 -15
  207. data/examples/temp_sensor/src/AdcConductor.c +5 -1
  208. data/examples/temp_sensor/src/AdcConductor.h +1 -1
  209. data/examples/temp_sensor/src/AdcHardware.c +1 -1
  210. data/examples/temp_sensor/src/AdcHardware.h +1 -1
  211. data/examples/temp_sensor/src/AdcHardwareConfigurator.c +2 -1
  212. data/examples/temp_sensor/src/AdcHardwareConfigurator.h +1 -1
  213. data/examples/temp_sensor/src/AdcModel.c +2 -2
  214. data/examples/temp_sensor/src/AdcModel.h +1 -1
  215. data/examples/temp_sensor/src/AdcTemperatureSensor.c +2 -1
  216. data/examples/temp_sensor/src/AdcTemperatureSensor.h +1 -1
  217. data/examples/temp_sensor/src/Executor.c +1 -1
  218. data/examples/temp_sensor/src/Executor.h +1 -1
  219. data/examples/temp_sensor/src/IntrinsicsWrapper.c +1 -1
  220. data/examples/temp_sensor/src/IntrinsicsWrapper.h +1 -1
  221. data/examples/temp_sensor/src/Main.c +3 -3
  222. data/examples/temp_sensor/src/Main.h +1 -1
  223. data/examples/temp_sensor/src/Model.c +1 -1
  224. data/examples/temp_sensor/src/Model.h +1 -1
  225. data/examples/temp_sensor/src/ModelConfig.h +1 -1
  226. data/examples/temp_sensor/src/TaskScheduler.c +1 -1
  227. data/examples/temp_sensor/src/TaskScheduler.h +1 -1
  228. data/examples/temp_sensor/src/TemperatureFilter.c +1 -1
  229. data/examples/temp_sensor/src/TemperatureFilter.h +1 -1
  230. data/examples/temp_sensor/src/TimerConductor.c +1 -1
  231. data/examples/temp_sensor/src/TimerConductor.h +1 -1
  232. data/examples/temp_sensor/src/TimerConfigurator.c +2 -1
  233. data/examples/temp_sensor/src/TimerConfigurator.h +1 -1
  234. data/examples/temp_sensor/src/TimerHardware.c +1 -1
  235. data/examples/temp_sensor/src/TimerHardware.h +1 -1
  236. data/examples/temp_sensor/src/TimerInterruptConfigurator.c +2 -1
  237. data/examples/temp_sensor/src/TimerInterruptConfigurator.h +1 -1
  238. data/examples/temp_sensor/src/TimerInterruptHandler.c +2 -1
  239. data/examples/temp_sensor/src/TimerInterruptHandler.h +1 -1
  240. data/examples/temp_sensor/src/TimerModel.c +1 -1
  241. data/examples/temp_sensor/src/TimerModel.h +1 -1
  242. data/examples/temp_sensor/src/Types.h +5 -2
  243. data/examples/temp_sensor/src/UsartConductor.c +1 -1
  244. data/examples/temp_sensor/src/UsartConductor.h +1 -1
  245. data/examples/temp_sensor/src/UsartConfigurator.c +2 -1
  246. data/examples/temp_sensor/src/UsartConfigurator.h +1 -1
  247. data/examples/temp_sensor/src/UsartHardware.c +1 -1
  248. data/examples/temp_sensor/src/UsartHardware.h +1 -1
  249. data/examples/temp_sensor/src/UsartModel.c +2 -2
  250. data/examples/temp_sensor/src/UsartModel.h +1 -1
  251. data/examples/temp_sensor/src/UsartPutChar.c +2 -1
  252. data/examples/temp_sensor/src/UsartPutChar.h +1 -1
  253. data/examples/temp_sensor/src/UsartTransmitBufferStatus.c +2 -1
  254. data/examples/temp_sensor/src/UsartTransmitBufferStatus.h +1 -1
  255. data/examples/temp_sensor/src/{TemperatureCalculator.c → calculators/TemperatureCalculator.c} +1 -1
  256. data/examples/temp_sensor/src/{TemperatureCalculator.h → calculators/TemperatureCalculator.h} +1 -1
  257. data/examples/temp_sensor/src/{UsartBaudRateRegisterCalculator.c → calculators/UsartBaudRateRegisterCalculator.c} +1 -1
  258. data/examples/temp_sensor/src/{UsartBaudRateRegisterCalculator.h → calculators/UsartBaudRateRegisterCalculator.h} +1 -1
  259. data/examples/temp_sensor/test/TestExecutor.c +1 -1
  260. data/examples/temp_sensor/test/TestMain.c +5 -1
  261. data/examples/temp_sensor/test/TestModel.c +1 -1
  262. data/examples/temp_sensor/test/TestTaskScheduler.c +1 -1
  263. data/examples/temp_sensor/test/TestTemperatureCalculator.c +2 -2
  264. data/examples/temp_sensor/test/TestTemperatureFilter.c +5 -2
  265. data/examples/temp_sensor/test/TestTimerConductor.c +1 -1
  266. data/examples/temp_sensor/test/TestTimerHardware.c +1 -1
  267. data/examples/temp_sensor/test/TestTimerIntegrated.c +8 -4
  268. data/examples/temp_sensor/test/TestTimerModel.c +1 -1
  269. data/examples/temp_sensor/test/TestTimerPlatformStandin.c +154 -0
  270. data/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +1 -1
  271. data/examples/temp_sensor/test/TestUsartConductor.c +1 -1
  272. data/examples/temp_sensor/test/TestUsartHardware.c +1 -1
  273. data/examples/temp_sensor/test/TestUsartIntegrated.c +9 -5
  274. data/examples/temp_sensor/test/TestUsartModel.c +2 -2
  275. data/examples/temp_sensor/test/TestUsartPlatformStandin.c +145 -0
  276. data/examples/temp_sensor/test/adc/TestAdcConductor.c +1 -1
  277. data/examples/temp_sensor/test/adc/TestAdcHardware.c +1 -1
  278. data/examples/temp_sensor/test/adc/TestAdcModel.c +1 -1
  279. data/examples/temp_sensor/test/adc/TestAdcPlatformStandin.c +100 -0
  280. data/examples/temp_sensor/test/platform/at91sam7s256.c +25 -0
  281. data/examples/temp_sensor/test/platform/at91sam7s256.h +183 -0
  282. data/examples/temp_sensor/test/support/UnityHelper.c +1 -1
  283. data/examples/temp_sensor/test/support/UnityHelper.h +1 -1
  284. data/examples/wondrous_forest/README.md +92 -0
  285. data/{lib/ceedling/release_invoker_helper.rb → examples/wondrous_forest/mixin/add_gcov.yml} +14 -4
  286. data/examples/wondrous_forest/project.yml +86 -0
  287. data/examples/wondrous_forest/src/AlertManager.c +125 -0
  288. data/examples/wondrous_forest/src/AlertManager.h +30 -0
  289. data/examples/wondrous_forest/src/EventQueue.c +73 -0
  290. data/examples/wondrous_forest/src/EventQueue.h +22 -0
  291. data/examples/wondrous_forest/src/ForestMonitor.c +88 -0
  292. data/examples/wondrous_forest/src/ForestMonitor.h +18 -0
  293. data/examples/wondrous_forest/src/HumiditySensor.c +57 -0
  294. data/examples/wondrous_forest/src/HumiditySensor.h +17 -0
  295. data/examples/wondrous_forest/src/LightSensor.c +51 -0
  296. data/examples/wondrous_forest/src/LightSensor.h +18 -0
  297. data/examples/wondrous_forest/src/SensorHal.c +62 -0
  298. data/examples/wondrous_forest/src/SensorHal.h +19 -0
  299. data/examples/wondrous_forest/src/SoilMoisture.c +61 -0
  300. data/examples/wondrous_forest/src/SoilMoisture.h +19 -0
  301. data/examples/wondrous_forest/src/TemperatureSensor.c +67 -0
  302. data/examples/wondrous_forest/src/TemperatureSensor.h +18 -0
  303. data/examples/wondrous_forest/src/Types.h +84 -0
  304. data/examples/wondrous_forest/src/UartDriver.c +55 -0
  305. data/examples/wondrous_forest/src/UartDriver.h +18 -0
  306. data/examples/wondrous_forest/test/TestAlertManager.c +105 -0
  307. data/examples/wondrous_forest/test/TestEventQueue.c +117 -0
  308. data/examples/wondrous_forest/test/TestForestMonitor.c +118 -0
  309. data/examples/wondrous_forest/test/TestHumiditySensor.c +85 -0
  310. data/examples/wondrous_forest/test/TestLightSensor.c +79 -0
  311. data/examples/wondrous_forest/test/TestSensorHal.c +58 -0
  312. data/examples/wondrous_forest/test/TestSoilMoisture.c +96 -0
  313. data/examples/wondrous_forest/test/TestTemperatureSensor.c +100 -0
  314. data/examples/wondrous_forest/test/TestUartDriver.c +55 -0
  315. data/lib/ceedling/application.rb +1 -1
  316. data/lib/ceedling/array_patches.rb +28 -0
  317. data/lib/ceedling/batchinator.rb +76 -0
  318. data/lib/ceedling/c_extractor/c_extractor.rb +340 -0
  319. data/lib/ceedling/c_extractor/c_extractor_code_text.rb +283 -0
  320. data/lib/ceedling/c_extractor/c_extractor_constants.rb +38 -0
  321. data/lib/ceedling/c_extractor/c_extractor_declarations.rb +415 -0
  322. data/lib/ceedling/c_extractor/c_extractor_definitions.rb +157 -0
  323. data/lib/ceedling/c_extractor/c_extractor_functions.rb +402 -0
  324. data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +262 -0
  325. data/lib/ceedling/c_extractor/c_extractor_types.rb +122 -0
  326. data/lib/ceedling/cacheinator.rb +1 -1
  327. data/lib/ceedling/cacheinator_helper.rb +23 -4
  328. data/lib/ceedling/ceedling.h +40 -0
  329. data/lib/ceedling/{config_matchinator.rb → config/config_matchinator.rb} +67 -5
  330. data/lib/ceedling/{config_walkinator.rb → config/config_walkinator.rb} +1 -1
  331. data/lib/ceedling/{configurator.rb → config/configurator.rb} +271 -108
  332. data/lib/ceedling/{configurator_builder.rb → config/configurator_builder.rb} +25 -6
  333. data/lib/ceedling/{configurator_plugins.rb → config/configurator_plugins.rb} +2 -4
  334. data/lib/ceedling/{configurator_setup.rb → config/configurator_setup.rb} +39 -71
  335. data/lib/ceedling/{configurator_validator.rb → config/configurator_validator.rb} +1 -1
  336. data/lib/ceedling/constants.rb +59 -18
  337. data/lib/ceedling/defaults.rb +31 -44
  338. data/lib/ceedling/defineinator.rb +2 -2
  339. data/lib/ceedling/dependinator.rb +1 -1
  340. data/lib/ceedling/encodinator.rb +1 -1
  341. data/lib/ceedling/erb_wrapper.rb +1 -1
  342. data/lib/ceedling/exceptions.rb +23 -3
  343. data/lib/ceedling/file_finder.rb +39 -10
  344. data/lib/ceedling/file_finder_helper.rb +2 -2
  345. data/lib/ceedling/file_path_collection_utils.rb +37 -23
  346. data/lib/ceedling/file_path_utils.rb +183 -26
  347. data/lib/ceedling/file_system_wrapper.rb +1 -1
  348. data/lib/ceedling/file_wrapper.rb +14 -1
  349. data/lib/ceedling/flaginator.rb +1 -1
  350. data/lib/ceedling/{generator.rb → generators/generator.rb} +86 -23
  351. data/lib/ceedling/{generator_helper.rb → generators/generator_helper.rb} +17 -11
  352. data/lib/ceedling/{generator_mocks.rb → generators/generator_mocks.rb} +1 -1
  353. data/lib/ceedling/generators/generator_partials.rb +177 -0
  354. data/lib/ceedling/{generator_test_results.rb → generators/generator_test_results.rb} +43 -17
  355. data/lib/ceedling/generators/generator_test_results_backtrace.rb +290 -0
  356. data/lib/ceedling/{generator_test_results_sanity_checker.rb → generators/generator_test_results_sanity_checker.rb} +1 -1
  357. data/lib/ceedling/generators/generator_test_runner.rb +97 -0
  358. data/lib/ceedling/includes/include_factory.rb +43 -0
  359. data/lib/ceedling/{include_pathinator.rb → includes/include_pathinator.rb} +1 -1
  360. data/lib/ceedling/includes/includes.rb +341 -0
  361. data/lib/ceedling/loginator.rb +115 -12
  362. data/lib/ceedling/makefile.rb +1 -1
  363. data/lib/ceedling/objects.yml +145 -43
  364. data/lib/ceedling/parsing_parcels.rb +35 -9
  365. data/lib/ceedling/partials/partializer.rb +444 -0
  366. data/lib/ceedling/partials/partializer_config.rb +217 -0
  367. data/lib/ceedling/partials/partializer_helper.rb +344 -0
  368. data/lib/ceedling/partials/partializer_runtime.rb +29 -0
  369. data/lib/ceedling/partials/partializer_utils.rb +222 -0
  370. data/lib/ceedling/partials/partials.rb +82 -0
  371. data/lib/ceedling/{plugin.rb → plugins/plugin.rb} +1 -1
  372. data/lib/ceedling/{plugin_manager.rb → plugins/plugin_manager.rb} +47 -21
  373. data/lib/ceedling/{plugin_manager_helper.rb → plugins/plugin_manager_helper.rb} +1 -1
  374. data/lib/ceedling/{plugin_reportinator.rb → plugins/plugin_reportinator.rb} +10 -18
  375. data/lib/ceedling/{plugin_reportinator_helper.rb → plugins/plugin_reportinator_helper.rb} +22 -26
  376. data/lib/ceedling/plugins/report_tests_stdout_plugin.rb +88 -0
  377. data/lib/ceedling/preprocess/README.md +184 -0
  378. data/lib/ceedling/preprocess/c_comment_scanner.rb +194 -0
  379. data/lib/ceedling/preprocess/c_preprocessor_conditionals.rb +170 -0
  380. data/lib/ceedling/preprocess/preprocessinator.rb +606 -0
  381. data/lib/ceedling/preprocess/preprocessinator_bare_includes_extractor.rb +69 -0
  382. data/lib/ceedling/preprocess/preprocessinator_code_finder.rb +150 -0
  383. data/lib/ceedling/preprocess/preprocessinator_comment_stripper.rb +80 -0
  384. data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +392 -0
  385. data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +224 -0
  386. data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +215 -0
  387. data/lib/ceedling/preprocess/preprocessinator_reconstructor.rb +398 -0
  388. data/lib/ceedling/rake_app/rake_invocation_tracker.rb +39 -0
  389. data/lib/ceedling/rake_app/rake_task_registry.rb +210 -0
  390. data/lib/ceedling/{rake_utils.rb → rake_app/rake_utils.rb} +1 -1
  391. data/lib/ceedling/{rake_wrapper.rb → rake_app/rake_wrapper.rb} +1 -1
  392. data/lib/ceedling/rake_app/rakefile_component_resolver.rb +77 -0
  393. data/lib/ceedling/rakefile.rb +16 -8
  394. data/lib/ceedling/release_invoker.rb +48 -4
  395. data/lib/ceedling/reportinator.rb +39 -18
  396. data/lib/ceedling/ruby_expandinator.rb +61 -0
  397. data/lib/ceedling/rules_release.rake +4 -2
  398. data/lib/ceedling/rules_tests.rake +1 -23
  399. data/lib/ceedling/setupinator.rb +23 -11
  400. data/lib/ceedling/stream_wrapper.rb +1 -1
  401. data/lib/ceedling/system_utils.rb +1 -1
  402. data/lib/ceedling/system_wrapper.rb +18 -21
  403. data/lib/ceedling/tasks_base.rake +3 -3
  404. data/lib/ceedling/tasks_filesystem.rake +22 -12
  405. data/lib/ceedling/tasks_release.rake +11 -18
  406. data/lib/ceedling/tasks_tests.rake +1 -1
  407. data/lib/ceedling/test_context_extractor.rb +178 -109
  408. data/lib/ceedling/test_invoker/test_build_executor.rb +660 -0
  409. data/lib/ceedling/test_invoker/test_build_planner.rb +275 -0
  410. data/lib/ceedling/test_invoker/test_build_setup.rb +441 -0
  411. data/lib/ceedling/test_invoker/test_invoker.rb +251 -0
  412. data/lib/ceedling/test_invoker/test_invoker_types.rb +56 -0
  413. data/lib/ceedling/test_runner_manager.rb +1 -1
  414. data/lib/ceedling/tool_executor.rb +34 -19
  415. data/lib/ceedling/tool_executor_helper.rb +7 -15
  416. data/lib/ceedling/tool_validator.rb +24 -8
  417. data/lib/ceedling/verbosinator.rb +1 -1
  418. data/lib/ceedling/yaml_wrapper.rb +72 -12
  419. data/lib/ceedling.rb +1 -1
  420. data/lib/snapshot.rb +43 -0
  421. data/lib/version.rb +2 -2
  422. data/license.txt +1 -1
  423. data/mkdocs.local.yml +45 -0
  424. data/mkdocs.yml +202 -0
  425. data/plugins/beep/config/defaults.yml +1 -1
  426. data/plugins/beep/config/defaults_beep.rb +1 -1
  427. data/plugins/beep/lib/beep.rb +7 -5
  428. data/plugins/bullseye/assets/template.erb +1 -1
  429. data/plugins/bullseye/bullseye.rake +1 -1
  430. data/plugins/bullseye/config/defaults.yml +1 -1
  431. data/plugins/bullseye/lib/bullseye.rb +9 -9
  432. data/plugins/command_hooks/lib/command_hooks.rb +47 -38
  433. data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +2 -2
  434. data/plugins/cppcheck/AUTHORS.md +8 -0
  435. data/plugins/cppcheck/config/defaults.yml +44 -0
  436. data/plugins/cppcheck/config/defaults_cppcheck.rb +32 -0
  437. data/plugins/cppcheck/cppcheck.rake +54 -0
  438. data/plugins/cppcheck/lib/cppcheck.rb +247 -0
  439. data/plugins/cppcheck/lib/cppcheck_constants.rb +20 -0
  440. data/plugins/cppcheck/lib/cppcheck_reports.rb +160 -0
  441. data/plugins/dependencies/Rakefile +1 -1
  442. data/plugins/dependencies/config/defaults.yml +1 -1
  443. data/plugins/dependencies/dependencies.rake +3 -3
  444. data/plugins/dependencies/example/boss/project.yml +1 -3
  445. data/plugins/dependencies/example/boss/src/boss.c +1 -1
  446. data/plugins/dependencies/example/boss/src/boss.h +1 -1
  447. data/plugins/dependencies/example/boss/src/main.c +1 -1
  448. data/plugins/dependencies/example/boss/test/test_boss.c +1 -1
  449. data/plugins/dependencies/example/supervisor/project.yml +1 -3
  450. data/plugins/dependencies/example/supervisor/src/supervisor.c +1 -1
  451. data/plugins/dependencies/example/supervisor/src/supervisor.h +1 -1
  452. data/plugins/dependencies/example/supervisor/test/test_supervisor.c +1 -1
  453. data/plugins/dependencies/lib/dependencies.rb +14 -2
  454. data/plugins/fff/Rakefile +1 -1
  455. data/plugins/fff/config/fff.yml +1 -1
  456. data/plugins/fff/examples/fff_example/project.yml +2 -2
  457. data/plugins/fff/examples/fff_example/src/bar.c +1 -1
  458. data/plugins/fff/examples/fff_example/src/bar.h +1 -1
  459. data/plugins/fff/examples/fff_example/src/custom_types.h +1 -1
  460. data/plugins/fff/examples/fff_example/src/display.c +1 -1
  461. data/plugins/fff/examples/fff_example/src/display.h +1 -1
  462. data/plugins/fff/examples/fff_example/src/event_processor.c +1 -1
  463. data/plugins/fff/examples/fff_example/src/event_processor.h +1 -1
  464. data/plugins/fff/examples/fff_example/src/foo.c +1 -1
  465. data/plugins/fff/examples/fff_example/src/foo.h +1 -1
  466. data/plugins/fff/examples/fff_example/src/subfolder/zzz.c +1 -1
  467. data/plugins/fff/examples/fff_example/src/subfolder/zzz.h +1 -1
  468. data/plugins/fff/examples/fff_example/test/test_event_processor.c +1 -1
  469. data/plugins/fff/examples/fff_example/test/test_foo.c +1 -1
  470. data/plugins/fff/lib/fff.rb +10 -5
  471. data/plugins/fff/lib/fff_mock_generator.rb +1 -1
  472. data/plugins/fff/spec/fff_mock_header_generator_spec.rb +1 -1
  473. data/plugins/fff/spec/fff_mock_source_generator_spec.rb +1 -1
  474. data/plugins/fff/spec/header_generator.rb +1 -1
  475. data/plugins/fff/spec/spec_helper.rb +1 -1
  476. data/plugins/fff/src/fff_unity_helper.h +1 -1
  477. data/plugins/gcov/config/defaults.yml +4 -1
  478. data/plugins/gcov/config/defaults_gcov.rb +40 -13
  479. data/plugins/gcov/gcov.rake +31 -1
  480. data/plugins/gcov/lib/console_reportinator.rb +182 -0
  481. data/plugins/gcov/lib/gcov.rb +191 -105
  482. data/plugins/gcov/lib/gcov_constants.rb +16 -4
  483. data/plugins/gcov/lib/gcov_reportinator.rb +67 -0
  484. data/{spec/configurator_helper_spec.rb → plugins/gcov/lib/gcov_types.rb} +2 -6
  485. data/plugins/gcov/lib/gcovr_reportinator.rb +293 -145
  486. data/plugins/gcov/lib/reportgenerator_reportinator.rb +245 -117
  487. data/plugins/module_generator/Rakefile +1 -1
  488. data/plugins/module_generator/assets/stubby1.h +1 -1
  489. data/plugins/module_generator/assets/stubby2.h +1 -1
  490. data/plugins/module_generator/config/module_generator.yml +1 -1
  491. data/plugins/module_generator/example/project.yml +1 -3
  492. data/plugins/module_generator/lib/module_generator.rb +2 -2
  493. data/plugins/module_generator/module_generator.rake +1 -1
  494. data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +14 -20
  495. data/plugins/report_tests_gtestlike_stdout/assets/template.erb +3 -3
  496. data/plugins/report_tests_gtestlike_stdout/config/report_tests_gtestlike_stdout.yml +1 -1
  497. data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +4 -61
  498. data/plugins/report_tests_ide_stdout/config/report_tests_ide_stdout.yml +1 -1
  499. data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +7 -60
  500. data/plugins/report_tests_log_factory/config/defaults.yml +1 -1
  501. data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +5 -5
  502. data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +302 -133
  503. data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +9 -7
  504. data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +6 -5
  505. data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -36
  506. data/plugins/report_tests_log_factory/lib/tests_reporter.rb +8 -8
  507. data/plugins/report_tests_pretty_stdout/assets/template.erb +1 -2
  508. data/plugins/report_tests_pretty_stdout/config/report_tests_pretty_stdout.yml +1 -1
  509. data/plugins/report_tests_pretty_stdout/lib/report_tests_pretty_stdout.rb +4 -65
  510. data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +4 -4
  511. data/plugins/report_tests_teamcity_stdout/config/defaults.yml +1 -1
  512. data/plugins/report_tests_teamcity_stdout/config/report_tests_teamcity_stdout.yml +1 -1
  513. data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +2 -2
  514. data/plugins/valgrind/config/defaults.yml +19 -0
  515. data/plugins/valgrind/config/defaults_valgrind.rb +20 -0
  516. data/plugins/valgrind/lib/valgrind.rb +132 -0
  517. data/plugins/valgrind/lib/valgrind_constants.rb +13 -0
  518. data/plugins/valgrind/valgrind.rake +87 -0
  519. data/site-local/404.html +4002 -0
  520. data/site-local/assets/images/ceedling-logo-circle.png +0 -0
  521. data/site-local/assets/images/ceedling.svg +90 -0
  522. data/site-local/assets/images/favicon.png +0 -0
  523. data/site-local/assets/javascripts/bundle.d7400e89.min.js +16 -0
  524. data/site-local/assets/javascripts/bundle.d7400e89.min.js.map +7 -0
  525. data/site-local/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  526. data/site-local/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  527. data/site-local/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  528. data/site-local/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  529. data/site-local/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  530. data/site-local/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  531. data/site-local/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  532. data/site-local/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  533. data/site-local/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  534. data/site-local/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  535. data/site-local/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  536. data/site-local/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  537. data/site-local/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  538. data/site-local/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  539. data/site-local/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  540. data/site-local/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  541. data/site-local/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  542. data/site-local/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  543. data/site-local/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  544. data/site-local/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  545. data/site-local/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  546. data/site-local/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  547. data/site-local/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  548. data/site-local/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  549. data/site-local/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  550. data/site-local/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  551. data/site-local/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  552. data/site-local/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  553. data/site-local/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  554. data/site-local/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  555. data/site-local/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  556. data/site-local/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  557. data/site-local/assets/javascripts/lunr/tinyseg.js +206 -0
  558. data/site-local/assets/javascripts/lunr/wordcut.js +6708 -0
  559. data/site-local/assets/javascripts/workers/search.2c215733.min.js +42 -0
  560. data/site-local/assets/javascripts/workers/search.2c215733.min.js.map +7 -0
  561. data/site-local/assets/stylesheets/admonitions.css +152 -0
  562. data/site-local/assets/stylesheets/fixes-local.css +15 -0
  563. data/site-local/assets/stylesheets/main.ec1eaa64.min.css +1 -0
  564. data/site-local/assets/stylesheets/main.ec1eaa64.min.css.map +1 -0
  565. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +1 -0
  566. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +1 -0
  567. data/site-local/assets/stylesheets/styling.css +102 -0
  568. data/site-local/configuration/environment-vars.html +4102 -0
  569. data/site-local/configuration/global-collections.html +4248 -0
  570. data/site-local/configuration/index.html +4169 -0
  571. data/site-local/configuration/loading.html +4348 -0
  572. data/site-local/configuration/mixins.html +5060 -0
  573. data/site-local/configuration/parallel-builds.html +4347 -0
  574. data/site-local/configuration/project-file.html +4474 -0
  575. data/site-local/configuration/reference/cexception.html +4225 -0
  576. data/site-local/configuration/reference/cmock.html +4401 -0
  577. data/site-local/configuration/reference/defines.html +4734 -0
  578. data/site-local/configuration/reference/environment.html +4242 -0
  579. data/site-local/configuration/reference/extension.html +4387 -0
  580. data/site-local/configuration/reference/files.html +4541 -0
  581. data/site-local/configuration/reference/flags.html +4681 -0
  582. data/site-local/configuration/reference/index.html +4290 -0
  583. data/site-local/configuration/reference/libraries.html +4365 -0
  584. data/site-local/configuration/reference/mixins.html +4195 -0
  585. data/site-local/configuration/reference/paths.html +4714 -0
  586. data/site-local/configuration/reference/plugins.html +4262 -0
  587. data/site-local/configuration/reference/project.html +4777 -0
  588. data/site-local/configuration/reference/release-build.html +4287 -0
  589. data/site-local/configuration/reference/test-build.html +4264 -0
  590. data/site-local/configuration/reference/test-runner.html +4289 -0
  591. data/site-local/configuration/reference/tools.html +5120 -0
  592. data/site-local/configuration/reference/unity.html +4255 -0
  593. data/site-local/configuration/which-ceedling.html +4269 -0
  594. data/site-local/development/index.html +4148 -0
  595. data/site-local/development/plugins/configuration.html +4446 -0
  596. data/site-local/development/plugins/index.html +4212 -0
  597. data/site-local/development/plugins/plugin-subclass.html +5068 -0
  598. data/site-local/development/plugins/rake-tasks.html +4236 -0
  599. data/site-local/development/workflow.html +4664 -0
  600. data/site-local/getting-started/command-line.html +5498 -0
  601. data/site-local/getting-started/example-projects/cipher-quest.html +4272 -0
  602. data/site-local/getting-started/example-projects/index.html +4173 -0
  603. data/site-local/getting-started/example-projects/temp-sensor.html +4322 -0
  604. data/site-local/getting-started/example-projects/wondrous-forest.html +4290 -0
  605. data/site-local/getting-started/index.html +4116 -0
  606. data/site-local/getting-started/installation.html +4460 -0
  607. data/site-local/getting-started/quick-start.html +4276 -0
  608. data/site-local/help.html +4081 -0
  609. data/site-local/index.html +4369 -0
  610. data/site-local/overview/build-system.html +4288 -0
  611. data/site-local/overview/index.html +4103 -0
  612. data/site-local/overview/test-environments.html +4116 -0
  613. data/site-local/overview/tools-and-frameworks.html +4433 -0
  614. data/site-local/plugins/beep.html +4413 -0
  615. data/site-local/plugins/bullseye.html +4255 -0
  616. data/site-local/plugins/command-hooks.html +5027 -0
  617. data/site-local/plugins/compile-commands-json-db.html +4243 -0
  618. data/site-local/plugins/cppcheck.html +4851 -0
  619. data/site-local/plugins/dependencies.html +4828 -0
  620. data/site-local/plugins/fff.html +4661 -0
  621. data/site-local/plugins/gcov/examples.html +4293 -0
  622. data/site-local/plugins/gcov/gcovr.html +4610 -0
  623. data/site-local/plugins/gcov/index.html +4156 -0
  624. data/site-local/plugins/gcov/overview.html +4410 -0
  625. data/site-local/plugins/gcov/reportgenerator.html +4164 -0
  626. data/site-local/plugins/gcov/reporting.html +4336 -0
  627. data/site-local/plugins/gcov/setup.html +4597 -0
  628. data/site-local/plugins/gcov/tool-versions.html +4269 -0
  629. data/site-local/plugins/gcov/troubleshooting.html +4313 -0
  630. data/site-local/plugins/index.html +4412 -0
  631. data/site-local/plugins/module-generator.html +4588 -0
  632. data/site-local/plugins/report-build-warnings-log.html +4229 -0
  633. data/site-local/plugins/report-tests-gtestlike-stdout.html +4357 -0
  634. data/site-local/plugins/report-tests-ide-stdout.html +4270 -0
  635. data/site-local/plugins/report-tests-log-factory.html +4792 -0
  636. data/site-local/plugins/report-tests-pretty-stdout.html +4265 -0
  637. data/site-local/plugins/report-tests-raw-output-log.html +4292 -0
  638. data/site-local/plugins/report-tests-teamcity-stdout.html +4291 -0
  639. data/site-local/plugins/sample_html_report.png +0 -0
  640. data/site-local/plugins/valgrind.html +4611 -0
  641. data/site-local/project/release-history.html +4225 -0
  642. data/site-local/project/upgrade.html +4314 -0
  643. data/site-local/reference/build-directives.html +4210 -0
  644. data/site-local/reference/command-line.html +4989 -0
  645. data/site-local/reference/environment-vars.html +4278 -0
  646. data/site-local/reference/gcov-plugin.html +5886 -0
  647. data/site-local/reference/global-collections.html +4385 -0
  648. data/site-local/reference/index.html +4126 -0
  649. data/site-local/reference/partials-macros.html +4326 -0
  650. data/site-local/reference/project-configuration.html +4253 -0
  651. data/site-local/sitemap.xml +3 -0
  652. data/site-local/sitemap.xml.gz +0 -0
  653. data/site-local/snapshot/assets/project.yml +404 -0
  654. data/site-local/snapshot/examples/cipher_quest/index.html +4292 -0
  655. data/site-local/snapshot/examples/temp_sensor/index.html +4416 -0
  656. data/site-local/snapshot/examples/wondrous_forest/index.html +4200 -0
  657. data/site-local/snapshot/plugins/gcov/config/defaults.yml +33 -0
  658. data/site-local/snapshot/plugins/gcov/config/defaults_gcov.rb +136 -0
  659. data/site-local/testing-guide/build-directives.html +4481 -0
  660. data/site-local/testing-guide/conventions.html +5233 -0
  661. data/site-local/testing-guide/frameworks.html +4488 -0
  662. data/site-local/testing-guide/index.html +4174 -0
  663. data/site-local/testing-guide/partials/configuration.html +4347 -0
  664. data/site-local/testing-guide/partials/conventions.html +4327 -0
  665. data/site-local/testing-guide/partials/directives.html +4680 -0
  666. data/site-local/testing-guide/partials/example.html +4448 -0
  667. data/site-local/testing-guide/partials/index.html +4176 -0
  668. data/site-local/testing-guide/partials/overview.html +4322 -0
  669. data/site-local/testing-guide/partials/variables.html +4548 -0
  670. data/site-local/testing-guide/test-cases.html +4436 -0
  671. data/site-local/testing-guide/test-sample.html +4265 -0
  672. data/site-local/testing-guide/test-suite-anatomy.html +4249 -0
  673. data/spec/manual/stress_test.rb +1 -1
  674. data/spec/support/other_target.yml +1 -1
  675. data/spec/support/spec_helper.rb +20 -0
  676. data/spec/support/system/gem_dir_layout.rb +20 -0
  677. data/spec/support/system/spec_system_helper.rb +206 -0
  678. data/spec/support/system/system_context.rb +312 -0
  679. data/spec/support/system/system_test_output.rb +28 -0
  680. data/spec/support/target.yml +1 -1
  681. data/spec/system/cppcheck_deployment_spec.rb +49 -0
  682. data/spec/system/deployment_as_gem_spec.rb +86 -48
  683. data/spec/system/deployment_as_vendor_spec.rb +141 -79
  684. data/spec/system/encoding_stress_spec.rb +153 -0
  685. data/spec/system/example_cipher_quest_spec.rb +186 -0
  686. data/spec/system/example_temp_sensor_spec.rb +41 -35
  687. data/spec/system/example_wondrous_forest_spec.rb +117 -0
  688. data/spec/{gcov → system}/gcov_deployment_spec.rb +55 -26
  689. data/spec/system/mixin_ordering_spec.rb +548 -0
  690. data/spec/system/preprocessing_encoding_spec.rb +114 -0
  691. data/spec/system/preprocessing_fallback_conditionals_spec.rb +166 -0
  692. data/spec/system/preprocessing_locale_spec.rb +153 -0
  693. data/spec/system/preprocessing_parameterized_tests_spec.rb +183 -0
  694. data/spec/system/ruby_replacement_spec.rb +141 -0
  695. data/spec/{spec_system_helper.rb → system/support/common_test_cases.rb} +301 -350
  696. data/spec/system/support/cppcheck_common_test_cases.rb +98 -0
  697. data/spec/system/support/cppcheck_helpers.rb +27 -0
  698. data/spec/{gcov/gcov_test_cases_spec.rb → system/support/gcov_common_test_cases.rb} +227 -111
  699. data/spec/system/support/gcov_helpers.rb +81 -0
  700. data/spec/system/support/valgrind_common_test_cases.rb +120 -0
  701. data/spec/system/support/valgrind_helpers.rb +21 -0
  702. data/spec/system/upgrade_as_vendor_spec.rb +74 -39
  703. data/spec/system/valgrind_deployment_spec.rb +53 -0
  704. data/spec/units/bin/cli_helper_spec.rb +69 -0
  705. data/spec/units/bin/merginator_spec.rb +279 -0
  706. data/spec/units/bin/mixin_standardizer_spec.rb +231 -0
  707. data/spec/units/bin/mixinator_spec.rb +583 -0
  708. data/spec/units/bin/projectinator_mixin_spec.rb +362 -0
  709. data/spec/units/bin/recursive_merger_spec.rb +241 -0
  710. data/spec/units/c_extractor/c_extractor_code_text_spec.rb +2091 -0
  711. data/spec/units/c_extractor/c_extractor_declarations_spec.rb +746 -0
  712. data/spec/units/c_extractor/c_extractor_definitions_spec.rb +417 -0
  713. data/spec/units/c_extractor/c_extractor_functions_spec.rb +2742 -0
  714. data/spec/units/c_extractor/c_extractor_integration_spec.rb +935 -0
  715. data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +497 -0
  716. data/spec/units/c_extractor/c_extractor_spec.rb +356 -0
  717. data/spec/units/config_matchinator_spec.rb +401 -0
  718. data/spec/{config_walkinator_spec.rb → units/config_walkinator_spec.rb} +2 -2
  719. data/spec/{configurator_builder_spec.rb → units/configurator_builder_spec.rb} +1 -1
  720. data/spec/units/configurator_spec.rb +187 -0
  721. data/spec/{file_finder_helper_spec.rb → units/file_finder_helper_spec.rb} +1 -1
  722. data/spec/units/file_path_collection_utils_spec.rb +222 -0
  723. data/spec/units/file_path_utils_spec.rb +274 -0
  724. data/spec/units/generators/generator_helper_spec.rb +112 -0
  725. data/spec/units/generators/generator_partials_spec.rb +795 -0
  726. data/spec/units/generators/generator_test_results_backtrace_spec.rb +492 -0
  727. data/spec/{generator_test_results_sanity_checker_spec.rb → units/generators/generator_test_results_sanity_checker_spec.rb} +5 -4
  728. data/spec/units/generators/generator_test_results_spec.rb +412 -0
  729. data/spec/units/generators/generator_test_runner_spec.rb +120 -0
  730. data/spec/units/includes/include_spec.rb +716 -0
  731. data/spec/units/includes/includes_spec.rb +1069 -0
  732. data/spec/units/parsing_parcels_spec.rb +139 -0
  733. data/spec/units/partials/partializer_config_spec.rb +388 -0
  734. data/spec/units/partials/partializer_helper_spec.rb +992 -0
  735. data/spec/units/partials/partializer_spec.rb +1629 -0
  736. data/spec/units/partials/partializer_utils_spec.rb +587 -0
  737. data/spec/units/plugin_manager_spec.rb +48 -0
  738. data/spec/units/plugins/cppcheck_spec.rb +557 -0
  739. data/spec/units/preprocess/c_comment_scanner_spec.rb +409 -0
  740. data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +396 -0
  741. data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +361 -0
  742. data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +580 -0
  743. data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +418 -0
  744. data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +337 -0
  745. data/spec/{preprocessinator_extractor_spec.rb → units/preprocess/preprocessinator_reconstructor_spec.rb} +297 -5
  746. data/spec/units/reportinator_spec.rb +251 -0
  747. data/spec/units/ruby_expandinator_spec.rb +91 -0
  748. data/spec/{system_utils_spec.rb → units/system_utils_spec.rb} +4 -4
  749. data/spec/units/test_build_executor_spec.rb +114 -0
  750. data/spec/units/test_context_extractor_spec.rb +437 -0
  751. data/spec/{tool_executor_helper_spec.rb → units/tool_executor_helper_spec.rb} +19 -33
  752. data/spec/units/tool_executor_spec.rb +83 -0
  753. data/spec/units/tool_validator_spec.rb +60 -0
  754. data/spec/units/yaml_wrapper_spec.rb +108 -0
  755. data/vendor/cmock/Gemfile +4 -1
  756. data/vendor/cmock/LICENSE.txt +1 -1
  757. data/vendor/cmock/config/production_environment.rb +1 -1
  758. data/vendor/cmock/config/test_environment.rb +1 -1
  759. data/vendor/cmock/docs/CMockChangeLog.md +47 -0
  760. data/vendor/cmock/docs/CMockKnownIssues.md +0 -1
  761. data/vendor/cmock/docs/CMock_ArgumentValidation.md +180 -25
  762. data/vendor/cmock/docs/CMock_Summary.md +158 -16
  763. data/vendor/cmock/examples/make_example/Makefile +1 -1
  764. data/vendor/cmock/examples/make_example/src/foo.c +1 -1
  765. data/vendor/cmock/examples/make_example/src/foo.h +1 -1
  766. data/vendor/cmock/examples/make_example/src/main.c +1 -1
  767. data/vendor/cmock/examples/make_example/test/test_foo.c +1 -1
  768. data/vendor/cmock/examples/make_example/test/test_main.c +2 -2
  769. data/vendor/cmock/examples/temp_sensor/project.yml +75 -0
  770. data/vendor/cmock/examples/temp_sensor/rakefile.rb +3 -3
  771. data/vendor/cmock/examples/temp_sensor/rakefile_helper.rb +163 -119
  772. data/vendor/cmock/examples/temp_sensor/src/AT91SAM7X256.h +1 -1
  773. data/vendor/cmock/examples/temp_sensor/src/AdcConductor.c +1 -1
  774. data/vendor/cmock/examples/temp_sensor/src/AdcConductor.h +1 -1
  775. data/vendor/cmock/examples/temp_sensor/src/AdcHardware.c +1 -1
  776. data/vendor/cmock/examples/temp_sensor/src/AdcHardware.h +1 -1
  777. data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.c +1 -1
  778. data/vendor/cmock/examples/temp_sensor/src/AdcHardwareConfigurator.h +1 -1
  779. data/vendor/cmock/examples/temp_sensor/src/AdcModel.c +3 -1
  780. data/vendor/cmock/examples/temp_sensor/src/AdcModel.h +1 -1
  781. data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.c +1 -1
  782. data/vendor/cmock/examples/temp_sensor/src/AdcTemperatureSensor.h +1 -1
  783. data/vendor/cmock/examples/temp_sensor/src/Executor.c +1 -1
  784. data/vendor/cmock/examples/temp_sensor/src/Executor.h +1 -1
  785. data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.c +1 -1
  786. data/vendor/cmock/examples/temp_sensor/src/IntrinsicsWrapper.h +1 -1
  787. data/vendor/cmock/examples/temp_sensor/src/Main.c +1 -1
  788. data/vendor/cmock/examples/temp_sensor/src/Main.h +1 -1
  789. data/vendor/cmock/examples/temp_sensor/src/Model.c +1 -1
  790. data/vendor/cmock/examples/temp_sensor/src/Model.h +1 -1
  791. data/vendor/cmock/examples/temp_sensor/src/ModelConfig.h +1 -1
  792. data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.c +1 -1
  793. data/vendor/cmock/examples/temp_sensor/src/TaskScheduler.h +1 -1
  794. data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.c +1 -1
  795. data/vendor/cmock/examples/temp_sensor/src/TemperatureCalculator.h +1 -1
  796. data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.c +2 -2
  797. data/vendor/cmock/examples/temp_sensor/src/TemperatureFilter.h +1 -1
  798. data/vendor/cmock/examples/temp_sensor/src/TimerConductor.c +1 -1
  799. data/vendor/cmock/examples/temp_sensor/src/TimerConductor.h +1 -1
  800. data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.c +2 -2
  801. data/vendor/cmock/examples/temp_sensor/src/TimerConfigurator.h +1 -1
  802. data/vendor/cmock/examples/temp_sensor/src/TimerHardware.c +1 -1
  803. data/vendor/cmock/examples/temp_sensor/src/TimerHardware.h +1 -1
  804. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.c +10 -1
  805. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptConfigurator.h +1 -1
  806. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.c +1 -1
  807. data/vendor/cmock/examples/temp_sensor/src/TimerInterruptHandler.h +1 -1
  808. data/vendor/cmock/examples/temp_sensor/src/TimerModel.c +1 -1
  809. data/vendor/cmock/examples/temp_sensor/src/TimerModel.h +1 -1
  810. data/vendor/cmock/examples/temp_sensor/src/Types.h +1 -1
  811. data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.c +1 -1
  812. data/vendor/cmock/examples/temp_sensor/src/UsartBaudRateRegisterCalculator.h +1 -1
  813. data/vendor/cmock/examples/temp_sensor/src/UsartConductor.c +1 -1
  814. data/vendor/cmock/examples/temp_sensor/src/UsartConductor.h +1 -1
  815. data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.c +1 -1
  816. data/vendor/cmock/examples/temp_sensor/src/UsartConfigurator.h +1 -1
  817. data/vendor/cmock/examples/temp_sensor/src/UsartHardware.c +1 -1
  818. data/vendor/cmock/examples/temp_sensor/src/UsartHardware.h +1 -1
  819. data/vendor/cmock/examples/temp_sensor/src/UsartModel.c +2 -2
  820. data/vendor/cmock/examples/temp_sensor/src/UsartModel.h +1 -1
  821. data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.c +2 -2
  822. data/vendor/cmock/examples/temp_sensor/src/UsartPutChar.h +1 -1
  823. data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.c +1 -1
  824. data/vendor/cmock/examples/temp_sensor/src/UsartTransmitBufferStatus.h +1 -1
  825. data/vendor/cmock/examples/temp_sensor/test/TestAdcConductor.c +1 -1
  826. data/vendor/cmock/examples/temp_sensor/test/TestAdcHardware.c +1 -1
  827. data/vendor/cmock/examples/temp_sensor/test/TestAdcHardwareConfigurator.c +1 -1
  828. data/vendor/cmock/examples/temp_sensor/test/TestAdcModel.c +1 -1
  829. data/vendor/cmock/examples/temp_sensor/test/TestAdcTemperatureSensor.c +1 -1
  830. data/vendor/cmock/examples/temp_sensor/test/TestExecutor.c +1 -1
  831. data/vendor/cmock/examples/temp_sensor/test/TestMain.c +1 -1
  832. data/vendor/cmock/examples/temp_sensor/test/TestModel.c +1 -1
  833. data/vendor/cmock/examples/temp_sensor/test/TestTaskScheduler.c +1 -1
  834. data/vendor/cmock/examples/temp_sensor/test/TestTemperatureCalculator.c +1 -1
  835. data/vendor/cmock/examples/temp_sensor/test/TestTemperatureFilter.c +2 -2
  836. data/vendor/cmock/examples/temp_sensor/test/TestTimerConductor.c +1 -1
  837. data/vendor/cmock/examples/temp_sensor/test/TestTimerConfigurator.c +1 -1
  838. data/vendor/cmock/examples/temp_sensor/test/TestTimerHardware.c +1 -1
  839. data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptConfigurator.c +1 -1
  840. data/vendor/cmock/examples/temp_sensor/test/TestTimerInterruptHandler.c +1 -1
  841. data/vendor/cmock/examples/temp_sensor/test/TestTimerModel.c +1 -1
  842. data/vendor/cmock/examples/temp_sensor/test/TestUsartBaudRateRegisterCalculator.c +1 -1
  843. data/vendor/cmock/examples/temp_sensor/test/TestUsartConductor.c +7 -5
  844. data/vendor/cmock/examples/temp_sensor/test/TestUsartConfigurator.c +1 -1
  845. data/vendor/cmock/examples/temp_sensor/test/TestUsartHardware.c +3 -2
  846. data/vendor/cmock/examples/temp_sensor/test/TestUsartModel.c +1 -1
  847. data/vendor/cmock/examples/temp_sensor/test/TestUsartPutChar.c +1 -1
  848. data/vendor/cmock/examples/temp_sensor/test/TestUsartTransmitBufferStatus.c +1 -1
  849. data/vendor/cmock/lib/cmock.rb +1 -1
  850. data/vendor/cmock/lib/cmock_config.rb +8 -2
  851. data/vendor/cmock/lib/cmock_file_writer.rb +38 -1
  852. data/vendor/cmock/lib/cmock_generator.rb +44 -27
  853. data/vendor/cmock/lib/cmock_generator_plugin_array.rb +68 -15
  854. data/vendor/cmock/lib/cmock_generator_plugin_callback.rb +13 -3
  855. data/vendor/cmock/lib/cmock_generator_plugin_cexception.rb +12 -3
  856. data/vendor/cmock/lib/cmock_generator_plugin_expect.rb +33 -15
  857. data/vendor/cmock/lib/cmock_generator_plugin_expect_any_args.rb +13 -8
  858. data/vendor/cmock/lib/cmock_generator_plugin_ignore.rb +15 -10
  859. data/vendor/cmock/lib/cmock_generator_plugin_ignore_arg.rb +4 -2
  860. data/vendor/cmock/lib/cmock_generator_plugin_ignore_stateless.rb +15 -10
  861. data/vendor/cmock/lib/cmock_generator_plugin_return_thru_ptr.rb +53 -3
  862. data/vendor/cmock/lib/cmock_generator_utils.rb +159 -43
  863. data/vendor/cmock/lib/cmock_header_parser.rb +217 -26
  864. data/vendor/cmock/lib/cmock_plugin_manager.rb +1 -1
  865. data/vendor/cmock/lib/cmock_unityhelper_parser.rb +7 -2
  866. data/vendor/cmock/lib/cmock_version.rb +1 -1
  867. data/vendor/cmock/scripts/create_makefile.rb +7 -5
  868. data/vendor/cmock/src/cmock.c +132 -129
  869. data/vendor/cmock/src/cmock.h +7 -13
  870. data/vendor/cmock/src/cmock_internals.h +73 -39
  871. data/vendor/cmock/test/c/TestCMockC.c +1 -7
  872. data/vendor/cmock/test/c/TestCMockC.yml +1 -1
  873. data/vendor/cmock/test/c/TestCMockCDynamic.c +1 -7
  874. data/vendor/cmock/test/c/TestCMockCDynamic.yml +1 -1
  875. data/vendor/cmock/test/c/TestCMockCDynamic_Runner.c +1 -7
  876. data/vendor/cmock/test/c/TestCMockC_Runner.c +1 -7
  877. data/vendor/cmock/{vendor/unity/test/targets/gcc_manual_math.yml → test/gcc_64_valgrind.yml} +8 -17
  878. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X-EK.h +1 -1
  879. data/vendor/cmock/test/iar/iar_v4/incIAR/AT91SAM7X256_inc.h +1 -1
  880. data/vendor/cmock/test/iar/iar_v4/incIAR/ioat91sam7x256.h +1 -1
  881. data/vendor/cmock/test/iar/iar_v4/srcIAR/Cstartup_SAM7.c +1 -1
  882. data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X-EK.h +1 -1
  883. data/vendor/cmock/test/iar/iar_v5/incIAR/AT91SAM7X256_inc.h +1 -1
  884. data/vendor/cmock/test/iar/iar_v5/incIAR/project.h +1 -1
  885. data/vendor/cmock/test/iar/iar_v5/srcIAR/Cstartup_SAM7.c +1 -1
  886. data/vendor/cmock/test/project.yml +32 -0
  887. data/vendor/cmock/test/rakefile +74 -58
  888. data/vendor/cmock/test/rakefile_helper.rb +359 -152
  889. data/vendor/cmock/test/system/systest_generator.rb +2 -2
  890. data/vendor/cmock/test/system/test_compilation/callingconv.h +1 -7
  891. data/vendor/cmock/test/system/test_compilation/config.yml +10 -1
  892. data/vendor/cmock/test/system/test_compilation/const.h +7 -13
  893. data/vendor/cmock/test/system/test_compilation/inline.h +1 -2
  894. data/vendor/cmock/test/system/test_compilation/osek.h +1 -7
  895. data/vendor/cmock/test/system/test_compilation/parsing.h +37 -7
  896. data/vendor/cmock/test/system/test_interactions/all_plugins_but_other_limits.yml +5 -13
  897. data/vendor/cmock/test/system/test_interactions/all_plugins_coexist.yml +5 -5
  898. data/vendor/cmock/test/system/test_interactions/array_handling.yml +758 -0
  899. data/vendor/cmock/test/system/test_interactions/basic_expect_and_return.yml +2 -2
  900. data/vendor/cmock/test/system/test_interactions/char_string_array_plugin.yml +113 -0
  901. data/vendor/cmock/test/system/test_interactions/const_custom_type.yml +68 -0
  902. data/vendor/cmock/test/system/test_interactions/const_primitives_handling.yml +4 -3
  903. data/vendor/cmock/test/system/test_interactions/const_ptr_return_and_arg.yml +89 -0
  904. data/vendor/cmock/test/system/test_interactions/debug_output.yml +235 -0
  905. data/vendor/cmock/test/system/test_interactions/doesnt_leave_details_behind.yml +16 -16
  906. data/vendor/cmock/test/system/test_interactions/enforce_strict_ordering.yml +1 -1
  907. data/vendor/cmock/test/system/test_interactions/expect_and_return_custom_types.yml +1 -1
  908. data/vendor/cmock/test/system/test_interactions/expect_and_return_treat_as.yml +3 -3
  909. data/vendor/cmock/test/system/test_interactions/expect_and_throw.yml +1 -1
  910. data/vendor/cmock/test/system/test_interactions/expect_any_args.yml +1 -1
  911. data/vendor/cmock/test/system/test_interactions/fancy_pointer_handling.yml +3 -3
  912. data/vendor/cmock/test/system/test_interactions/function_pointer_handling.yml +1 -1
  913. data/vendor/cmock/test/system/test_interactions/ignore_and_return.yml +1 -1
  914. data/vendor/cmock/test/system/test_interactions/ignore_and_return_stateless.yml +1 -1
  915. data/vendor/cmock/test/system/test_interactions/ignore_strict_mock_calling.yml +1 -1
  916. data/vendor/cmock/test/system/test_interactions/newer_standards_stuff1.yml +1 -1
  917. data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_1.yml +2 -2
  918. data/vendor/cmock/test/system/test_interactions/nonstandard_parsed_stuff_2.yml +7 -4
  919. data/vendor/cmock/test/system/test_interactions/out_of_memory.yml +65 -8
  920. data/vendor/cmock/test/system/test_interactions/parsing_challenges.yml +1 -1
  921. data/vendor/cmock/test/system/test_interactions/parsing_challenges_with_func_pointers.yml +88 -0
  922. data/vendor/cmock/test/system/test_interactions/pointer_handling.yml +465 -0
  923. data/vendor/cmock/test/system/test_interactions/{return_thru_ptr_and_expect_any_args.yml → return_thru_ptr_expect_any_args.yml} +9 -13
  924. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore.yml +142 -0
  925. data/vendor/cmock/test/system/test_interactions/return_thru_ptr_ignore_arg.yml +13 -9
  926. data/vendor/cmock/test/system/test_interactions/skeleton.yml +1 -1
  927. data/vendor/cmock/test/system/test_interactions/skeleton_update.yml +1 -1
  928. data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return.yml +1 -1
  929. data/vendor/cmock/test/system/test_interactions/struct_union_enum_expect_and_return_with_plugins.yml +1 -1
  930. data/vendor/cmock/test/system/test_interactions/stubs_with_callbacks.yml +14 -2
  931. data/vendor/cmock/test/system/test_interactions/teardown_mock_calls.yml +57 -0
  932. data/vendor/cmock/test/system/test_interactions/teardown_mock_expectations.yml +59 -0
  933. data/vendor/cmock/test/system/test_interactions/unity_64bit_support.yml +1 -1
  934. data/vendor/cmock/test/system/test_interactions/unity_ignores.yml +1 -1
  935. data/vendor/cmock/test/system/test_interactions/unity_void_pointer_compare.yml +9 -9
  936. data/vendor/cmock/test/system/test_interactions/void_pointer_no_array_plugin.yml +133 -0
  937. data/vendor/cmock/test/system/test_interactions/void_pointer_treat_as_void_array_plugin.yml +102 -0
  938. data/vendor/cmock/test/system/test_interactions/volatile_pointer_handling.yml +291 -0
  939. data/vendor/cmock/test/system/test_interactions/wrong_expect_and_return.yml +9 -1
  940. data/vendor/cmock/test/targets/iar_arm.yml +14 -0
  941. data/vendor/cmock/test/targets/tiny.yml +36 -0
  942. data/vendor/cmock/test/test_helper.rb +1 -2
  943. data/vendor/cmock/test/unit/cmock_config_test.rb +1 -2
  944. data/vendor/cmock/test/unit/cmock_config_test.yml +1 -1
  945. data/vendor/cmock/test/unit/cmock_file_writer_test.rb +1 -1
  946. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +6 -0
  947. data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_array_test.rb +90 -0
  948. data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_expect_any_args_test.rb +38 -0
  949. data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_expect_test.rb +55 -0
  950. data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_ignore_stateless_test.rb +42 -0
  951. data/vendor/cmock/test/unit/cmock_generator_no_error_stubs_plugin_ignore_test.rb +42 -0
  952. data/vendor/cmock/test/unit/cmock_generator_plugin_array_test.rb +63 -2
  953. data/vendor/cmock/test/unit/cmock_generator_plugin_callback_test.rb +24 -6
  954. data/vendor/cmock/test/unit/cmock_generator_plugin_cexception_test.rb +1 -1
  955. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_a_test.rb +118 -2
  956. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_any_args_test.rb +2 -2
  957. data/vendor/cmock/test/unit/cmock_generator_plugin_expect_b_test.rb +4 -2
  958. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_arg_test.rb +2 -1
  959. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_stateless_test.rb +2 -2
  960. data/vendor/cmock/test/unit/cmock_generator_plugin_ignore_test.rb +2 -2
  961. data/vendor/cmock/test/unit/cmock_generator_plugin_return_thru_ptr_test.rb +135 -3
  962. data/vendor/cmock/test/unit/cmock_generator_utils_test.rb +177 -9
  963. data/vendor/cmock/test/unit/cmock_header_parser_test.rb +705 -109
  964. data/vendor/cmock/test/unit/cmock_plugin_manager_test.rb +4 -2
  965. data/vendor/cmock/test/unit/cmock_unityhelper_parser_test.rb +1 -1
  966. data/vendor/cmock/vendor/unity/CMakeLists.txt +10 -0
  967. data/vendor/cmock/vendor/unity/LICENSE.txt +1 -1
  968. data/vendor/cmock/vendor/unity/README.md +2 -2
  969. data/vendor/cmock/vendor/unity/auto/__init__.py +1 -1
  970. data/vendor/cmock/vendor/unity/auto/colour_prompt.rb +1 -1
  971. data/vendor/cmock/vendor/unity/auto/colour_reporter.rb +7 -1
  972. data/vendor/cmock/vendor/unity/auto/extract_version.py +1 -1
  973. data/vendor/cmock/vendor/unity/auto/generate_config.yml +1 -1
  974. data/vendor/cmock/vendor/unity/auto/generate_module.rb +6 -6
  975. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +95 -14
  976. data/vendor/cmock/vendor/unity/auto/parse_output.rb +10 -7
  977. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.py +4 -3
  978. data/vendor/cmock/vendor/unity/auto/stylize_as_junit.rb +4 -2
  979. data/vendor/cmock/vendor/unity/auto/test_file_filter.rb +1 -1
  980. data/vendor/cmock/vendor/unity/auto/type_sanitizer.rb +1 -1
  981. data/vendor/cmock/vendor/unity/auto/unity_test_summary.py +2 -2
  982. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +5 -2
  983. data/vendor/cmock/vendor/unity/auto/yaml_helper.rb +1 -1
  984. data/vendor/cmock/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +2 -2
  985. data/vendor/cmock/vendor/unity/docs/UnityAssertionsReference.md +66 -1
  986. data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +41 -0
  987. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +2 -2
  988. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +28 -12
  989. data/vendor/cmock/vendor/unity/examples/example_1/makefile +1 -1
  990. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.c +1 -1
  991. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode.h +1 -1
  992. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.c +1 -1
  993. data/vendor/cmock/vendor/unity/examples/example_1/src/ProductionCode2.h +1 -1
  994. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode.c +1 -1
  995. data/vendor/cmock/vendor/unity/examples/example_1/test/TestProductionCode2.c +1 -1
  996. data/vendor/cmock/vendor/unity/examples/example_2/makefile +1 -1
  997. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.c +1 -1
  998. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode.h +1 -1
  999. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.c +1 -1
  1000. data/vendor/cmock/vendor/unity/examples/example_2/src/ProductionCode2.h +1 -1
  1001. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode.c +1 -1
  1002. data/vendor/cmock/vendor/unity/examples/example_2/test/TestProductionCode2.c +1 -1
  1003. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +1 -1
  1004. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +1 -1
  1005. data/vendor/cmock/vendor/unity/examples/example_2/test/test_runners/all_tests.c +1 -1
  1006. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.c +1 -1
  1007. data/vendor/cmock/vendor/unity/examples/example_3/helper/UnityHelper.h +1 -1
  1008. data/vendor/cmock/vendor/unity/examples/example_3/project.yml +24 -0
  1009. data/vendor/cmock/vendor/unity/examples/example_3/rakefile.rb +2 -3
  1010. data/vendor/cmock/vendor/unity/examples/example_3/rakefile_helper.rb +107 -153
  1011. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.c +3 -3
  1012. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode.h +1 -1
  1013. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.c +1 -1
  1014. data/vendor/cmock/vendor/unity/examples/example_3/src/ProductionCode2.h +1 -1
  1015. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode.c +1 -1
  1016. data/vendor/cmock/vendor/unity/examples/example_3/test/TestProductionCode2.c +1 -1
  1017. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.c +1 -1
  1018. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode.h +1 -1
  1019. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.c +1 -1
  1020. data/vendor/cmock/vendor/unity/examples/example_4/src/ProductionCode2.h +1 -1
  1021. data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode.c +1 -1
  1022. data/vendor/cmock/vendor/unity/examples/example_4/test/TestProductionCode2.c +1 -1
  1023. data/vendor/cmock/vendor/unity/examples/example_5/makefile +63 -0
  1024. data/vendor/cmock/vendor/unity/examples/example_5/readme.txt +38 -0
  1025. data/vendor/cmock/vendor/unity/examples/example_5/src/ProductionCode.c +56 -0
  1026. data/vendor/cmock/vendor/unity/examples/example_5/src/ProductionCode.h +16 -0
  1027. data/vendor/cmock/vendor/unity/examples/example_5/subprojects/unity.wrap +3 -0
  1028. data/vendor/cmock/vendor/unity/examples/example_5/test/TestProductionCode.c +45 -0
  1029. data/vendor/cmock/vendor/unity/examples/example_5/test/test_runners/TestProductionCode_Runner.c +48 -0
  1030. data/vendor/cmock/vendor/unity/examples/example_5/test/unity_detail_config.h +25 -0
  1031. data/vendor/cmock/vendor/unity/examples/unity_config.h +5 -3
  1032. data/vendor/cmock/vendor/unity/extras/bdd/src/unity_bdd.h +1 -1
  1033. data/vendor/cmock/vendor/unity/extras/bdd/test/test_bdd.c +1 -1
  1034. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +59 -15
  1035. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
  1036. data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +4 -1
  1037. data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +1 -1
  1038. data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +1 -1
  1039. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +46 -1
  1040. data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +4 -1
  1041. data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.c +1 -1
  1042. data/vendor/cmock/vendor/unity/extras/memory/src/unity_memory.h +1 -1
  1043. data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_Test.c +1 -1
  1044. data/vendor/cmock/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +1 -1
  1045. data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.c +1 -1
  1046. data/vendor/cmock/vendor/unity/extras/memory/test/unity_output_Spy.h +1 -1
  1047. data/vendor/cmock/vendor/unity/library.json +0 -7
  1048. data/vendor/cmock/vendor/unity/meson.build +16 -8
  1049. data/vendor/cmock/vendor/unity/meson_options.txt +5 -3
  1050. data/vendor/cmock/vendor/unity/src/unity.c +480 -141
  1051. data/vendor/cmock/vendor/unity/src/unity.h +16 -4
  1052. data/vendor/cmock/vendor/unity/src/unity_internals.h +291 -148
  1053. data/vendor/cmock/vendor/unity/test/Makefile +4 -6
  1054. data/vendor/cmock/vendor/unity/test/rakefile +42 -21
  1055. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +154 -15
  1056. data/vendor/cmock/vendor/unity/test/spec/generate_module_existing_file_spec.rb +1 -1
  1057. data/vendor/cmock/vendor/unity/test/targets/clang.yml +157 -0
  1058. data/vendor/cmock/vendor/unity/test/targets/gcc.yml +139 -0
  1059. data/vendor/cmock/vendor/unity/test/targets/hitech_picc18.yml +9 -16
  1060. data/vendor/cmock/vendor/unity/test/targets/iar_arm.yml +88 -0
  1061. data/vendor/cmock/vendor/unity/test/targets/no_stdlib.yml +23 -0
  1062. data/vendor/cmock/vendor/unity/test/testdata/CException.h +1 -1
  1063. data/vendor/cmock/vendor/unity/test/testdata/Defs.h +1 -1
  1064. data/vendor/cmock/vendor/unity/test/testdata/cmock.h +1 -1
  1065. data/vendor/cmock/vendor/unity/test/testdata/mockMock.h +1 -1
  1066. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGenerator.c +1 -1
  1067. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +1 -1
  1068. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +1 -1
  1069. data/vendor/cmock/vendor/unity/test/tests/self_assessment_utils.h +23 -7
  1070. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +1 -4
  1071. data/vendor/cmock/vendor/unity/test/tests/test_unity_arrays.c +1 -1
  1072. data/vendor/cmock/vendor/unity/test/tests/test_unity_core.c +33 -38
  1073. data/vendor/cmock/vendor/unity/test/tests/test_unity_doubles.c +4 -4
  1074. data/vendor/cmock/vendor/unity/test/tests/test_unity_floats.c +15 -6
  1075. data/vendor/cmock/vendor/unity/test/tests/test_unity_integers.c +35 -1
  1076. data/vendor/cmock/vendor/unity/test/tests/test_unity_integers_64.c +1 -1
  1077. data/vendor/cmock/vendor/unity/test/tests/test_unity_memory.c +69 -1
  1078. data/vendor/cmock/vendor/unity/test/tests/test_unity_parameterized.c +5 -5
  1079. data/vendor/cmock/vendor/unity/test/tests/test_unity_parameterizedDemo.c +1 -1
  1080. data/vendor/cmock/vendor/unity/test/tests/test_unity_strings.c +65 -1
  1081. data/vendor/cmock/vendor/unity/test/tests/types_for_test.h +1 -1
  1082. data/vendor/unity/CMakeLists.txt +10 -0
  1083. data/vendor/unity/LICENSE.txt +1 -1
  1084. data/vendor/unity/README.md +2 -2
  1085. data/vendor/unity/auto/__init__.py +1 -1
  1086. data/vendor/unity/auto/colour_prompt.rb +1 -1
  1087. data/vendor/unity/auto/colour_reporter.rb +7 -1
  1088. data/vendor/unity/auto/extract_version.py +1 -1
  1089. data/vendor/unity/auto/generate_config.yml +1 -1
  1090. data/vendor/unity/auto/generate_module.rb +6 -6
  1091. data/vendor/unity/auto/generate_test_runner.rb +150 -19
  1092. data/vendor/unity/auto/parse_output.rb +10 -7
  1093. data/vendor/unity/auto/stylize_as_junit.py +4 -3
  1094. data/vendor/unity/auto/stylize_as_junit.rb +4 -2
  1095. data/vendor/unity/auto/test_file_filter.rb +1 -1
  1096. data/vendor/unity/auto/type_sanitizer.rb +1 -1
  1097. data/vendor/unity/auto/unity_test_summary.py +2 -2
  1098. data/vendor/unity/auto/unity_test_summary.rb +5 -2
  1099. data/vendor/unity/auto/yaml_helper.rb +1 -1
  1100. data/vendor/unity/docs/ThrowTheSwitchCodingStandard.md +2 -2
  1101. data/vendor/unity/docs/UnityAssertionsReference.md +66 -1
  1102. data/vendor/unity/docs/UnityChangeLog.md +41 -0
  1103. data/vendor/unity/docs/UnityConfigurationGuide.md +2 -2
  1104. data/vendor/unity/docs/UnityHelperScriptsGuide.md +28 -12
  1105. data/vendor/unity/examples/example_1/makefile +1 -1
  1106. data/vendor/unity/examples/example_1/src/ProductionCode.c +1 -1
  1107. data/vendor/unity/examples/example_1/src/ProductionCode.h +1 -1
  1108. data/vendor/unity/examples/example_1/src/ProductionCode2.c +1 -1
  1109. data/vendor/unity/examples/example_1/src/ProductionCode2.h +1 -1
  1110. data/vendor/unity/examples/example_1/test/TestProductionCode.c +1 -1
  1111. data/vendor/unity/examples/example_1/test/TestProductionCode2.c +1 -1
  1112. data/vendor/unity/examples/example_2/makefile +1 -1
  1113. data/vendor/unity/examples/example_2/src/ProductionCode.c +1 -1
  1114. data/vendor/unity/examples/example_2/src/ProductionCode.h +1 -1
  1115. data/vendor/unity/examples/example_2/src/ProductionCode2.c +1 -1
  1116. data/vendor/unity/examples/example_2/src/ProductionCode2.h +1 -1
  1117. data/vendor/unity/examples/example_2/test/TestProductionCode.c +1 -1
  1118. data/vendor/unity/examples/example_2/test/TestProductionCode2.c +1 -1
  1119. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode2_Runner.c +1 -1
  1120. data/vendor/unity/examples/example_2/test/test_runners/TestProductionCode_Runner.c +1 -1
  1121. data/vendor/unity/examples/example_2/test/test_runners/all_tests.c +1 -1
  1122. data/vendor/unity/examples/example_3/helper/UnityHelper.c +1 -1
  1123. data/vendor/unity/examples/example_3/helper/UnityHelper.h +1 -1
  1124. data/vendor/unity/examples/example_3/project.yml +24 -0
  1125. data/vendor/unity/examples/example_3/rakefile.rb +2 -3
  1126. data/vendor/unity/examples/example_3/rakefile_helper.rb +107 -153
  1127. data/vendor/unity/examples/example_3/src/ProductionCode.c +3 -3
  1128. data/vendor/unity/examples/example_3/src/ProductionCode.h +1 -1
  1129. data/vendor/unity/examples/example_3/src/ProductionCode2.c +1 -1
  1130. data/vendor/unity/examples/example_3/src/ProductionCode2.h +1 -1
  1131. data/vendor/unity/examples/example_3/test/TestProductionCode.c +1 -1
  1132. data/vendor/unity/examples/example_3/test/TestProductionCode2.c +1 -1
  1133. data/vendor/unity/examples/example_4/src/ProductionCode.c +1 -1
  1134. data/vendor/unity/examples/example_4/src/ProductionCode.h +1 -1
  1135. data/vendor/unity/examples/example_4/src/ProductionCode2.c +1 -1
  1136. data/vendor/unity/examples/example_4/src/ProductionCode2.h +1 -1
  1137. data/vendor/unity/examples/example_4/test/TestProductionCode.c +1 -1
  1138. data/vendor/unity/examples/example_4/test/TestProductionCode2.c +1 -1
  1139. data/vendor/unity/examples/example_5/makefile +63 -0
  1140. data/vendor/unity/examples/example_5/readme.txt +38 -0
  1141. data/vendor/unity/examples/example_5/src/ProductionCode.c +56 -0
  1142. data/vendor/unity/examples/example_5/src/ProductionCode.h +16 -0
  1143. data/vendor/unity/examples/example_5/subprojects/unity.wrap +3 -0
  1144. data/vendor/unity/examples/example_5/test/TestProductionCode.c +45 -0
  1145. data/vendor/unity/examples/example_5/test/test_runners/TestProductionCode_Runner.c +48 -0
  1146. data/vendor/unity/examples/example_5/test/unity_detail_config.h +25 -0
  1147. data/vendor/unity/examples/unity_config.h +5 -3
  1148. data/vendor/unity/extras/bdd/src/unity_bdd.h +1 -1
  1149. data/vendor/unity/extras/bdd/test/test_bdd.c +1 -1
  1150. data/vendor/unity/extras/fixture/src/unity_fixture.c +59 -15
  1151. data/vendor/unity/extras/fixture/src/unity_fixture.h +1 -1
  1152. data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +4 -1
  1153. data/vendor/unity/extras/fixture/test/main/AllTests.c +1 -1
  1154. data/vendor/unity/extras/fixture/test/template_fixture_tests.c +1 -1
  1155. data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +46 -1
  1156. data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +4 -1
  1157. data/vendor/unity/extras/memory/src/unity_memory.c +1 -1
  1158. data/vendor/unity/extras/memory/src/unity_memory.h +1 -1
  1159. data/vendor/unity/extras/memory/test/unity_memory_Test.c +1 -1
  1160. data/vendor/unity/extras/memory/test/unity_memory_TestRunner.c +1 -1
  1161. data/vendor/unity/extras/memory/test/unity_output_Spy.c +1 -1
  1162. data/vendor/unity/extras/memory/test/unity_output_Spy.h +1 -1
  1163. data/vendor/unity/library.json +0 -7
  1164. data/vendor/unity/meson.build +16 -8
  1165. data/vendor/unity/meson_options.txt +5 -3
  1166. data/vendor/unity/src/unity.c +480 -141
  1167. data/vendor/unity/src/unity.h +15 -3
  1168. data/vendor/unity/src/unity_internals.h +291 -148
  1169. data/vendor/unity/test/Makefile +4 -6
  1170. data/vendor/unity/test/rakefile +42 -21
  1171. data/vendor/unity/test/rakefile_helper.rb +154 -15
  1172. data/vendor/unity/test/spec/generate_module_existing_file_spec.rb +1 -1
  1173. data/vendor/unity/test/targets/clang.yml +157 -0
  1174. data/vendor/unity/test/targets/gcc.yml +139 -0
  1175. data/vendor/unity/test/targets/hitech_picc18.yml +9 -16
  1176. data/vendor/unity/test/targets/iar_arm.yml +88 -0
  1177. data/vendor/unity/test/targets/no_stdlib.yml +23 -0
  1178. data/vendor/unity/test/testdata/CException.h +1 -1
  1179. data/vendor/unity/test/testdata/Defs.h +1 -1
  1180. data/vendor/unity/test/testdata/cmock.h +1 -1
  1181. data/vendor/unity/test/testdata/mockMock.h +1 -1
  1182. data/vendor/unity/test/testdata/testRunnerGenerator.c +1 -1
  1183. data/vendor/unity/test/testdata/testRunnerGeneratorEmpty.c +13 -0
  1184. data/vendor/unity/test/testdata/testRunnerGeneratorSmall.c +1 -1
  1185. data/vendor/unity/test/testdata/testRunnerGeneratorWithMocks.c +1 -1
  1186. data/vendor/unity/test/tests/self_assessment_utils.h +23 -7
  1187. data/vendor/unity/test/tests/test_generate_test_runner.rb +12 -4
  1188. data/vendor/unity/test/tests/test_unity_arrays.c +1 -1
  1189. data/vendor/unity/test/tests/test_unity_core.c +33 -38
  1190. data/vendor/unity/test/tests/test_unity_doubles.c +4 -4
  1191. data/vendor/unity/test/tests/test_unity_floats.c +15 -6
  1192. data/vendor/unity/test/tests/test_unity_integers.c +35 -1
  1193. data/vendor/unity/test/tests/test_unity_integers_64.c +1 -1
  1194. data/vendor/unity/test/tests/test_unity_memory.c +69 -1
  1195. data/vendor/unity/test/tests/test_unity_parameterized.c +5 -5
  1196. data/vendor/unity/test/tests/test_unity_parameterizedDemo.c +1 -1
  1197. data/vendor/unity/test/tests/test_unity_strings.c +65 -1
  1198. data/vendor/unity/test/tests/types_for_test.h +1 -1
  1199. metadata +705 -178
  1200. data/docs/CeedlingPacket.md +0 -5651
  1201. data/lib/ceedling/build_batchinator.rb +0 -113
  1202. data/lib/ceedling/generator_test_results_backtrace.rb +0 -215
  1203. data/lib/ceedling/generator_test_runner.rb +0 -84
  1204. data/lib/ceedling/preprocessinator.rb +0 -239
  1205. data/lib/ceedling/preprocessinator_extractor.rb +0 -257
  1206. data/lib/ceedling/preprocessinator_file_handler.rb +0 -229
  1207. data/lib/ceedling/preprocessinator_includes_handler.rb +0 -382
  1208. data/lib/ceedling/task_invoker.rb +0 -70
  1209. data/lib/ceedling/test_invoker.rb +0 -506
  1210. data/lib/ceedling/test_invoker_helper.rb +0 -347
  1211. data/plugins/gcov/README.md +0 -893
  1212. data/plugins/gcov/lib/reportinator_helper.rb +0 -30
  1213. data/plugins/report_tests_log_factory/sample_html_report.png +0 -0
  1214. data/spec/configurator_spec.rb +0 -18
  1215. data/spec/generator_test_results_spec.rb +0 -131
  1216. data/spec/parsing_parcels_spec.rb +0 -66
  1217. data/spec/preprocessinator_includes_handler_spec.rb +0 -289
  1218. data/spec/reportinator_spec.rb +0 -26
  1219. data/spec/spec_helper.rb +0 -31
  1220. data/spec/test_context_extractor_spec.rb +0 -328
  1221. data/spec/uncategorized_specs_spec.rb +0 -15
  1222. data/vendor/cmock/examples/temp_sensor/targets/gcc.yml +0 -97
  1223. data/vendor/cmock/examples/temp_sensor/targets/iar_v4.yml +0 -143
  1224. data/vendor/cmock/examples/temp_sensor/targets/iar_v5.yml +0 -132
  1225. data/vendor/cmock/scripts/create_mock.rb +0 -15
  1226. data/vendor/cmock/scripts/create_runner.rb +0 -25
  1227. data/vendor/cmock/scripts/test_summary.rb +0 -25
  1228. data/vendor/cmock/test/system/test_interactions/array_and_pointer_handling.yml +0 -453
  1229. data/vendor/cmock/test/targets/clang_strict.yml +0 -97
  1230. data/vendor/cmock/test/targets/gcc.yml +0 -65
  1231. data/vendor/cmock/test/targets/gcc_64.yml +0 -65
  1232. data/vendor/cmock/test/targets/gcc_tiny.yml +0 -87
  1233. data/vendor/cmock/test/targets/iar_arm_v4.yml +0 -117
  1234. data/vendor/cmock/test/targets/iar_arm_v5.yml +0 -102
  1235. data/vendor/cmock/vendor/unity/examples/example_3/target_gcc_32.yml +0 -54
  1236. data/vendor/cmock/vendor/unity/test/targets/ansi.yml +0 -51
  1237. data/vendor/cmock/vendor/unity/test/targets/clang_file.yml +0 -79
  1238. data/vendor/cmock/vendor/unity/test/targets/clang_strict.yml +0 -79
  1239. data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -52
  1240. data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -53
  1241. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_limits.yml +0 -50
  1242. data/vendor/cmock/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -62
  1243. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v4.yml +0 -105
  1244. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5.yml +0 -99
  1245. data/vendor/cmock/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -99
  1246. data/vendor/cmock/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -97
  1247. data/vendor/cmock/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -101
  1248. data/vendor/cmock/vendor/unity/test/targets/iar_msp430.yml +0 -119
  1249. data/vendor/cmock/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -106
  1250. data/vendor/unity/auto/run_test.erb +0 -37
  1251. data/vendor/unity/examples/example_3/target_gcc_32.yml +0 -54
  1252. data/vendor/unity/test/targets/ansi.yml +0 -51
  1253. data/vendor/unity/test/targets/clang_file.yml +0 -79
  1254. data/vendor/unity/test/targets/clang_strict.yml +0 -79
  1255. data/vendor/unity/test/targets/gcc_32.yml +0 -52
  1256. data/vendor/unity/test/targets/gcc_64.yml +0 -53
  1257. data/vendor/unity/test/targets/gcc_auto_limits.yml +0 -50
  1258. data/vendor/unity/test/targets/gcc_auto_stdint.yml +0 -62
  1259. data/vendor/unity/test/targets/gcc_manual_math.yml +0 -50
  1260. data/vendor/unity/test/targets/iar_arm_v4.yml +0 -105
  1261. data/vendor/unity/test/targets/iar_arm_v5.yml +0 -99
  1262. data/vendor/unity/test/targets/iar_arm_v5_3.yml +0 -99
  1263. data/vendor/unity/test/targets/iar_armcortex_LM3S9B92_v5_4.yml +0 -97
  1264. data/vendor/unity/test/targets/iar_cortexm3_v5.yml +0 -101
  1265. data/vendor/unity/test/targets/iar_msp430.yml +0 -119
  1266. data/vendor/unity/test/targets/iar_sh2a_v6.yml +0 -106
@@ -0,0 +1,98 @@
1
+ # =========================================================================
2
+ # Ceedling - Test-Centered Build System for C
3
+ # ThrowTheSwitch.org
4
+ # Copyright (c) 2010-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
5
+ # SPDX-License-Identifier: MIT
6
+ # =========================================================================
7
+
8
+ require_relative 'cppcheck_helpers'
9
+
10
+ module CppcheckCommonTestCases
11
+ include CppcheckHelpers
12
+
13
+ def project_build_tasks_plugins_help_for_cppcheck
14
+ @c.with_context do
15
+ Dir.chdir @proj_name do
16
+ prep_project_yml_for_cppcheck
17
+ output = @c.ceedling_appcmd_exec("help")
18
+ expect(@c.last_exit_status).to eq(0)
19
+ expect(output).to match(/ceedling cppcheck:\*/i)
20
+ expect(output).to match(/ceedling cppcheck:all/i)
21
+ expect(output).to match(/ceedling files:cppcheck/i)
22
+ end
23
+ end
24
+ end
25
+
26
+ def can_run_cppcheck_on_whole_project
27
+ @c.with_context do
28
+ Dir.chdir @proj_name do
29
+ prep_project_yml_for_cppcheck(reports: [:text])
30
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
31
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
32
+
33
+ output = @c.ceedling_build_exec("cppcheck:all")
34
+ expect(@c.last_exit_status).to eq(0)
35
+ expect(output).to match(/Creating Cppcheck text report/i)
36
+ end
37
+ end
38
+ end
39
+
40
+ def can_run_cppcheck_on_single_file
41
+ @c.with_context do
42
+ Dir.chdir @proj_name do
43
+ prep_project_yml_for_cppcheck(reports: [:text])
44
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
45
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
46
+
47
+ output = @c.ceedling_build_exec("cppcheck:example_file.c")
48
+ expect(@c.last_exit_status).to eq(0)
49
+ expect(output).to match(/Running Cppcheck on file/i)
50
+ expect(output).to match(/example_file\.c/i)
51
+ end
52
+ end
53
+ end
54
+
55
+ def can_list_cppcheck_suppression_files
56
+ @c.with_context do
57
+ Dir.chdir @proj_name do
58
+ prep_project_yml_for_cppcheck
59
+ output = @c.ceedling_build_exec("files:cppcheck")
60
+ expect(@c.last_exit_status).to eq(0)
61
+ expect(output).to match(/Cppcheck suppression files/i)
62
+ end
63
+ end
64
+ end
65
+
66
+ def can_create_xml_report
67
+ @c.with_context do
68
+ Dir.chdir @proj_name do
69
+ prep_project_yml_for_cppcheck(reports: [:xml])
70
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
71
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
72
+
73
+ output = @c.ceedling_build_exec("cppcheck:all")
74
+ expect(@c.last_exit_status).to eq(0)
75
+ expect(output).to match(/Creating Cppcheck xml report/i)
76
+ expect(File.exist?('build/artifacts/cppcheck/CppcheckReport.xml')).to eq(true)
77
+ expect(File.size('build/artifacts/cppcheck/CppcheckReport.xml')).to be > 0
78
+ end
79
+ end
80
+ end
81
+
82
+ def can_create_text_report
83
+ @c.with_context do
84
+ Dir.chdir @proj_name do
85
+ prep_project_yml_for_cppcheck(reports: [:text])
86
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
87
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
88
+
89
+ output = @c.ceedling_build_exec("cppcheck:all")
90
+ expect(@c.last_exit_status).to eq(0)
91
+ expect(output).to match(/Creating Cppcheck text report/i)
92
+ expect(File.exist?('build/artifacts/cppcheck/CppcheckReport.txt')).to eq(true)
93
+ expect(File.size('build/artifacts/cppcheck/CppcheckReport.txt')).to be > 0
94
+ end
95
+ end
96
+ end
97
+
98
+ end
@@ -0,0 +1,27 @@
1
+ # =========================================================================
2
+ # Ceedling - Test-Centered Build System for C
3
+ # ThrowTheSwitch.org
4
+ # Copyright (c) 2010-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
5
+ # SPDX-License-Identifier: MIT
6
+ # =========================================================================
7
+
8
+ require 'fileutils'
9
+
10
+ module CppcheckHelpers
11
+
12
+ def cppcheck_available?
13
+ begin
14
+ `cppcheck --version 2>&1`
15
+ $?.exitstatus == 0
16
+ rescue
17
+ false
18
+ end
19
+ end
20
+
21
+ def prep_project_yml_for_cppcheck(reports: [:text])
22
+ FileUtils.cp test_asset_path("project.yml"), "project.yml"
23
+ @c.uncomment_project_yml_option_for_test("- cppcheck")
24
+ @c.merge_project_yml_for_test({cppcheck: {reports: reports}})
25
+ end
26
+
27
+ end
@@ -1,88 +1,16 @@
1
1
  # =========================================================================
2
2
  # Ceedling - Test-Centered Build System for C
3
3
  # ThrowTheSwitch.org
4
- # Copyright (c) 2010-25 Mike Karlesky, Mark VanderVoord, & Greg Williams
4
+ # Copyright (c) 2010-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
5
5
  # SPDX-License-Identifier: MIT
6
6
  # =========================================================================
7
7
 
8
- require 'fileutils'
9
- require 'tmpdir'
10
- require 'yaml'
11
- require 'spec_system_helper'
12
- require 'pp'
8
+ require_relative 'gcov_helpers'
13
9
 
10
+ module GcovCommonTestCases
11
+ include GcovHelpers
14
12
 
15
- module GcovTestCases
16
-
17
- def determine_reports_to_test
18
- @gcov_reports = []
19
-
20
- begin
21
- `gcovr --version 2>&1`
22
- @gcov_reports << :gcovr if $?.exitstatus == 0
23
- rescue
24
- puts "No GCOVR exec to test against"
25
- end
26
-
27
- begin
28
- `reportgenerator --version 2>&1`
29
- @gcov_reports << :reportgenerator if $?.exitstatus == 0
30
- rescue
31
- puts "No ReportGenerator exec to test against"
32
- end
33
- end
34
-
35
- def prep_project_yml_for_coverage
36
- FileUtils.cp test_asset_path("project.yml"), "project.yml"
37
- @c.uncomment_project_yml_option_for_test("- gcov")
38
- @c.comment_project_yml_option_for_test("- gcovr") unless @gcov_reports.include? :gcovr
39
- @c.uncomment_project_yml_option_for_test("- ReportGenerator") if @gcov_reports.include? :reportgenerator
40
- end
41
-
42
- def _add_gcov_section_in_project(project_file_path, name, values)
43
- project_file_contents = File.readlines(project_file_path)
44
- name_index = project_file_contents.index(":gcov:\n")
45
-
46
- if name_index.nil?
47
- # Something wrong with project.yml file, no project section?
48
- return
49
- end
50
-
51
- project_file_contents.insert(name_index + 1, " :#{name}:\n")
52
- values.each.with_index(2) do |value, index|
53
- project_file_contents.insert(name_index + index, " - #{value}\n")
54
- end
55
-
56
- File.open(project_file_path, "w+") do |f|
57
- f.puts(project_file_contents)
58
- end
59
- end
60
-
61
- def _add_gcov_option_in_project(project_file_path, option, value)
62
- project_file_contents = File.readlines(project_file_path)
63
- option_index = project_file_contents.index(":gcov:\n")
64
-
65
- if option_index.nil?
66
- # Something wrong with project.yml file, no project section?
67
- return
68
- end
69
-
70
- project_file_contents.insert(option_index + 1, " :#{option}: #{value}\n")
71
-
72
- File.open(project_file_path, "w+") do |f|
73
- f.puts(project_file_contents)
74
- end
75
- end
76
-
77
- def add_gcov_section(name, values)
78
- _add_gcov_section_in_project("project.yml", name, values)
79
- end
80
-
81
- def add_gcov_option(option, value)
82
- _add_gcov_option_in_project("project.yml", option, value)
83
- end
84
-
85
- def can_test_projects_with_gcov_with_success
13
+ def project_with_gcov_success
86
14
  @c.with_context do
87
15
  Dir.chdir @proj_name do
88
16
  prep_project_yml_for_coverage
@@ -100,7 +28,7 @@ module GcovTestCases
100
28
  end
101
29
  end
102
30
 
103
- def can_test_projects_with_gcov_with_fail
31
+ def project_with_gcov_fail
104
32
  @c.with_context do
105
33
  Dir.chdir @proj_name do
106
34
  prep_project_yml_for_coverage
@@ -119,7 +47,7 @@ module GcovTestCases
119
47
  end
120
48
 
121
49
  # TODO: Restore this test when the :abort_on_uncovered option is restored in the Gcov plugin
122
- # def can_test_projects_with_gcov_with_fail_because_of_uncovered_files
50
+ # def project_with_gcov_fail_because_of_uncovered_files
123
51
  # @c.with_context do
124
52
  # Dir.chdir @proj_name do
125
53
  # prep_project_yml_for_coverage
@@ -140,7 +68,7 @@ module GcovTestCases
140
68
  # end
141
69
 
142
70
  # TODO: Restore this test when the :abort_on_uncovered option is restored in the Gcov plugin
143
- # def can_test_projects_with_gcov_with_success_because_of_ignore_uncovered_list
71
+ # def project_with_gcov_success_because_of_ignore_uncovered_list
144
72
  # @c.with_context do
145
73
  # Dir.chdir @proj_name do
146
74
  # prep_project_yml_for_coverage
@@ -163,7 +91,7 @@ module GcovTestCases
163
91
  # end
164
92
 
165
93
  # TODO: Restore this test when the :abort_on_uncovered option is restored in the Gcov plugin
166
- # def can_test_projects_with_gcov_with_success_because_of_ignore_uncovered_list_with_globs
94
+ # def project_with_gcov_success_because_of_ignore_uncovered_list_with_globs
167
95
  # @c.with_context do
168
96
  # Dir.chdir @proj_name do
169
97
  # prep_project_yml_for_coverage
@@ -186,8 +114,7 @@ module GcovTestCases
186
114
  # end
187
115
  # end
188
116
 
189
-
190
- def can_test_projects_with_gcov_with_compile_error
117
+ def project_with_gcov_compile_error
191
118
  @c.with_context do
192
119
  Dir.chdir @proj_name do
193
120
  prep_project_yml_for_coverage
@@ -202,7 +129,7 @@ module GcovTestCases
202
129
  end
203
130
  end
204
131
 
205
- def can_fetch_project_help_for_gcov
132
+ def help_tasks_include_gcov
206
133
  @c.with_context do
207
134
  Dir.chdir @proj_name do
208
135
  prep_project_yml_for_coverage
@@ -214,7 +141,7 @@ module GcovTestCases
214
141
  end
215
142
  end
216
143
 
217
- def can_create_html_reports
144
+ def create_html_report
218
145
  @c.with_context do
219
146
  Dir.chdir @proj_name do
220
147
  prep_project_yml_for_coverage
@@ -224,68 +151,165 @@ module GcovTestCases
224
151
 
225
152
  output = `bundle exec ruby -S ceedling gcov:all 2>&1`
226
153
  if @gcov_reports.include? :gcovr
227
- expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr'\.\.\./)
154
+ expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr\/'\.\.\./)
228
155
  expect(File.exist?('build/artifacts/gcov/gcovr/GcovCoverageResults.html')).to eq true
229
156
  end
230
157
  if @gcov_reports.include? :modulegenerator
231
- expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator'\.\.\./)
158
+ expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator\/'\.\.\./)
232
159
  expect(File.exist?('build/artifacts/gcov/ReportGenerator/summary.htm')).to eq true
233
160
  end
234
161
  end
235
162
  end
236
163
  end
237
164
 
238
- def can_create_html_reports_from_crashing_test_runner_with_enabled_debug_for_test_cases_not_causing_crash
165
+ def gcov_console_report_with_system_header
166
+ @c.with_context do
167
+ Dir.chdir @proj_name do
168
+ prep_project_yml_for_coverage
169
+ FileUtils.cp test_asset_path("example_file_with_stdio.h"), 'src/'
170
+ FileUtils.cp test_asset_path("example_file_with_stdio.c"), 'src/'
171
+ FileUtils.cp test_asset_path("test_example_file_with_stdio.c"), 'test/'
172
+
173
+ output = `bundle exec ruby -S ceedling gcov:all 2>&1`
174
+ expect($?.exitstatus).to match(0)
175
+ # Console summary must report coverage for the source file, not a warning.
176
+ # When <stdio.h> is included, gcov may list a system header (e.g. _stdio.h)
177
+ # as the first File entry — the fix ensures the correct source is found.
178
+ expect(output).to match(/example_file_with_stdio\.c \| Lines executed:/)
179
+ expect(output).not_to match(/Found no coverage results for.*example_file_with_stdio/)
180
+ end
181
+ end
182
+ end
183
+
184
+ def gcov_console_report_with_partial
185
+ @c.with_context do
186
+ Dir.chdir @proj_name do
187
+ prep_project_yml_for_coverage
188
+
189
+ asset_base = test_asset_path("tests_with_fallback_conditionals")
190
+ FileUtils.cp "#{asset_base}/src/conditional_module.h", 'src/'
191
+ FileUtils.cp "#{asset_base}/src/conditional_module.c", 'src/'
192
+ FileUtils.cp "#{asset_base}/src/optional_dep.h", 'src/'
193
+ FileUtils.cp "#{asset_base}/test/test_conditionals.c", 'test/'
194
+
195
+ @c.merge_project_yml_for_test({ :project => { :use_partials => true } })
196
+
197
+ output = `bundle exec ruby -S ceedling gcov:all 2>&1`
198
+ expect($?.exitstatus).to match(0)
199
+ # Coverage must be reported for the Partial (gcov references the original
200
+ # module via #line remapping); no spurious "Found no coverage results" warning.
201
+ expect(output).to match(/Lines executed:/)
202
+ expect(output).not_to match(/Found no coverage results for.*conditional_module/)
203
+ end
204
+ end
205
+ end
206
+
207
+ def create_html_report_with_gcovr_config_file_overrides_default
208
+ @c.with_context do
209
+ Dir.chdir @proj_name do
210
+ prep_project_yml_for_coverage
211
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
212
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
213
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
214
+
215
+ # A second test file covering the same source creates duplicate function
216
+ # coverage entries: Ceedling builds one executable per test file, and both
217
+ # link against example_file.c, producing two sets of .gcda coverage data
218
+ # for the same functions.
219
+ File.write('test/test_example_file_2.c', <<~C)
220
+ #include "unity.h"
221
+ #include "example_file.h"
222
+
223
+ void setUp(void) {}
224
+ void tearDown(void) {}
225
+
226
+ void test_difference_between_two_numbers(void)
227
+ {
228
+ TEST_ASSERT_EQUAL_INT(0, difference_between_numbers(1, 1));
229
+ }
230
+ C
231
+
232
+ # 'strict' causes gcovr to exit non-zero when the same function appears in
233
+ # multiple test executables' coverage data. Ceedling's default is
234
+ # 'merge-use-line-max' (set in defaults.yml), which it injects as a CLI
235
+ # arg that would override this config file setting without the fix.
236
+ File.write('gcovr.cfg', [
237
+ "[gcovr]",
238
+ "merge-mode-functions = strict"
239
+ ].join("\n"))
240
+
241
+ @c.merge_project_yml_for_test({
242
+ :gcov => {
243
+ :gcovr => {
244
+ :config_file => 'gcovr.cfg'
245
+ }
246
+ }
247
+ })
248
+
249
+ output = `bundle exec ruby -S ceedling gcov:all --verbosity=obnoxious 2>&1`
250
+ if @gcov_reports.include? :gcovr
251
+ # Config file honored (fix applied): strict mode exits non-zero on duplicate functions.
252
+ # Config file overridden by Ceedling CLI (bug): merge-use-line-max exits 0.
253
+ expect($?.exitstatus).not_to eq(0)
254
+
255
+ # No `--exclude` should appear on the gcovr command line when a config file is in use.
256
+ expect(output).not_to match(/--exclude/)
257
+ end
258
+ end
259
+ end
260
+ end
261
+
262
+ def create_html_report_from_crashing_test_with_backtrace_enabled
239
263
  @c.with_context do
240
264
  Dir.chdir @proj_name do
241
265
  prep_project_yml_for_coverage
242
266
  FileUtils.cp test_asset_path("example_file.h"), 'src/'
243
267
  FileUtils.cp test_asset_path("example_file.c"), 'src/'
244
- FileUtils.cp test_asset_path("test_example_file_crash.c"), 'test/'
268
+ FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
245
269
 
246
270
  @c.merge_project_yml_for_test({:project => { :use_backtrace => :gdb }})
247
271
 
248
272
  output = `bundle exec ruby -S ceedling gcov:all 2>&1`
249
273
  expect($?.exitstatus).to match(1) # Ceedling should exit with error because of failed test due to crash
250
274
  expect(output).to match(/crashed/i)
251
- expect(output).to match(/Unit test failures./)
252
- expect(File.exist?('./build/gcov/results/test_example_file_crash.fail'))
253
- output_rd = File.read('./build/gcov/results/test_example_file_crash.fail')
254
- expect(output_rd =~ /test_add_numbers_will_fail \(\) at test\/test_example_file_crash.c\:14/ )
275
+ expect(output).to match(/Unit test failures/)
276
+ expect(File.exist?('./build/gcov/results/test_example_file_crash_sigsegv.fail'))
277
+ output_rd = File.read('./build/gcov/results/test_example_file_crash_sigsegv.fail')
278
+ expect(output_rd =~ /test_add_numbers_will_fail \(\) at test\/test_example_file_crash_sigsegv.c\:\d+/ )
255
279
  expect(output).to match(/TESTED:\s+2/)
256
280
  expect(output).to match(/PASSED:\s+(?:0|1)/)
257
281
  expect(output).to match(/FAILED:\s+(?:1|2)/)
258
282
  expect(output).to match(/IGNORED:\s+0/)
259
283
  expect(output).to match(/example_file.c \| Lines executed:5?0.00% of 4/)
260
284
  if @gcov_reports.include? :gcovr
261
- expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr'\.\.\./)
285
+ expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr\/'\.\.\./)
262
286
  expect(File.exist?('build/artifacts/gcov/gcovr/GcovCoverageResults.html')).to eq true
263
287
  end
264
288
  if @gcov_reports.include? :modulegenerator
265
- expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator'\.\.\./)
289
+ expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator\/'\.\.\./)
266
290
  expect(File.exist?('build/artifacts/gcov/ReportGenerator/summary.htm')).to eq true
267
291
  end
268
292
  end
269
293
  end
270
294
  end
271
295
 
272
- def can_create_html_reports_from_crashing_test_runner_with_enabled_debug_with_zero_coverage
296
+ def create_html_report_with_zero_coverage_after_crashing_test_and_backtrace
273
297
  @c.with_context do
274
298
  Dir.chdir @proj_name do
275
299
  prep_project_yml_for_coverage
276
300
  FileUtils.cp test_asset_path("example_file.h"), 'src/'
277
301
  FileUtils.cp test_asset_path("example_file.c"), 'src/'
278
- FileUtils.cp test_asset_path("test_example_file_crash.c"), 'test/'
302
+ FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
279
303
 
280
304
  @c.merge_project_yml_for_test({:project => { :use_backtrace => :gdb }})
281
305
 
282
306
  output = `bundle exec ruby -S ceedling gcov:all --exclude_test_case=test_add_numbers_adds_numbers 2>&1`
283
307
  expect($?.exitstatus).to match(1) # Ceedling should exit with error because of failed test due to crash
284
308
  expect(output).to match(/Test Case Crashed/i)
285
- expect(output).to match(/Unit test failures./)
286
- expect(File.exist?('./build/gcov/results/test_example_file_crash.fail'))
287
- output_rd = File.read('./build/gcov/results/test_example_file_crash.fail')
288
- expect(output_rd =~ /test_add_numbers_will_fail \(\) at test\/test_example_file_crash.c\:14/ )
309
+ expect(output).to match(/Unit test failures/)
310
+ expect(File.exist?('./build/gcov/results/test_example_file_crash_sigsegv.fail'))
311
+ output_rd = File.read('./build/gcov/results/test_example_file_crash_sigsegv.fail')
312
+ expect(output_rd =~ /test_add_numbers_will_fail \(\) at test\/test_example_file_crash_sigsegv.c\:\d+/ )
289
313
  expect(output).to match(/TESTED:\s+1/)
290
314
  expect(output).to match(/PASSED:\s+0/)
291
315
  expect(output).to match(/FAILED:\s+1/)
@@ -293,37 +317,37 @@ module GcovTestCases
293
317
  expect(output).to match(/example_file.c \| Lines executed:0.00% of 4/)
294
318
 
295
319
  if @gcov_reports.include? :gcovr
296
- expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr'\.\.\./)
320
+ expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr\/'\.\.\./)
297
321
  expect(File.exist?('build/artifacts/gcov/gcovr/GcovCoverageResults.html')).to eq true
298
322
  end
299
323
  if @gcov_reports.include? :modulegenerator
300
- expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator'\.\.\./)
324
+ expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator\/'\.\.\./)
301
325
  expect(File.exist?('build/artifacts/gcov/ReportGenerator/summary.htm')).to eq true
302
326
  end
303
327
  end
304
328
  end
305
329
  end
306
330
 
307
- def can_create_html_reports_from_test_runner_with_enabled_debug_with_100_coverage_when_excluding_crashing_test_case
331
+ def create_html_report_100_coverage_excluding_crashing_test_case
308
332
  @c.with_context do
309
333
  Dir.chdir @proj_name do
310
334
  prep_project_yml_for_coverage
311
335
  FileUtils.cp test_asset_path("example_file.h"), 'src/'
312
336
  FileUtils.cp test_asset_path("example_file.c"), 'src/'
313
- FileUtils.cp test_asset_path("test_example_file_crash.c"), 'test/'
337
+ FileUtils.cp test_asset_path("test_example_file_crash_sigsegv.c"), 'test/'
314
338
 
315
339
  add_test_case = "\nvoid test_difference_between_two_numbers(void)\n"\
316
340
  "{\n" \
317
341
  " TEST_ASSERT_EQUAL_INT(0, difference_between_numbers(1,1));\n" \
318
342
  "}\n"
319
-
320
- updated_test_file = File.read('test/test_example_file_crash.c').split("\n")
343
+
344
+ updated_test_file = File.read('test/test_example_file_crash_sigsegv.c').split("\n")
321
345
  updated_test_file.insert(updated_test_file.length(), add_test_case)
322
- File.write('test/test_example_file_crash.c', updated_test_file.join("\n"), mode: 'w')
346
+ File.write('test/test_example_file_crash_sigsegv.c', updated_test_file.join("\n"), mode: 'w')
323
347
 
324
348
  output = `bundle exec ruby -S ceedling gcov:all --exclude_test_case=test_add_numbers_will_fail 2>&1`
325
349
  expect($?.exitstatus).to match(0)
326
- expect(File.exist?('./build/gcov/results/test_example_file_crash.pass'))
350
+ expect(File.exist?('./build/gcov/results/test_example_file_crash_sigsegv.pass'))
327
351
  expect(output).to match(/TESTED:\s+2/)
328
352
  expect(output).to match(/PASSED:\s+2/)
329
353
  expect(output).to match(/FAILED:\s+0/)
@@ -331,14 +355,106 @@ module GcovTestCases
331
355
  expect(output).to match(/example_file.c \| Lines executed:100.00% of 4/)
332
356
 
333
357
  if @gcov_reports.include? :gcovr
334
- expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr'\.\.\./)
358
+ expect(output).to match(/Generating HTML coverage report in 'build\/artifacts\/gcov\/gcovr\/'\.\.\./)
335
359
  expect(File.exist?('build/artifacts/gcov/gcovr/GcovCoverageResults.html')).to eq true
336
360
  end
337
361
  if @gcov_reports.include? :modulegenerator
338
- expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator'\.\.\./)
362
+ expect(output).to match(/Generating HtmlBasic coverage report in 'build\/artifacts\/gcov\/ReportGenerator\/'\.\.\./)
339
363
  expect(File.exist?('build/artifacts/gcov/ReportGenerator/summary.htm')).to eq true
340
364
  end
341
365
  end
342
366
  end
343
367
  end
368
+
369
+ def project_with_gcov_untested_sources_ignore
370
+ @c.with_context do
371
+ Dir.chdir @proj_name do
372
+ prep_project_yml_for_coverage
373
+ add_gcov_option("untested_sources", ":ignore")
374
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
375
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
376
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
377
+ # Untested — no test references this source file.
378
+ FileUtils.cp test_asset_path("uncovered_example_file.c"), 'src/'
379
+
380
+ output = `bundle exec ruby -S ceedling gcov:all 2>&1`
381
+ expect($?.exitstatus).to match(0)
382
+ expect(output).not_to match(/Untested Source Files/)
383
+ expect(output).not_to match(/Processing Untested Sources/)
384
+ expect(output).not_to match(/uncovered_example_file/)
385
+ end
386
+ end
387
+ end
388
+
389
+ def project_with_gcov_untested_sources_list
390
+ @c.with_context do
391
+ Dir.chdir @proj_name do
392
+ prep_project_yml_for_coverage
393
+ add_gcov_option("untested_sources", ":list")
394
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
395
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
396
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
397
+ # Untested — no test references this source file.
398
+ FileUtils.cp test_asset_path("uncovered_example_file.c"), 'src/'
399
+
400
+ output = `bundle exec ruby -S ceedling gcov:all 2>&1`
401
+ expect($?.exitstatus).to match(0)
402
+ # Immediate warning-level filepath listing (no compilation attempted).
403
+ expect(output).to match(/Untested.+not.+coverage report/)
404
+ expect(output).to match(/uncovered_example_file\.c/)
405
+ expect(output).not_to match(/Compiling with coverage.*uncovered_example_file/)
406
+ # Post-build console summary still lists it (basename-keyed).
407
+ expect(output).to match(/Untested Source Files/)
408
+ expect(output).to match(/uncovered_example_file\.c \| No tests executed: 0% coverage/)
409
+ end
410
+ end
411
+ end
412
+
413
+ def project_with_gcov_untested_sources_compile_failure
414
+ @c.with_context do
415
+ Dir.chdir @proj_name do
416
+ prep_project_yml_for_coverage
417
+ add_gcov_option("untested_sources", ":compile")
418
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
419
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
420
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
421
+
422
+ # Untested source with a syntax error — fails to compile regardless of
423
+ # any :defines/:flags, deliberately triggering the guidance notice.
424
+ File.write('src/broken_uncovered_file.c', <<~C)
425
+ int broken_uncovered_function(int a, int b) {
426
+ return a + b // Missing semicolon and closing brace: guaranteed compile error.
427
+ C
428
+
429
+ output = `bundle exec ruby -S ceedling gcov:all 2>&1`
430
+ expect($?.exitstatus).not_to eq(0) # Fail-fast: compile failure fails the build
431
+ expect(output).to match(/Compiling.+with coverage failed/)
432
+ expect(output).to match(/:untested_sources.*:compile/)
433
+ # Avoid unicode character matching in log matching, since some shells may not support them.
434
+ expect(output).to match(/Switch :gcov.+:untested_sources to :list/)
435
+ expect(output).to match(/Switch :gcov.+:untested_sources to :ignore/)
436
+ end
437
+ end
438
+ end
439
+
440
+ def project_with_gcov_untested_sources_standalone_task
441
+ @c.with_context do
442
+ Dir.chdir @proj_name do
443
+ prep_project_yml_for_coverage
444
+ add_gcov_option("untested_sources", ":compile")
445
+ FileUtils.cp test_asset_path("example_file.h"), 'src/'
446
+ FileUtils.cp test_asset_path("example_file.c"), 'src/'
447
+ FileUtils.cp test_asset_path("test_example_file_success.c"), 'test/'
448
+ # Untested — no test references this source file.
449
+ FileUtils.cp test_asset_path("uncovered_example_file.c"), 'src/'
450
+
451
+ # Run the standalone task directly — no prior `gcov:all` in this invocation,
452
+ # so no test fixture is ever built or executed.
453
+ output = `bundle exec ruby -S ceedling gcov:untested_sources 2>&1`
454
+ expect($?.exitstatus).to match(0)
455
+ expect(output).not_to match(/TESTED:\s+\d/) # No test build/run occurred
456
+ expect(File.exist?('build/gcov/out/uncovered_example_file.o')).to eq true
457
+ end
458
+ end
459
+ end
344
460
  end