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,150 @@
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 'stringio'
9
+
10
+ class PreprocessinatorCodeFinder
11
+
12
+ LINE_MARKER_REGEX = /^#\s+(\d+)\s+"[^"]+"[^\n]*\n/ unless const_defined?(:LINE_MARKER_REGEX)
13
+
14
+ # Regex-special-character-immune string
15
+ WHITESPACE_MARKER = '<!@_ws_!@>' unless const_defined?(:WHITESPACE_MARKER)
16
+
17
+ # Open a GCC preprocessor output file and search it for code.
18
+ # Returns the 1-indexed source line number of the match, or nil if not found.
19
+ # Intended for production use where preprocessor output resides on disk.
20
+ def find_in_preprpocessed_file(filepath, code)
21
+ File.open( filepath, 'r' ) do |file|
22
+ return find_in_preprocessed_content( io: file, search: code )
23
+ end
24
+ end
25
+
26
+
27
+ # Wrap a GCC preprocessor output string in a StringIO and search it for code.
28
+ # Returns the 1-indexed source line number of the match, or nil if not found.
29
+ # Intended for test use so that specs require no temporary files.
30
+ def find_in_preprpocessed_string(content, code)
31
+ buffer = StringIO.new( content )
32
+ return find_in_preprocessed_content( io: buffer, search: code )
33
+ end
34
+
35
+ # Open a C source file and search it for code.
36
+ # Returns the 1-indexed source line number of the match, or nil if not found.
37
+ # Intended for production use where C file resides on disk.
38
+ def find_in_c_file(filepath, code)
39
+ File.open( filepath, 'r' ) do |file|
40
+ return find_in_c_code( io: file, search: code )
41
+ end
42
+ end
43
+
44
+
45
+ # Wrap a C file content string in a StringIO and search it for code.
46
+ # Returns the 1-indexed source line number of the match, or nil if not found.
47
+ # Intended for test use so that specs require no temporary files.
48
+ def find_in_c_string(content, code)
49
+ buffer = StringIO.new( content )
50
+ return find_in_c_code( io: buffer, search: code )
51
+ end
52
+
53
+ private
54
+
55
+ # Search a GCC preprocessor output IO stream for an exact match of search.
56
+ #
57
+ # GCC preprocessor output intersperses the expanded source text with line
58
+ # markers of the form:
59
+ # # <linenum> "<filename>" [flags]
60
+ #
61
+ # Each marker declares that the source line immediately following it
62
+ # corresponds to line linenum in the named file. Subsequent non-marker lines
63
+ # increment the source line count by one each.
64
+ #
65
+ # The method locates `search`` as a substring of the full stream content, then
66
+ # walks backwards through the line markers that precede the match to find the
67
+ # most recent one. The source line number is computed as:
68
+ # last_marker_linenum + (newlines between marker end and match start)
69
+ #
70
+ # Returns nil when search is not present in the stream or no line marker
71
+ # precedes the match (which indicates malformed preprocessor output).
72
+ def find_in_preprocessed_content(io:, search:)
73
+ content = io.read
74
+ return nil if content.nil? || content.empty?
75
+
76
+ # Locate the search string within the preprocessor output
77
+ match_pos = whitespace_insensitive_search( content, search )
78
+ return nil if match_pos.nil?
79
+
80
+ # Examine only the content before the match for GCC line markers.
81
+ # Line markers have the form: # <linenum> "<filename>" [optional flags]
82
+ # The linenum in each marker refers to the source line immediately following it.
83
+ prefix = content[0, match_pos]
84
+
85
+ last_marker_num = nil
86
+ # Byte position in content after the last marker's newline
87
+ last_marker_end = 0
88
+
89
+ prefix.scan( LINE_MARKER_REGEX ) do |captures|
90
+ last_marker_num = captures[0].to_i
91
+ last_marker_end = $~.end(0)
92
+ end
93
+
94
+ if last_marker_num.nil?
95
+ # No line marker precedes the match -- something is wrong
96
+ return nil
97
+ end
98
+
99
+ # Each newline between the end of the last line marker line and the match start
100
+ # advances the source line by one. The marker's linenum is the base.
101
+ newlines_after_marker = content[last_marker_end, match_pos - last_marker_end].count("\n")
102
+
103
+ # Return line number of found code (mostly for test validation)
104
+ return last_marker_num + newlines_after_marker
105
+ end
106
+
107
+ # Search a C code IO stream for an exact match of search.
108
+ #
109
+ # The method locates `search`` as a substring of the full stream content, then
110
+ # identifies the source line number. Returns nil when search is not present in
111
+ # the stream.
112
+ def find_in_c_code(io:, search:)
113
+ content = io.read
114
+ return nil if content.nil? || content.empty?
115
+
116
+ # Locate the search string within the preprocessor output
117
+ match_pos = whitespace_insensitive_search( content, search )
118
+ return nil if match_pos.nil?
119
+
120
+ return (content[0, match_pos].count("\n")) + 1
121
+ end
122
+
123
+ private
124
+
125
+ def whitespace_insensitive_search(content, code)
126
+ # Collapse whitespace to a unique token
127
+ _code = code.gsub(/\s+/, WHITESPACE_MARKER)
128
+
129
+ # Escape the code block to search for.
130
+ # Note: Regexp#escape escapes each piece of whitespace and, so, we must take the preparation step above.
131
+ _code = Regexp.escape( _code )
132
+
133
+ # Replace the whitespace token with regex whitespace-insenstive matcher
134
+ _code.gsub!(/#{WHITESPACE_MARKER}/, '\s+')
135
+
136
+ # Create the regex we'll use
137
+ pattern = Regexp.new( _code )
138
+
139
+ # Try to find the code block
140
+ matched = pattern.match( content )
141
+
142
+ # Failed to match
143
+ return matched if matched.nil?
144
+
145
+ # Return position of the match within `content`
146
+ return matched.begin( 0 )
147
+ end
148
+
149
+
150
+ end
@@ -0,0 +1,80 @@
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 'stringio'
9
+ require 'ceedling/exceptions'
10
+
11
+ class PreprocessinatorCommentStripper
12
+
13
+ constructor :c_comment_scanner
14
+
15
+
16
+ # Strip all C comments from a file. The file is unchanged if no comments
17
+ # are found. The routine returns `true` if changes are made, `false` otherwise.
18
+ #
19
+ # Every single-line comment is replaced by a single space. Every multi-line
20
+ # comment is replaced by an equivalent number of newlines.
21
+ def strip_file(filepath)
22
+ stripped = nil
23
+
24
+ begin
25
+ # Open in binary mode to avoid locale-dependent encoding failures.
26
+ # GCC preprocessor output may contain localized strings (e.g. <組み込み> under ja_JP locale).
27
+ # CCommentScanner already operates byte-accurately internally.
28
+ File.open(filepath, 'rb') do |buffer|
29
+ stripped = strip(buffer)
30
+ end
31
+ rescue => e
32
+ raise CeedlingException.new("Failed to read '#{filepath}' for comment stripping ⏩️ #{e}")
33
+ end
34
+
35
+ # No change
36
+ return false if stripped.nil?
37
+
38
+ begin
39
+ # Write in binary mode to match binary read — preserves original line endings exactly
40
+ File.write(filepath, stripped, mode: 'wb')
41
+ rescue => e
42
+ raise CeedlingException.new("Failed to rewrite '#{filepath}' after comment stripping ⏩️ #{e}")
43
+ end
44
+
45
+ return true
46
+ end
47
+
48
+ # Strip all C comments from a string content and return the cleaned content
49
+ # as a String. The string is unchanged if no comments are found.
50
+ #
51
+ # Every single-line comment is replaced by a single space. Every multi-line
52
+ # comment is replaced by an equivalent number of newlines.
53
+ def strip_string(content)
54
+ buffer = StringIO.new(content)
55
+ stripped = strip(buffer)
56
+
57
+ return content if stripped.nil?
58
+
59
+ return stripped
60
+ end
61
+
62
+ private
63
+
64
+ def strip(buffer)
65
+ # Search buffer for comments
66
+ comment_infos = @c_comment_scanner.scan(io: buffer)
67
+ return nil if comment_infos.empty?
68
+
69
+ # Reset buffer
70
+ buffer.rewind
71
+
72
+ # Remove comments from content of buffer
73
+ return @c_comment_scanner.remove(
74
+ buffer.read,
75
+ comment_infos,
76
+ mode: CCommentScanner::PRESERVE_LINES
77
+ )
78
+ end
79
+
80
+ end
@@ -0,0 +1,392 @@
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 'rake' # for ext() method
9
+ require 'ceedling/file_wrapper'
10
+ require 'ceedling/encodinator'
11
+ require 'ceedling/preprocess/c_preprocessor_conditionals'
12
+
13
+ class PreprocessinatorFileAssembler
14
+
15
+ constructor(
16
+ :preprocessinator_reconstructor,
17
+ :configurator,
18
+ :tool_executor,
19
+ :file_path_utils,
20
+ :file_wrapper,
21
+ :parsing_parcels,
22
+ :loginator,
23
+ :reportinator
24
+ )
25
+
26
+ def collect_mockable_header_file_contents(
27
+ test:,
28
+ filepath:,
29
+ directives_only_filepath:,
30
+ fallback:,
31
+ flags:,
32
+ defines:,
33
+ include_paths:,
34
+ extras:
35
+ )
36
+ contents = []
37
+
38
+ # Our extra file content to be preserved
39
+ # Leave these empty if :extras is false
40
+ pragmas = []
41
+ macro_defs = []
42
+
43
+ preprocessed_filepath = @file_path_utils.form_preprocessed_file_full_expansion_filepath( filepath, test )
44
+
45
+ # Run GCC with full preprocessor expansion
46
+ command = @tool_executor.build_command_line(
47
+ @configurator.tools_test_file_full_preprocessor,
48
+ # Additional arguments
49
+ flags,
50
+ # Argument replacement
51
+ filepath,
52
+ preprocessed_filepath,
53
+ defines,
54
+ include_paths
55
+ )
56
+ @tool_executor.exec( command )
57
+
58
+ @file_wrapper.open( preprocessed_filepath, 'r' ) do |file|
59
+ contents = @preprocessinator_reconstructor.extract_file_as_array_from_expansion( file, filepath )
60
+ end
61
+
62
+ # Bail out if no extras are required
63
+ return contents, [], nil if !extras
64
+
65
+ # Try to find an #include guard in the first 2k of the file text. This name is used two ways:
66
+ # 1. To exclude the guard's own #define from the macro definitions preserved as "extras" below
67
+ # (it would be redundant -- assemble_preprocessed_header_file writes its own guard).
68
+ # 2. Returned to the caller so the reconstructed header can reuse this exact guard name (see
69
+ # assemble_preprocessed_header_file) instead of a synthetic one. Reusing the original name keeps
70
+ # the reconstructed file recognized as "the same header" by the preprocessor wherever both the
71
+ # original and a reconstructed/mocked copy are reachable in the same translation unit's include
72
+ # graph. A mismatched synthetic guard was the root cause of enum/type redeclaration errors in
73
+ # https://github.com/ThrowTheSwitch/Ceedling/issues/1064.
74
+ # If no guard is found (e.g. the header uses `#pragma once` or has none), `nil` flows through and
75
+ # assemble_preprocessed_header_file falls back to a synthetic guard, matching prior behavior.
76
+ include_guard =
77
+ @preprocessinator_reconstructor.extract_include_guard(
78
+ @file_wrapper.read(
79
+ filepath,
80
+ 2048
81
+ ).clean_encoding
82
+ )
83
+
84
+ if fallback
85
+ msg = @reportinator.generate_module_progress(
86
+ operation: "Using fallback method to extract pragmas and macros from",
87
+ module_name: test,
88
+ filename: File.basename(filepath)
89
+ )
90
+ @loginator.log( msg, Verbosity::OBNOXIOUS, LogLabels::WARNING )
91
+
92
+ # Open in binary mode + clean encoding: source files may contain non-ASCII bytes
93
+ # in comments (e.g. © symbols) that cause encoding errors under non-C locale.
94
+ @file_wrapper.open( filepath, 'rb' ) do |file|
95
+ # TODO: Modify to process line-at-a-time for memory savings & performance boost
96
+ _contents = file.read.clean_encoding
97
+
98
+ # Filter out inactive conditional blocks before extraction so that only
99
+ # pragmas and macros that are active for the current defines list are returned.
100
+ _contents = _filter_conditionals( _contents, defines )
101
+
102
+ # Extract pragmas and macros from
103
+ pragmas = @preprocessinator_reconstructor.extract_pragmas( _contents )
104
+ macro_defs = @preprocessinator_reconstructor.extract_macro_defs( _contents, include_guard )
105
+ end
106
+ else
107
+ @file_wrapper.open( directives_only_filepath, 'r' ) do |file|
108
+ # Get code contents of preprocessed directives-only file as a string
109
+ # TODO: Modify to process line-at-a-time for memory savings & performance boost
110
+ _contents = @preprocessinator_reconstructor.extract_file_as_string_from_expansion( file, filepath )
111
+
112
+ # Extract pragmas and macros from
113
+ pragmas = @preprocessinator_reconstructor.extract_pragmas( _contents )
114
+ macro_defs = @preprocessinator_reconstructor.extract_macro_defs( _contents, include_guard )
115
+ end
116
+ end
117
+
118
+ return contents, (pragmas + macro_defs), include_guard
119
+ end
120
+
121
+
122
+ def collect_file_contents_from_directives_only_preprocessing(source_filepath:, test:)
123
+ contents = []
124
+
125
+ preprocessed_filepath = @file_path_utils.form_preprocessed_file_raw_directives_only_filepath( source_filepath, test )
126
+
127
+ @file_wrapper.open( preprocessed_filepath, 'r' ) do |file|
128
+ contents = @preprocessinator_reconstructor.extract_file_as_array_from_expansion( file, source_filepath )
129
+ end
130
+
131
+ return contents
132
+ end
133
+
134
+ # Extract macro definitions and pragmas from a file using text scanning (fallback mode).
135
+ # Used to preserve #define macros and #pragma directives in partial file reconstruction
136
+ # when the directives-only preprocessor (-fdirectives-only) is not available.
137
+ # Mirrors the fallback branch of collect_mockable_header_file_contents.
138
+ def collect_macros_and_pragmas_fallback(source_filepath:, defines: [])
139
+ include_guard = @preprocessinator_reconstructor.extract_include_guard(
140
+ @file_wrapper.read( source_filepath, 2048 ).clean_encoding
141
+ )
142
+
143
+ pragmas = []
144
+ macro_defs = []
145
+
146
+ @file_wrapper.open( source_filepath, 'rb' ) do |file|
147
+ _contents = file.read.clean_encoding
148
+ _contents = _filter_conditionals( _contents, defines )
149
+ pragmas = @preprocessinator_reconstructor.extract_pragmas( _contents )
150
+ macro_defs = @preprocessinator_reconstructor.extract_macro_defs( _contents, include_guard )
151
+ end
152
+
153
+ return pragmas + macro_defs
154
+ end
155
+
156
+
157
+ def collect_file_contents_fallback(source_filepath:, defines: [])
158
+ # Open in binary mode + clean encoding: source files may have non-ASCII bytes
159
+ # in comments (e.g. © symbols) that raise encoding errors under locale-dependent
160
+ # text-mode encoding on non-C-locale systems.
161
+ # Call line.chomp before clean_encoding: readlines(chomp:true) in binary mode
162
+ # removes the \n separator but leaves \r on Windows CRLF lines. clean_encoding's
163
+ # :universal_newline option would then convert that lone \r → \n, producing lines
164
+ # with a spurious trailing \n that causes double-newlines in assembled output.
165
+ # String#chomp (no-arg) removes \r\n, \r, or \n — safe on all platforms.
166
+ cond_tracker = CPreprocessorConditionals.new( defines )
167
+ result = []
168
+
169
+ @file_wrapper.open( source_filepath, 'rb' ) do |file|
170
+ file.readlines( chomp: true ).each do |raw_line|
171
+ line = raw_line.chomp.clean_encoding
172
+
173
+ # Strip inline // comment from a temporary copy for directive detection only.
174
+ # We preserve the original line (with comments) in output per design intent.
175
+ stripped = line.sub( /\s*\/\/.*$/, '' ).lstrip
176
+
177
+ # Feed the comment-stripped line to the conditional tracker.
178
+ # The tracker only reacts to lines beginning with '#'.
179
+ cond_tracker.process_directive( stripped )
180
+
181
+ # Skip all preprocessor directive lines from output (they appear in the
182
+ # assembled file via the includes list and extras rather than raw content).
183
+ # The non-fallback path produces GCC expansion output which contains no
184
+ # literal #include/#define/#pragma lines either.
185
+ next if stripped.start_with?( '#' )
186
+
187
+ # Skip lines inside inactive conditional blocks
188
+ next unless cond_tracker.active?
189
+
190
+ result << line
191
+ end
192
+ end
193
+
194
+ return result
195
+ end
196
+
197
+
198
+ def collect_file_contents_from_full_expansion(source_filepath:, test:)
199
+ contents = []
200
+
201
+ full_expansion_filepath = @file_path_utils.form_preprocessed_file_full_expansion_filepath( source_filepath, test )
202
+
203
+ @file_wrapper.open( full_expansion_filepath, 'r' ) do |file|
204
+ contents = @preprocessinator_reconstructor.extract_file_as_array_from_expansion( file, source_filepath )
205
+ end
206
+
207
+ return contents
208
+ end
209
+
210
+
211
+ def assemble_preprocessed_header_file(filename:, preprocessed_filepath:, contents:, extras:, includes:, include_guard: nil)
212
+ # Reuse the original header's own #include guard name when we found one so that this
213
+ # reconstructed file is recognized as "the same header" by the preprocessor wherever both
214
+ # are reachable (e.g. once via a mock's shadowed copy, once via the original source path).
215
+ # Fall back to a synthetic guard derived from the filename otherwise.
216
+ guardname = include_guard || FileWrapper.generate_include_guard( filename )
217
+
218
+ # Write contents of final preprocessed file a line at a time
219
+ # ----------------------------------------------------------
220
+ @file_wrapper.open( preprocessed_filepath, 'w' ) do |file|
221
+ # Add include guards and extra blank lines to beginning of file contents
222
+ file << "#ifndef #{guardname}\n"
223
+ file << "#define #{guardname}\n\n"
224
+
225
+ # Reinsert #include statements into stripped down file
226
+ # Rely on Include object stringification for formatting of incudes
227
+ includes.each { |include| file << "#{include}\n" }
228
+
229
+ # Blank line
230
+ file << "\n" unless includes.empty?
231
+
232
+ # Add in any macro defintions or prgamas
233
+ extras.each do |ex|
234
+ if ex.class == String
235
+ file << ex + "\n"
236
+
237
+ elsif ex.class == Array
238
+ ex.each { |line| file << line + "\n" }
239
+ end
240
+
241
+ # Blank line
242
+ file << "\n"
243
+ end
244
+
245
+ # Add extracted contents from preprocessed file
246
+ contents.each { |line| file << line + "\n" }
247
+
248
+ # Add final rear guard with extra blank lines
249
+ file << "\n#endif // #{guardname}\n"
250
+ end
251
+ end
252
+
253
+
254
+ def collect_test_file_contents(
255
+ test:,
256
+ filepath:,
257
+ directives_only_filepath:,
258
+ fallback:,
259
+ flags:,
260
+ defines:,
261
+ include_paths:
262
+ )
263
+ contents = []
264
+ # TEST_SOURCE_FILE() and TEST_INCLUDE_PATH()
265
+ test_directives = []
266
+ # TEST_CASE() / TEST_RANGE() / TEST_MATRIX(), paired with the test function name each precedes
267
+ test_case_directives = []
268
+
269
+ preprocessed_filepath = @file_path_utils.form_preprocessed_file_full_expansion_filepath( filepath, test )
270
+
271
+ # Run GCC with full preprocessor expansion
272
+ command = @tool_executor.build_command_line(
273
+ @configurator.tools_test_file_full_preprocessor,
274
+ # Additional arguments
275
+ flags,
276
+ # Argument replacement
277
+ filepath,
278
+ preprocessed_filepath,
279
+ defines,
280
+ include_paths
281
+ )
282
+ @tool_executor.exec( command )
283
+
284
+ @file_wrapper.open( preprocessed_filepath, 'r' ) do |file|
285
+ contents = @preprocessinator_reconstructor.extract_file_as_array_from_expansion( file, filepath )
286
+ end
287
+
288
+ if fallback
289
+ msg = @reportinator.generate_module_progress(
290
+ operation: "Using fallback method to extract test directive macros from",
291
+ module_name: test,
292
+ filename: File.basename(filepath)
293
+ )
294
+ @loginator.log( msg, Verbosity::OBNOXIOUS, LogLabels::WARNING )
295
+
296
+ # Open in binary mode + clean encoding: source files may contain non-ASCII bytes
297
+ # in comments (e.g. © symbols) that cause encoding errors under non-C locale.
298
+ @file_wrapper.open( filepath, 'rb' ) do |file|
299
+ _contents = file.read.clean_encoding
300
+
301
+ # Filter out inactive conditional blocks before extraction so that only
302
+ # test directives that are active for the current defines list are returned.
303
+ _contents = _filter_conditionals( _contents, defines )
304
+
305
+ # Extract TEST_SOURCE_FILE() and TEST_INCLUDE_PATH()
306
+ test_directives = @preprocessinator_reconstructor.extract_test_directive_macro_calls( _contents )
307
+
308
+ # Extract TEST_CASE()/TEST_RANGE()/TEST_MATRIX() calls paired with the test function
309
+ # they immediately precede -- these vanish from `contents` above because they're real
310
+ # (empty-expanding) Unity macros erased by full preprocessor expansion, so we must
311
+ # recover them from this macro-preserving text instead.
312
+ test_case_directives = @preprocessinator_reconstructor.extract_test_case_directives( _contents )
313
+ end
314
+ else
315
+ @file_wrapper.open( directives_only_filepath, 'r' ) do |file|
316
+ # Get code contents of preprocessed directives-only file as a string
317
+ _contents = @preprocessinator_reconstructor.extract_file_as_string_from_expansion( file, filepath )
318
+
319
+ # Extract TEST_SOURCE_FILE() and TEST_INCLUDE_PATH()
320
+ test_directives = @preprocessinator_reconstructor.extract_test_directive_macro_calls( _contents )
321
+
322
+ # Extract TEST_CASE()/TEST_RANGE()/TEST_MATRIX() calls paired with the test function
323
+ # they immediately precede (see comment in the fallback branch above)
324
+ test_case_directives = @preprocessinator_reconstructor.extract_test_case_directives( _contents )
325
+ end
326
+ end
327
+
328
+ # Reinsert TEST_CASE()/TEST_RANGE()/TEST_MATRIX() calls immediately ahead of their test
329
+ # function in `contents` -- full expansion erased them in place with no trace (not even a
330
+ # blank line), so position must be recovered by matching on the function name they modify.
331
+ contents = @preprocessinator_reconstructor.splice_test_case_directives(
332
+ contents: contents,
333
+ directives: test_case_directives
334
+ )
335
+
336
+ return contents, test_directives
337
+ end
338
+
339
+
340
+ ### Private ###
341
+
342
+ private
343
+
344
+ # Filters `file_contents` string through CPreprocessorConditionals, returning
345
+ # only lines in active conditional blocks. Uses code_lines internally so
346
+ # comments are stripped and line continuations are joined before filtering.
347
+ # Intended for token extraction (pragmas, macro defs, test directives) — NOT
348
+ # for content output where comments must be preserved.
349
+ def _filter_conditionals(file_contents, defines)
350
+ tracker = CPreprocessorConditionals.new( defines )
351
+ lines = []
352
+ @parsing_parcels.code_lines( file_contents ) do |line|
353
+ tracker.process_directive( line )
354
+ lines << line if tracker.active?
355
+ end
356
+ lines.join("\n") + "\n"
357
+ end
358
+
359
+ public
360
+
361
+ def assemble_preprocessed_code_file(filename:, preprocessed_filepath:, contents:, extras:, includes:)
362
+ # Write contents of final preprocessed file a line at a time
363
+ # ----------------------------------------------------------
364
+ @file_wrapper.open( preprocessed_filepath, 'w' ) do |file|
365
+ # Reinsert #include statements into stripped down file
366
+ # Rely on Include object stringification for formatting of incudes
367
+ includes.each { |include| file << "#{include}\n" }
368
+
369
+ # Blank line
370
+ file << "\n" unless includes.empty?
371
+
372
+ # Add in any extras like test directive macros or preserved macro definitions
373
+ extras.each do |ex|
374
+ if ex.class == String
375
+ file << ex + "\n"
376
+ elsif ex.class == Array
377
+ ex.each { |line| file << line + "\n" }
378
+ end
379
+ end
380
+
381
+ # Blank line
382
+ file << "\n" unless extras.empty?
383
+
384
+ # Add extracted contents from preprocessed file
385
+ contents.each { |line| file << line + "\n" }
386
+
387
+ # Blank line
388
+ file << "\n" unless contents.empty?
389
+ end
390
+ end
391
+
392
+ end