ceedling 1.1.10 → 1.2.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 (1145) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.simplecov +73 -0
  4. data/GIT_COMMIT_SHA +1 -1
  5. data/Gemfile +84 -8
  6. data/Gemfile.lock +38 -8
  7. data/README.md +64 -45
  8. data/Rakefile +769 -16
  9. data/assets/{project.yml → features/project.yml} +4 -1
  10. data/assets/fixtures/bullseye_branch_coverage/src/branchy.c +24 -0
  11. data/assets/fixtures/bullseye_branch_coverage/src/branchy.h +14 -0
  12. data/assets/fixtures/bullseye_branch_coverage/test/test_branchy.c +18 -0
  13. data/assets/fixtures/cppcheck_findings/findings.c +23 -0
  14. data/assets/fixtures/cppcheck_findings/findings.h +13 -0
  15. data/assets/fixtures/header_include_path_validation/alt_drivers/foo.h +6 -0
  16. data/assets/fixtures/header_include_path_validation/bar.h +6 -0
  17. data/assets/fixtures/header_include_path_validation/drivers/foo.h +6 -0
  18. data/assets/fixtures/header_include_path_validation/dup.h +6 -0
  19. data/assets/fixtures/header_include_path_validation/other_inc/dup.h +6 -0
  20. data/assets/fixtures/header_include_path_validation/test_ambiguous_mock.c +15 -0
  21. data/assets/fixtures/header_include_path_validation/test_bare_mock.c +11 -0
  22. data/assets/fixtures/header_include_path_validation/test_bogus_mock_path.c +11 -0
  23. data/assets/fixtures/header_include_path_validation/test_bogus_vanilla_path.c +10 -0
  24. data/assets/fixtures/header_include_path_validation/test_include_outranks_test_include_path.c +16 -0
  25. data/assets/fixtures/header_include_path_validation/test_pathed_mock.c +11 -0
  26. data/assets/fixtures/header_include_path_validation/test_pathed_mock_ambiguous.c +14 -0
  27. data/assets/fixtures/header_include_path_validation/test_test_include_path_outranks_include.c +17 -0
  28. data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.c +6 -0
  29. data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.h +6 -0
  30. data/assets/fixtures/implicit_source_header_correspondence/beta/dup.c +6 -0
  31. data/assets/fixtures/implicit_source_header_correspondence/beta/dup.h +6 -0
  32. data/assets/fixtures/implicit_source_header_correspondence/gamma/dup_gamma.c +6 -0
  33. data/assets/fixtures/implicit_source_header_correspondence/test_dup_alpha.c +10 -0
  34. data/assets/fixtures/implicit_source_header_correspondence/test_dup_bare.c +10 -0
  35. data/assets/fixtures/implicit_source_header_correspondence/test_dup_beta.c +10 -0
  36. data/assets/fixtures/implicit_source_header_correspondence/test_dup_override.c +19 -0
  37. data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive.c +19 -0
  38. data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive_noop.c +16 -0
  39. data/assets/fixtures/parent_directory_references/alpha/extra.c +4 -0
  40. data/assets/fixtures/parent_directory_references/common/helper.c +6 -0
  41. data/assets/fixtures/parent_directory_references/common/helper.h +6 -0
  42. data/assets/fixtures/parent_directory_references/unit/test_dotdot_include.c +10 -0
  43. data/assets/fixtures/parent_directory_references/unit/test_dotdot_source.c +16 -0
  44. data/assets/fixtures/plain_inline_module.h +9 -0
  45. data/assets/fixtures/same_named_modules/include/drivers/spi/config.h +6 -0
  46. data/assets/fixtures/same_named_modules/include/drivers/uart/config.h +6 -0
  47. data/assets/fixtures/same_named_modules/src/drivers/spi/config.c +8 -0
  48. data/assets/fixtures/same_named_modules/src/drivers/uart/config.c +10 -0
  49. data/assets/fixtures/same_named_modules/test/test_both_configs.c +26 -0
  50. data/assets/fixtures/same_named_modules/test/test_both_configs_mocked.c +20 -0
  51. data/assets/fixtures/same_named_modules/test/test_both_configs_mocked_traditional.c +19 -0
  52. data/assets/fixtures/same_named_modules/test/test_both_modules.c +19 -0
  53. data/assets/fixtures/same_named_modules/test/test_uart_config_bare.c +19 -0
  54. data/assets/fixtures/same_named_modules/test/test_uart_config_partial_only.c +20 -0
  55. data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.c +6 -0
  56. data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.h +6 -0
  57. data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.c +6 -0
  58. data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.h +6 -0
  59. data/assets/fixtures/sources_with_duplicate_basenames/main.c +11 -0
  60. data/assets/fixtures/sources_with_duplicate_basenames/test_baz_bar.c +10 -0
  61. data/assets/fixtures/sources_with_duplicate_basenames/test_both_bars.c +12 -0
  62. data/assets/fixtures/sources_with_duplicate_basenames/test_foo_bar.c +10 -0
  63. data/assets/{test_example_file_boom.c → fixtures/test_nosanitize_boom.c} +9 -0
  64. data/assets/{test_example_file_crash_assert.c → fixtures/test_nosanitize_crash_assert.c} +8 -0
  65. data/assets/{test_example_file_crash_sigsegv.c → fixtures/test_nosanitize_crash_sigsegv.c} +8 -0
  66. data/assets/{test_example_file_crash_sigsegv_with_param.c → fixtures/test_nosanitize_crash_sigsegv_with_param.c} +8 -0
  67. data/assets/fixtures/test_nosanitize_heap_buffer_overflow.c +31 -0
  68. data/assets/fixtures/test_nosanitize_leak.c +34 -0
  69. data/assets/fixtures/test_nosanitize_two_findings.c +36 -0
  70. data/assets/{test_example_file_ub_shift_overflow.c → fixtures/test_nosanitize_ub_shift_overflow.c} +9 -0
  71. data/assets/fixtures/test_plain_inline_module.c +15 -0
  72. data/assets/fixtures/test_source_file_duplicate_basenames/alpha/calc.c +4 -0
  73. data/assets/fixtures/test_source_file_duplicate_basenames/beta/calc.c +4 -0
  74. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_alpha.c +15 -0
  75. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_ambiguous.c +15 -0
  76. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_beta.c +15 -0
  77. data/assets/fixtures/tests_with_conditional_includes/src/feature_extra2.h +13 -0
  78. data/assets/fixtures/tests_with_conditional_includes/src/macro_target_extra.h +13 -0
  79. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.c +19 -3
  80. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.h +1 -0
  81. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.c +17 -1
  82. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget.c +12 -4
  83. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget_feature.c +8 -5
  84. data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.c +7 -0
  85. data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.h +6 -0
  86. data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.c +16 -0
  87. data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.h +6 -0
  88. data/assets/fixtures/tests_with_conditional_mocks/src/FeatureConfig.h +6 -0
  89. data/assets/fixtures/tests_with_conditional_mocks/src/Gpt.h +6 -0
  90. data/assets/fixtures/tests_with_conditional_mocks/src/MyModuleConfig.h +17 -0
  91. data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart1.h +6 -0
  92. data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart2.h +6 -0
  93. data/assets/fixtures/tests_with_conditional_mocks/src/drivers/widget.h +6 -0
  94. data/assets/fixtures/tests_with_conditional_mocks/src/reader.c +7 -0
  95. data/assets/fixtures/tests_with_conditional_mocks/src/reader.h +6 -0
  96. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01.c +21 -0
  97. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01_legacy.c +16 -0
  98. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_02.c +31 -0
  99. data/assets/fixtures/tests_with_conditional_mocks/test/test_FeatureConfig.c +15 -0
  100. data/assets/fixtures/tests_with_conditional_mocks/test/test_reader.c +13 -0
  101. data/assets/fixtures/tests_with_duplicate_test_names/integration/test_foo.c +21 -0
  102. data/assets/fixtures/tests_with_duplicate_test_names/unit/test_foo.c +21 -0
  103. data/assets/fixtures/tests_with_fallback_conditionals/src/conditional_module.c +28 -0
  104. data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/test/test_conditionals.c +8 -1
  105. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_lower.s +2 -0
  106. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_upper.S +13 -0
  107. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.c +13 -0
  108. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.h +13 -0
  109. data/assets/fixtures/tests_with_multiple_assembly_extensions/test/test_counter_module.c +27 -0
  110. data/assets/fixtures/tests_with_subdir_includes/src/module/app/config.h +13 -0
  111. data/assets/fixtures/tests_with_subdir_includes/src/module/drivers/config.h +13 -0
  112. data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.c +30 -0
  113. data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.h +13 -0
  114. data/assets/fixtures/tests_with_subdir_includes/src/shared/config.h +13 -0
  115. data/assets/fixtures/tests_with_subdir_includes/test/test_sensor.c +32 -0
  116. data/bin/actionator.rb +234 -0
  117. data/bin/app_cfg.rb +28 -0
  118. data/bin/cli.rb +78 -47
  119. data/bin/cli_handler.rb +96 -58
  120. data/bin/cli_helper.rb +95 -49
  121. data/bin/cli_options_transform.rb +22 -0
  122. data/bin/{configinator.rb → composinator.rb} +39 -32
  123. data/bin/mixin_resolvinator.rb +124 -0
  124. data/bin/mixin_standardizer.rb +31 -61
  125. data/bin/mixinator.rb +27 -29
  126. data/bin/mixins.rb +0 -5
  127. data/bin/objects.yml +20 -7
  128. data/bin/path_validator.rb +6 -5
  129. data/bin/projectinator.rb +51 -142
  130. data/bin/rake_patches.rb +36 -2
  131. data/bin/recursive_merger.rb +7 -1
  132. data/bin/versionator.rb +2 -3
  133. data/ceedling.gemspec +83 -12
  134. data/docs/BreakingChanges.md +46 -2
  135. data/docs/CONTRIBUTING.md +45 -29
  136. data/docs/CeedlingPullRequestChecklist.md +10 -9
  137. data/docs/Changelog.md +337 -37
  138. data/docs/KnownIssues.md +30 -4
  139. data/docs/ReleaseNotes.md +288 -12
  140. data/docs/SECURITY.md +46 -2
  141. data/docs/ThrowTheSwitchCodingStandard.md +21 -3
  142. data/docs/overrides/main.html +35 -0
  143. data/examples/temp_sensor/mixin/add_bullseye.yml +19 -0
  144. data/examples/wondrous_forest/README.md +3 -0
  145. data/examples/wondrous_forest/src/sensors/light/Calibration.c +21 -0
  146. data/examples/wondrous_forest/src/sensors/light/Calibration.h +14 -0
  147. data/examples/wondrous_forest/src/sensors/soil/Calibration.c +23 -0
  148. data/examples/wondrous_forest/src/sensors/soil/Calibration.h +14 -0
  149. data/examples/wondrous_forest/test/TestCalibration.c +39 -0
  150. data/lib/ceedling/batchinator.rb +81 -22
  151. data/lib/ceedling/c_extractor/README.md +61 -0
  152. data/lib/ceedling/c_extractor/c_extractor.rb +33 -2
  153. data/lib/ceedling/c_extractor/c_extractor_code_text.rb +18 -10
  154. data/lib/ceedling/c_extractor/c_extractor_constants.rb +10 -10
  155. data/lib/ceedling/c_extractor/c_extractor_declarations.rb +14 -14
  156. data/lib/ceedling/c_extractor/c_extractor_functions.rb +10 -13
  157. data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +77 -0
  158. data/lib/ceedling/c_extractor/c_extractor_types.rb +8 -5
  159. data/lib/ceedling/ceedling.h +33 -0
  160. data/lib/ceedling/config/config_matchinator.rb +36 -13
  161. data/lib/ceedling/config/configurator.rb +370 -531
  162. data/lib/ceedling/config/configurator_builder.rb +253 -365
  163. data/lib/ceedling/config/configurator_plugins.rb +68 -102
  164. data/lib/ceedling/config/configurator_setup.rb +360 -616
  165. data/lib/ceedling/config/configurator_validator.rb +114 -142
  166. data/lib/ceedling/config/line_marker_suppressors.rb +67 -0
  167. data/lib/ceedling/constants.rb +60 -6
  168. data/lib/ceedling/defaults.rb +28 -14
  169. data/lib/ceedling/defineinator.rb +9 -4
  170. data/lib/ceedling/dependencies/README.md +69 -0
  171. data/lib/ceedling/dependencies/dependency_cache_store.rb +160 -0
  172. data/lib/ceedling/dependencies/dependency_debug_tree.rb +129 -0
  173. data/lib/ceedling/dependencies/dependency_differ.rb +127 -0
  174. data/lib/ceedling/dependencies/dependency_hasher.rb +94 -0
  175. data/lib/ceedling/dependencies/dependency_path_normalizer.rb +80 -0
  176. data/lib/ceedling/dependencies/dependency_tracker.rb +405 -0
  177. data/lib/ceedling/dependencies/dependinator.rb +65 -0
  178. data/lib/ceedling/dependencies/gcc_dependency_parser.rb +86 -0
  179. data/lib/ceedling/encodinator.rb +23 -11
  180. data/lib/ceedling/file_finder.rb +373 -89
  181. data/lib/ceedling/file_finder_helper.rb +44 -33
  182. data/lib/ceedling/file_path_collection_utils.rb +17 -4
  183. data/lib/ceedling/file_path_utils.rb +310 -52
  184. data/lib/ceedling/file_wrapper.rb +275 -8
  185. data/lib/ceedling/filename_extension.rb +91 -0
  186. data/lib/ceedling/flaginator.rb +6 -2
  187. data/lib/ceedling/generators/generator.rb +192 -70
  188. data/lib/ceedling/generators/generator_helper.rb +116 -69
  189. data/lib/ceedling/generators/generator_mocks.rb +13 -8
  190. data/lib/ceedling/generators/generator_partials.rb +47 -15
  191. data/lib/ceedling/generators/generator_test_results.rb +29 -17
  192. data/lib/ceedling/generators/generator_test_results_backtrace.rb +199 -107
  193. data/lib/ceedling/generators/generator_test_results_sanity_checker.rb +1 -1
  194. data/lib/ceedling/includes/include_factory.rb +21 -6
  195. data/lib/ceedling/includes/include_pathinator.rb +40 -4
  196. data/lib/ceedling/includes/includes.rb +215 -61
  197. data/lib/ceedling/loginator.rb +13 -4
  198. data/lib/ceedling/objects.yml +216 -33
  199. data/lib/ceedling/parsing_parcels.rb +39 -13
  200. data/lib/ceedling/partials/README.md +53 -0
  201. data/lib/ceedling/partials/partializer.rb +118 -26
  202. data/lib/ceedling/partials/partializer_config.rb +141 -8
  203. data/lib/ceedling/partials/partializer_helper.rb +88 -2
  204. data/lib/ceedling/partials/partializer_utils.rb +1 -1
  205. data/lib/ceedling/partials/partials.rb +4 -4
  206. data/lib/ceedling/path_matcher.rb +163 -0
  207. data/lib/ceedling/path_mirror.rb +73 -0
  208. data/lib/ceedling/plugins/plugin.rb +1 -1
  209. data/lib/ceedling/plugins/plugin_manager.rb +31 -15
  210. data/lib/ceedling/plugins/plugin_manager_helper.rb +5 -1
  211. data/lib/ceedling/plugins/plugin_reportinator.rb +36 -7
  212. data/lib/ceedling/plugins/plugin_reportinator_helper.rb +3 -3
  213. data/lib/ceedling/plugins/report_log_writer_plugin.rb +66 -0
  214. data/lib/ceedling/plugins/report_tests_stdout_plugin.rb +18 -5
  215. data/lib/ceedling/preprocess/README.md +135 -120
  216. data/lib/ceedling/preprocess/c_comment_scanner.rb +9 -7
  217. data/lib/ceedling/preprocess/c_preprocessor_conditionals.rb +27 -10
  218. data/lib/ceedling/preprocess/preprocessinator.rb +253 -217
  219. data/lib/ceedling/preprocess/preprocessinator_bare_includes_extractor.rb +7 -10
  220. data/lib/ceedling/preprocess/preprocessinator_code_finder.rb +8 -6
  221. data/lib/ceedling/preprocess/preprocessinator_comment_stripper.rb +5 -3
  222. data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +86 -82
  223. data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +182 -163
  224. data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +174 -8
  225. data/lib/ceedling/preprocess/preprocessinator_reconstructor.rb +41 -20
  226. data/lib/ceedling/quote_include_isolator.rb +129 -0
  227. data/lib/ceedling/rake_app/rake_task_registry.rb +9 -9
  228. data/lib/ceedling/rake_app/rake_wrapper.rb +0 -13
  229. data/lib/ceedling/rake_app/rakefile_component_resolver.rb +24 -12
  230. data/lib/ceedling/rake_app/test_task_name.rb +29 -0
  231. data/lib/ceedling/rakefile.rb +3 -1
  232. data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
  233. data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
  234. data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
  235. data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
  236. data/lib/ceedling/{rules_tests.rake → rakefiles/tests/rules_tests.rake} +4 -18
  237. data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +54 -0
  238. data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
  239. data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
  240. data/lib/ceedling/release_invoker/README.md +35 -0
  241. data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
  242. data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
  243. data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
  244. data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
  245. data/lib/ceedling/reportinator.rb +18 -2
  246. data/lib/ceedling/ruby_expandinator.rb +40 -1
  247. data/lib/ceedling/setupinator.rb +13 -3
  248. data/lib/ceedling/system_wrapper.rb +17 -0
  249. data/lib/ceedling/templateinator.rb +146 -0
  250. data/lib/ceedling/test_context_extractor.rb +59 -28
  251. data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
  252. data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
  253. data/lib/ceedling/test_invoker/README.md +6 -0
  254. data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
  255. data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
  256. data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
  257. data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
  258. data/lib/ceedling/test_invoker/test_build_executor.rb +800 -429
  259. data/lib/ceedling/test_invoker/test_build_planner.rb +175 -70
  260. data/lib/ceedling/test_invoker/test_build_setup.rb +132 -241
  261. data/lib/ceedling/test_invoker/test_build_validations.rb +102 -0
  262. data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +148 -0
  263. data/lib/ceedling/test_invoker/test_includes_extractinator.rb +34 -0
  264. data/lib/ceedling/test_invoker/test_includes_preprocessinator.rb +118 -0
  265. data/lib/ceedling/test_invoker/test_includes_reconcilinator.rb +149 -0
  266. data/lib/ceedling/test_invoker/test_invoker.rb +16 -183
  267. data/lib/ceedling/test_invoker/test_invoker_types.rb +85 -16
  268. data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +121 -0
  269. data/lib/ceedling/test_invoker/test_pipeline_manager.rb +303 -0
  270. data/lib/ceedling/test_invoker/test_runner_generatinator.rb +105 -0
  271. data/lib/ceedling/test_invoker/test_search_paths.rb +73 -0
  272. data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +78 -0
  273. data/lib/ceedling/tool_executor.rb +42 -13
  274. data/lib/ceedling/tool_executor_helper.rb +1 -1
  275. data/lib/ceedling/tool_validator.rb +124 -123
  276. data/lib/ceedling/yaml_wrapper.rb +5 -3
  277. data/lib/version.rb +19 -2
  278. data/mkdocs.prerelease.yml +42 -0
  279. data/mkdocs.yml +10 -2
  280. data/plugins/bullseye/bullseye.rake +71 -111
  281. data/plugins/bullseye/config/defaults.yml +12 -54
  282. data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  283. data/plugins/bullseye/lib/bullseye.rb +511 -120
  284. data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
  285. data/plugins/command_hooks/lib/command_hooks.rb +117 -199
  286. data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
  287. data/plugins/cppcheck/config/defaults.yml +6 -1
  288. data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
  289. data/plugins/cppcheck/cppcheck.rake +7 -1
  290. data/plugins/cppcheck/lib/cppcheck.rb +175 -26
  291. data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
  292. data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
  293. data/plugins/dependencies/Rakefile +14 -2
  294. data/plugins/dependencies/config/defaults.yml +9 -6
  295. data/plugins/dependencies/dependencies.rake +46 -76
  296. data/plugins/dependencies/example/boss/project.yml +1 -1
  297. data/plugins/dependencies/example/supervisor/project.yml +1 -1
  298. data/plugins/dependencies/example/version.tar.gzip +0 -0
  299. data/plugins/dependencies/lib/dependencies.rb +232 -427
  300. data/plugins/dependencies/lib/dependency_commands.rb +72 -0
  301. data/plugins/dependencies/lib/dependency_environment.rb +57 -0
  302. data/plugins/dependencies/lib/dependency_spec.rb +145 -0
  303. data/plugins/fff/.rspec +1 -0
  304. data/plugins/fff/Rakefile +14 -2
  305. data/plugins/fff/examples/fff_example/project.yml +1 -1
  306. data/plugins/fff/lib/fff.rb +30 -9
  307. data/plugins/fff/lib/fff_mock_generator.rb +142 -128
  308. data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
  309. data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
  310. data/plugins/fff/spec/spec_helper.rb +45 -0
  311. data/plugins/fff/src/fff_unity_helper.h +5 -0
  312. data/plugins/fff/vendor/fff/fakegen.rb +5 -4
  313. data/plugins/fff/vendor/fff/fff.h +4 -4
  314. data/plugins/gcov/config/defaults.yml +5 -0
  315. data/plugins/gcov/gcov.rake +16 -15
  316. data/plugins/gcov/lib/console_reportinator.rb +140 -20
  317. data/plugins/gcov/lib/gcov.rb +155 -60
  318. data/plugins/gcov/lib/gcov_constants.rb +4 -7
  319. data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
  320. data/plugins/gcov/lib/gcov_types.rb +62 -1
  321. data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
  322. data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
  323. data/plugins/module_generator/Rakefile +4 -4
  324. data/plugins/module_generator/config/module_generator.yml +0 -1
  325. data/plugins/module_generator/example/project.yml +1 -1
  326. data/plugins/module_generator/lib/module_generator.rb +117 -87
  327. data/plugins/module_generator/lib/module_generator_options.rb +150 -0
  328. data/plugins/module_generator/lib/module_generator_project.rb +45 -0
  329. data/plugins/module_generator/lib/module_generator_request.rb +83 -0
  330. data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
  331. data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
  332. data/plugins/module_generator/module_generator.rake +24 -46
  333. data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
  334. data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
  335. data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
  336. data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
  337. data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
  338. data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
  339. data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
  340. data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
  341. data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
  342. data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
  343. data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
  344. data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
  345. data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
  346. data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
  347. data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
  348. data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
  349. data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
  350. data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
  351. data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
  352. data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
  353. data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
  354. data/plugins/sanitize/config/defaults.yml +44 -0
  355. data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
  356. data/plugins/sanitize/lib/sanitize.rb +174 -0
  357. data/plugins/sanitize/lib/sanitize_config.rb +110 -0
  358. data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
  359. data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
  360. data/plugins/sanitize/lib/sanitize_records.rb +115 -0
  361. data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
  362. data/plugins/sanitize/sanitize.rake +108 -0
  363. data/plugins/valgrind/config/defaults.yml +7 -1
  364. data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
  365. data/plugins/valgrind/lib/valgrind.rb +202 -39
  366. data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
  367. data/plugins/valgrind/lib/valgrind_report.rb +52 -0
  368. data/plugins/valgrind/valgrind.rake +37 -15
  369. data/site-local/404.html +239 -19
  370. data/site-local/assets/javascripts/{bundle.d7400e89.min.js → bundle.c21346df.min.js} +3 -3
  371. data/site-local/assets/javascripts/{bundle.d7400e89.min.js.map → bundle.c21346df.min.js.map} +2 -2
  372. data/site-local/assets/javascripts/workers/{search.2c215733.min.js → search.a7633da7.min.js} +2 -2
  373. data/site-local/assets/javascripts/workers/{search.2c215733.min.js.map → search.a7633da7.min.js.map} +1 -1
  374. data/site-local/assets/stylesheets/main.57a0d79d.min.css +6 -0
  375. data/site-local/assets/stylesheets/main.57a0d79d.min.css.map +1 -0
  376. data/site-local/assets/stylesheets/palette.fb2fffe2.min.css +4 -0
  377. data/site-local/assets/stylesheets/palette.fb2fffe2.min.css.map +1 -0
  378. data/site-local/configuration/environment-vars.html +239 -19
  379. data/site-local/configuration/global-collections.html +239 -24
  380. data/site-local/configuration/index.html +240 -20
  381. data/site-local/configuration/loading.html +251 -27
  382. data/site-local/configuration/mixins.html +247 -26
  383. data/site-local/configuration/parallel-builds.html +239 -19
  384. data/site-local/configuration/project-file.html +268 -37
  385. data/site-local/configuration/reference/cexception.html +246 -25
  386. data/site-local/configuration/reference/cmock.html +272 -19
  387. data/site-local/configuration/reference/defines.html +263 -34
  388. data/site-local/configuration/reference/environment.html +246 -26
  389. data/site-local/configuration/reference/extension.html +352 -21
  390. data/site-local/configuration/reference/files.html +258 -24
  391. data/site-local/configuration/reference/flags.html +268 -31
  392. data/site-local/configuration/reference/index.html +239 -19
  393. data/site-local/configuration/reference/libraries.html +239 -19
  394. data/site-local/configuration/reference/mixins.html +239 -19
  395. data/site-local/configuration/reference/partials.html +240 -24
  396. data/site-local/configuration/reference/paths.html +269 -23
  397. data/site-local/configuration/reference/plugins.html +239 -19
  398. data/site-local/configuration/reference/project.html +292 -29
  399. data/site-local/configuration/reference/release-build.html +247 -19
  400. data/site-local/configuration/reference/test-build.html +281 -29
  401. data/site-local/configuration/reference/test-runner.html +279 -22
  402. data/site-local/configuration/reference/tools.html +257 -31
  403. data/site-local/configuration/reference/unity.html +271 -20
  404. data/site-local/configuration/which-ceedling.html +239 -19
  405. data/site-local/development/index.html +245 -19
  406. data/site-local/development/plugins/configuration.html +260 -22
  407. data/site-local/development/plugins/index.html +258 -20
  408. data/site-local/development/plugins/plugin-subclass.html +912 -174
  409. data/site-local/development/plugins/rake-tasks.html +269 -21
  410. data/site-local/development/releases.html +4759 -0
  411. data/site-local/development/workflow.html +1023 -58
  412. data/site-local/getting-started/builds.html +4593 -0
  413. data/site-local/getting-started/command-line.html +409 -39
  414. data/site-local/getting-started/example-projects/cipher-quest.html +239 -19
  415. data/site-local/getting-started/example-projects/index.html +240 -20
  416. data/site-local/getting-started/example-projects/temp-sensor.html +239 -19
  417. data/site-local/getting-started/example-projects/wondrous-forest.html +239 -19
  418. data/site-local/getting-started/index.html +246 -19
  419. data/site-local/getting-started/installation.html +249 -27
  420. data/site-local/getting-started/quick-start.html +242 -20
  421. data/site-local/help.html +246 -19
  422. data/site-local/index.html +284 -27
  423. data/site-local/overview/build-system.html +240 -20
  424. data/site-local/overview/index.html +239 -19
  425. data/site-local/overview/test-environments.html +248 -19
  426. data/site-local/overview/tools-and-frameworks.html +239 -19
  427. data/site-local/plugins/beep.html +242 -19
  428. data/site-local/plugins/bullseye/index.html +5068 -0
  429. data/site-local/plugins/bullseye/licensing.html +4826 -0
  430. data/site-local/plugins/command-hooks.html +258 -34
  431. data/site-local/plugins/compile-commands-json-db.html +247 -22
  432. data/site-local/plugins/cppcheck.html +1073 -268
  433. data/site-local/plugins/dependencies.html +927 -249
  434. data/site-local/plugins/fff.html +288 -21
  435. data/site-local/plugins/gcov/examples.html +243 -20
  436. data/site-local/plugins/gcov/gcovr.html +559 -71
  437. data/site-local/plugins/gcov/index.html +242 -19
  438. data/site-local/plugins/gcov/overview.html +253 -23
  439. data/site-local/plugins/gcov/reportgenerator.html +380 -46
  440. data/site-local/plugins/gcov/reporting.html +339 -105
  441. data/site-local/plugins/gcov/setup.html +244 -20
  442. data/site-local/plugins/gcov/tool-versions.html +292 -24
  443. data/site-local/plugins/gcov/troubleshooting.html +265 -42
  444. data/site-local/plugins/index.html +285 -41
  445. data/site-local/plugins/module-generator.html +770 -200
  446. data/site-local/plugins/report-build-warnings-log.html +569 -38
  447. data/site-local/plugins/report-tests-gtestlike-stdout.html +458 -89
  448. data/site-local/plugins/report-tests-ide-stdout.html +645 -56
  449. data/site-local/plugins/report-tests-log-factory.html +364 -111
  450. data/site-local/plugins/report-tests-pretty-stdout.html +243 -20
  451. data/site-local/plugins/report-tests-raw-output-log.html +242 -19
  452. data/site-local/plugins/report-tests-teamcity-stdout.html +252 -29
  453. data/site-local/plugins/sanitize.html +5322 -0
  454. data/site-local/plugins/valgrind.html +414 -34
  455. data/site-local/{plugins/bullseye.html → project/index.html} +288 -222
  456. data/site-local/project/release-history.html +242 -22
  457. data/site-local/project/sbom.html +4712 -0
  458. data/site-local/project/upgrade.html +241 -21
  459. data/site-local/reference/build-directives.html +248 -19
  460. data/site-local/reference/command-line.html +364 -21
  461. data/site-local/reference/environment-vars.html +239 -19
  462. data/site-local/reference/gcov-plugin.html +483 -23
  463. data/site-local/reference/global-collections.html +240 -20
  464. data/site-local/reference/index.html +239 -19
  465. data/site-local/reference/partials-macros.html +249 -19
  466. data/site-local/reference/project-configuration.html +239 -19
  467. data/site-local/sitemap.xml.gz +0 -0
  468. data/{docs/mkdocs/snapshot/assets → site-local/snapshot/assets/features}/project.yml +4 -1
  469. data/site-local/snapshot/examples/cipher_quest/index.html +249 -29
  470. data/site-local/snapshot/examples/temp_sensor/index.html +241 -21
  471. data/site-local/snapshot/examples/wondrous_forest/index.html +256 -30
  472. data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
  473. data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  474. data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
  475. data/site-local/testing-guide/build-directives.html +331 -35
  476. data/site-local/testing-guide/conventions.html +671 -160
  477. data/site-local/testing-guide/frameworks.html +244 -24
  478. data/site-local/testing-guide/index.html +239 -26
  479. data/site-local/testing-guide/partials/configuration.html +241 -21
  480. data/site-local/testing-guide/partials/conventions.html +308 -23
  481. data/site-local/testing-guide/partials/directives.html +452 -58
  482. data/site-local/testing-guide/partials/example.html +247 -27
  483. data/site-local/testing-guide/partials/index.html +246 -19
  484. data/site-local/testing-guide/partials/overview.html +239 -19
  485. data/site-local/testing-guide/partials/variables.html +244 -24
  486. data/site-local/testing-guide/test-cases.html +246 -26
  487. data/site-local/testing-guide/test-sample.html +245 -25
  488. data/site-local/testing-guide/test-suite-anatomy.html +239 -19
  489. data/spec/integration/actionator_file_operations_spec.rb +287 -0
  490. data/spec/integration/analysis_tool_output_spec.rb +204 -0
  491. data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
  492. data/spec/integration/command_hooks_plugin_spec.rb +152 -0
  493. data/spec/integration/compile_commands_json_db_spec.rb +76 -0
  494. data/spec/integration/configurator_pipeline_spec.rb +190 -0
  495. data/spec/integration/configurator_plugins_spec.rb +122 -0
  496. data/spec/integration/configurator_validation_spec.rb +98 -0
  497. data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
  498. data/spec/integration/dependencies/dependency_tracker_core_spec.rb +284 -0
  499. data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
  500. data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
  501. data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
  502. data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
  503. data/spec/integration/dependencies_plugin_spec.rb +473 -0
  504. data/spec/integration/erb_dependency_removed_spec.rb +167 -0
  505. data/spec/integration/includes_extraction_spec.rb +612 -0
  506. data/spec/integration/mixin_loading_spec.rb +414 -0
  507. data/spec/integration/module_generator_spec.rb +436 -0
  508. data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
  509. data/spec/integration/partials_header_composition_spec.rb +889 -0
  510. data/spec/integration/partials_module_resolution_spec.rb +372 -0
  511. data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
  512. data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
  513. data/spec/integration/quote_include_isolator_spec.rb +167 -0
  514. data/spec/integration/rake_task_registry_plugins_spec.rb +95 -0
  515. data/spec/integration/report_build_warnings_log_spec.rb +170 -0
  516. data/spec/integration/report_tests_log_factory_spec.rb +100 -0
  517. data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
  518. data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
  519. data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
  520. data/spec/integration/test_executable_manifest_spec.rb +118 -0
  521. data/spec/integration/test_includes_extractinator_spec.rb +293 -0
  522. data/spec/integration/tool_executor_spec.rb +224 -0
  523. data/spec/integration/tool_validator_spec.rb +133 -0
  524. data/spec/integration/vendor_copy_transient_io_retry_spec.rb +178 -0
  525. data/spec/manual/stress_test.rb +1 -1
  526. data/spec/support/config_yaml_helper.rb +17 -0
  527. data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
  528. data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
  529. data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
  530. data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
  531. data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
  532. data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
  533. data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
  534. data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
  535. data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
  536. data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
  537. data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
  538. data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
  539. data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
  540. data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
  541. data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
  542. data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
  543. data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
  544. data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
  545. data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
  546. data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
  547. data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
  548. data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
  549. data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
  550. data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
  551. data/spec/support/fixtures/templates/ide__empty.txt +8 -0
  552. data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
  553. data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
  554. data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
  555. data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
  556. data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
  557. data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
  558. data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
  559. data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
  560. data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
  561. data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
  562. data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
  563. data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
  564. data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
  565. data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
  566. data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
  567. data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
  568. data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
  569. data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
  570. data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
  571. data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
  572. data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
  573. data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
  574. data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
  575. data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
  576. data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
  577. data/spec/support/include_guard_helper.rb +20 -0
  578. data/spec/support/integration/configurator_integration_helper.rb +162 -0
  579. data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
  580. data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
  581. data/spec/support/integration/spec_integration_helper.rb +285 -0
  582. data/spec/support/integration/test_includes_harness.rb +259 -0
  583. data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
  584. data/spec/support/spec_helper.rb +41 -0
  585. data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
  586. data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
  587. data/spec/support/system/simplecov_boot.rb +66 -0
  588. data/spec/support/system/spec_system_helper.rb +376 -16
  589. data/spec/support/system/system_context.rb +181 -59
  590. data/spec/support/template_render_cases.rb +166 -0
  591. data/spec/system/bracket_path_handling_spec.rb +175 -0
  592. data/spec/system/build_output_mirroring_spec.rb +89 -0
  593. data/spec/system/build_recovery_spec.rb +382 -0
  594. data/spec/system/bullseye_deployment_spec.rb +102 -0
  595. data/spec/system/cli_surface_spec.rb +245 -0
  596. data/spec/system/command_hooks_spec.rb +117 -0
  597. data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
  598. data/spec/system/conditional_mock_includes_spec.rb +181 -0
  599. data/spec/system/cppcheck_deployment_spec.rb +26 -8
  600. data/spec/system/delta_builds_spec.rb +751 -0
  601. data/spec/system/deployment_as_gem_spec.rb +7 -0
  602. data/spec/system/deployment_as_vendor_spec.rb +29 -145
  603. data/spec/system/dumpconfig_spec.rb +137 -0
  604. data/spec/system/encoding_stress_spec.rb +7 -4
  605. data/spec/system/example_cipher_quest_spec.rb +25 -100
  606. data/spec/system/example_temp_sensor_spec.rb +30 -172
  607. data/spec/system/example_wondrous_forest_spec.rb +25 -62
  608. data/spec/system/extension_multiple_values_spec.rb +75 -0
  609. data/spec/system/files_paths_reporting_spec.rb +154 -0
  610. data/spec/system/gcov_deployment_spec.rb +72 -3
  611. data/spec/system/header_include_path_validation_spec.rb +222 -0
  612. data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
  613. data/spec/system/include_path_reconciliation_spec.rb +64 -0
  614. data/spec/system/mixin_ordering_spec.rb +30 -415
  615. data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
  616. data/spec/system/parent_directory_reference_spec.rb +114 -0
  617. data/spec/system/partials_module_disambiguation_spec.rb +143 -0
  618. data/spec/system/pinned_thread_count_spec.rb +102 -0
  619. data/spec/system/plugin_delta_builds_spec.rb +179 -0
  620. data/spec/system/preprocessing_encoding_spec.rb +87 -4
  621. data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
  622. data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
  623. data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
  624. data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
  625. data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
  626. data/spec/system/ruby_replacement_spec.rb +1 -1
  627. data/spec/system/same_named_modules_spec.rb +115 -0
  628. data/spec/system/sanitize_deployment_spec.rb +64 -0
  629. data/spec/system/shuffle_tests_spec.rb +139 -0
  630. data/spec/system/sibling_header_collision_spec.rb +620 -0
  631. data/spec/system/subdir_include_preservation_spec.rb +63 -0
  632. data/spec/system/support/bullseye_common_test_cases.rb +369 -0
  633. data/spec/system/support/bullseye_helpers.rb +70 -0
  634. data/spec/system/support/common_test_cases.rb +167 -43
  635. data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
  636. data/spec/system/support/cppcheck_helpers.rb +10 -8
  637. data/spec/system/support/gcov_common_test_cases.rb +173 -37
  638. data/spec/system/support/gcov_helpers.rb +3 -3
  639. data/spec/system/support/gcov_partials_test_cases.rb +48 -2
  640. data/spec/system/support/sanitize_common_test_cases.rb +222 -0
  641. data/spec/system/support/sanitize_helpers.rb +27 -0
  642. data/spec/system/support/valgrind_common_test_cases.rb +116 -16
  643. data/spec/system/support/valgrind_helpers.rb +3 -4
  644. data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
  645. data/spec/system/test_runner_system_include_spec.rb +19 -41
  646. data/spec/system/test_source_file_directive_spec.rb +235 -0
  647. data/spec/system/upgrade_as_vendor_spec.rb +25 -46
  648. data/spec/system/valgrind_deployment_spec.rb +41 -0
  649. data/spec/units/batchinator_spec.rb +314 -0
  650. data/spec/units/bin/actionator_spec.rb +412 -0
  651. data/spec/units/bin/app_cfg_spec.rb +100 -0
  652. data/spec/units/bin/cli_handler_spec.rb +205 -0
  653. data/spec/units/bin/cli_helper_spec.rb +248 -10
  654. data/spec/units/bin/cli_options_transform_spec.rb +49 -0
  655. data/spec/units/bin/composinator_spec.rb +236 -0
  656. data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
  657. data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
  658. data/spec/units/bin/mixinator_spec.rb +58 -22
  659. data/spec/units/bin/path_validator_spec.rb +112 -0
  660. data/spec/units/bin/projectinator_spec.rb +223 -0
  661. data/spec/units/bin/rake_patches_spec.rb +52 -0
  662. data/spec/units/bin/recursive_merger_spec.rb +22 -0
  663. data/spec/units/bin/versionator_spec.rb +104 -0
  664. data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
  665. data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
  666. data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
  667. data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
  668. data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
  669. data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
  670. data/spec/units/ceedling/templateinator_spec.rb +188 -0
  671. data/spec/units/config/configurator_builder_spec.rb +444 -0
  672. data/spec/units/config/configurator_plugins_spec.rb +160 -0
  673. data/spec/units/config/configurator_setup_spec.rb +724 -6
  674. data/spec/units/config/configurator_spec.rb +961 -0
  675. data/spec/units/config/configurator_validator_spec.rb +259 -0
  676. data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
  677. data/spec/units/config_matchinator_spec.rb +103 -0
  678. data/spec/units/defineinator_spec.rb +158 -0
  679. data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
  680. data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
  681. data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
  682. data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
  683. data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
  684. data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
  685. data/spec/units/dependencies/dependinator_spec.rb +99 -0
  686. data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
  687. data/spec/units/encodinator_spec.rb +92 -0
  688. data/spec/units/file_finder_helper_spec.rb +99 -15
  689. data/spec/units/file_finder_spec.rb +495 -0
  690. data/spec/units/file_path_collection_utils_spec.rb +9 -0
  691. data/spec/units/file_path_utils_spec.rb +736 -0
  692. data/spec/units/file_wrapper_spec.rb +486 -0
  693. data/spec/units/filename_extension_spec.rb +120 -0
  694. data/spec/units/flaginator_spec.rb +114 -0
  695. data/spec/units/generators/generator_helper_spec.rb +113 -0
  696. data/spec/units/generators/generator_mocks_spec.rb +131 -0
  697. data/spec/units/generators/generator_partials_spec.rb +336 -160
  698. data/spec/units/generators/generator_spec.rb +317 -0
  699. data/spec/units/generators/generator_test_results_backtrace_spec.rb +169 -9
  700. data/spec/units/generators/generator_test_results_sanity_checker_spec.rb +14 -6
  701. data/spec/units/generators/generator_test_results_spec.rb +65 -8
  702. data/spec/units/generators/generator_test_runner_spec.rb +1 -1
  703. data/spec/units/includes/include_factory_spec.rb +53 -0
  704. data/spec/units/includes/include_pathinator_spec.rb +269 -0
  705. data/spec/units/includes/include_spec.rb +8 -4
  706. data/spec/units/includes/includes_spec.rb +326 -18
  707. data/spec/units/mock_locator_spec.rb +74 -0
  708. data/spec/units/parsing_parcels_spec.rb +65 -0
  709. data/spec/units/partials/partializer_config_spec.rb +284 -18
  710. data/spec/units/partials/partializer_helper_spec.rb +122 -0
  711. data/spec/units/partials/partializer_spec.rb +346 -71
  712. data/spec/units/partials/partializer_utils_spec.rb +4 -4
  713. data/spec/units/partials_manager_spec.rb +539 -0
  714. data/spec/units/path_matcher_spec.rb +193 -0
  715. data/spec/units/path_mirror_spec.rb +103 -0
  716. data/spec/units/plugin_manager_spec.rb +77 -0
  717. data/spec/units/plugin_reportinator_spec.rb +78 -3
  718. data/spec/units/plugins/bullseye_spec.rb +1068 -0
  719. data/spec/units/plugins/command_hooks_spec.rb +157 -0
  720. data/spec/units/plugins/compile_commands_json_db_spec.rb +145 -0
  721. data/spec/units/plugins/console_reportinator_spec.rb +370 -0
  722. data/spec/units/plugins/cppcheck_spec.rb +330 -4
  723. data/spec/units/plugins/cppunit_tests_reporter_spec.rb +118 -0
  724. data/spec/units/plugins/dependencies_spec.rb +295 -0
  725. data/spec/units/plugins/dependency_commands_spec.rb +83 -0
  726. data/spec/units/plugins/dependency_environment_spec.rb +64 -0
  727. data/spec/units/plugins/dependency_spec_spec.rb +170 -0
  728. data/spec/units/plugins/gcov_reportinator_spec.rb +272 -0
  729. data/spec/units/plugins/gcov_spec.rb +521 -0
  730. data/spec/units/plugins/gcovr_reportinator_spec.rb +795 -0
  731. data/spec/units/plugins/gtestlike_report_spec.rb +363 -0
  732. data/spec/units/plugins/html_tests_reporter_spec.rb +158 -0
  733. data/spec/units/plugins/ide_report_lines_spec.rb +229 -0
  734. data/spec/units/plugins/json_tests_reporter_spec.rb +87 -0
  735. data/spec/units/plugins/junit_tests_reporter_spec.rb +237 -0
  736. data/spec/units/plugins/module_generator_options_spec.rb +185 -0
  737. data/spec/units/plugins/module_generator_project_spec.rb +55 -0
  738. data/spec/units/plugins/module_generator_request_spec.rb +107 -0
  739. data/spec/units/plugins/module_generator_spec.rb +214 -0
  740. data/spec/units/plugins/module_generator_test_file_spec.rb +102 -0
  741. data/spec/units/plugins/module_generator_unity_spec.rb +37 -0
  742. data/spec/units/plugins/report_build_warnings_log_spec.rb +199 -0
  743. data/spec/units/plugins/report_log_writer_plugin_spec.rb +94 -0
  744. data/spec/units/plugins/report_tests_gtestlike_stdout_spec.rb +274 -0
  745. data/spec/units/plugins/report_tests_ide_stdout_spec.rb +140 -0
  746. data/spec/units/plugins/report_tests_log_factory_spec.rb +210 -0
  747. data/spec/units/plugins/report_tests_pretty_stdout_spec.rb +83 -0
  748. data/spec/units/plugins/report_tests_raw_output_log_spec.rb +98 -0
  749. data/spec/units/plugins/report_tests_stdout_plugin_spec.rb +145 -0
  750. data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +121 -0
  751. data/spec/units/plugins/reportgenerator_reportinator_spec.rb +410 -0
  752. data/spec/units/plugins/sanitize_config_spec.rb +119 -0
  753. data/spec/units/plugins/sanitize_findings_spec.rb +69 -0
  754. data/spec/units/plugins/sanitize_records_spec.rb +114 -0
  755. data/spec/units/plugins/sanitize_reports_spec.rb +84 -0
  756. data/spec/units/plugins/sanitize_spec.rb +300 -0
  757. data/spec/units/plugins/tests_reporter_spec.rb +89 -0
  758. data/spec/units/plugins/valgrind_spec.rb +560 -0
  759. data/spec/units/plugins/warning_collector_spec.rb +185 -0
  760. data/spec/units/plugins/warning_reports_spec.rb +150 -0
  761. data/spec/units/preprocess/c_comment_scanner_spec.rb +17 -17
  762. data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +94 -0
  763. data/spec/units/preprocess/preprocessinator_bare_includes_extractor_spec.rb +73 -0
  764. data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +35 -16
  765. data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +129 -48
  766. data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +292 -9
  767. data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +294 -16
  768. data/spec/units/preprocess/preprocessinator_line_marker_includes_extractor_spec.rb +356 -6
  769. data/spec/units/preprocess/preprocessinator_reconstructor_spec.rb +58 -4
  770. data/spec/units/preprocess/preprocessinator_spec.rb +693 -5
  771. data/spec/units/quote_include_isolator_spec.rb +176 -0
  772. data/spec/units/rake_app/rake_invocation_tracker_spec.rb +94 -0
  773. data/spec/units/rake_app/rake_task_registry_spec.rb +263 -0
  774. data/spec/units/rake_app/rake_utils_spec.rb +54 -0
  775. data/spec/units/rake_app/rake_wrapper_spec.rb +64 -0
  776. data/spec/units/rake_app/rakefile_component_resolver_spec.rb +182 -0
  777. data/spec/units/rake_app/test_task_name_spec.rb +47 -0
  778. data/spec/units/release_build_executor_spec.rb +404 -0
  779. data/spec/units/release_build_planner_spec.rb +144 -0
  780. data/spec/units/release_invoker_spec.rb +127 -0
  781. data/spec/units/reportinator_spec.rb +35 -0
  782. data/spec/units/ruby_expandinator_spec.rb +36 -0
  783. data/spec/units/standin_headerinator_spec.rb +168 -0
  784. data/spec/units/system_wrapper_spec.rb +16 -0
  785. data/spec/units/test_build_executor_spec.rb +1693 -8
  786. data/spec/units/test_build_planner_spec.rb +878 -0
  787. data/spec/units/test_build_setup_spec.rb +583 -0
  788. data/spec/units/test_context_extractor_spec.rb +51 -3
  789. data/spec/units/test_file_preprocessinator_spec.rb +206 -0
  790. data/spec/units/test_includes_extractinator_spec.rb +764 -0
  791. data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
  792. data/spec/units/test_invoker_spec.rb +147 -0
  793. data/spec/units/test_invoker_types_spec.rb +182 -0
  794. data/spec/units/test_pipeline_helpers_spec.rb +100 -0
  795. data/spec/units/test_pipeline_manager_spec.rb +415 -0
  796. data/spec/units/test_runner_generatinator_spec.rb +215 -0
  797. data/spec/units/test_runner_manager_spec.rb +70 -0
  798. data/spec/units/test_search_paths_spec.rb +84 -0
  799. data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
  800. data/spec/units/tool_executor_helper_spec.rb +1 -1
  801. data/spec/units/tool_executor_spec.rb +571 -2
  802. data/spec/units/tool_validator_spec.rb +303 -24
  803. data/spec/units/version_spec.rb +74 -0
  804. data/spec/units/yaml_wrapper_spec.rb +4 -1
  805. data/vendor/cmock/docs/CMock_Summary.md +11 -0
  806. data/vendor/cmock/lib/cmock_config.rb +1 -0
  807. data/vendor/cmock/lib/cmock_generator.rb +5 -1
  808. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
  809. data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
  810. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
  811. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
  812. data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
  813. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
  814. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  815. data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
  816. data/vendor/cmock/vendor/unity/test/Makefile +9 -2
  817. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
  818. data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  819. data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  820. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  821. data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  822. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
  823. data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
  824. data/vendor/diy/lib/diy/factory.rb +5 -4
  825. data/vendor/diy/lib/diy.rb +5 -4
  826. data/vendor/diy/sample_code/car.rb +5 -4
  827. data/vendor/diy/sample_code/chassis.rb +5 -4
  828. data/vendor/diy/sample_code/diy_example.rb +5 -4
  829. data/vendor/diy/sample_code/engine.rb +5 -4
  830. data/vendor/diy/sample_code/objects.yml +5 -4
  831. data/vendor/diy/test/constructor.rb +5 -4
  832. data/vendor/diy/test/diy_test.rb +5 -4
  833. data/vendor/diy/test/factory_test.rb +5 -4
  834. data/vendor/diy/test/files/broken_construction.yml +5 -4
  835. data/vendor/diy/test/files/cat/cat.rb +5 -4
  836. data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
  837. data/vendor/diy/test/files/cat/heritage.rb +5 -4
  838. data/vendor/diy/test/files/cat/needs_input.yml +5 -4
  839. data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
  840. data/vendor/diy/test/files/dog/dog_model.rb +5 -4
  841. data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
  842. data/vendor/diy/test/files/dog/dog_view.rb +5 -4
  843. data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
  844. data/vendor/diy/test/files/dog/other_thing.rb +5 -4
  845. data/vendor/diy/test/files/dog/simple.yml +5 -4
  846. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
  847. data/vendor/diy/test/files/donkey/foo.rb +5 -4
  848. data/vendor/diy/test/files/factory/beef.rb +5 -4
  849. data/vendor/diy/test/files/factory/dog.rb +5 -4
  850. data/vendor/diy/test/files/factory/factory.yml +5 -4
  851. data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
  852. data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
  853. data/vendor/diy/test/files/factory/kitten.rb +5 -4
  854. data/vendor/diy/test/files/fud/objects.yml +5 -4
  855. data/vendor/diy/test/files/fud/toy.rb +5 -4
  856. data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
  857. data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
  858. data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
  859. data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
  860. data/vendor/diy/test/files/functions/objects.yml +5 -4
  861. data/vendor/diy/test/files/functions/thing.rb +5 -4
  862. data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
  863. data/vendor/diy/test/files/functions/things_builder.rb +5 -4
  864. data/vendor/diy/test/files/gnu/objects.yml +5 -4
  865. data/vendor/diy/test/files/gnu/thinger.rb +5 -4
  866. data/vendor/diy/test/files/goat/base.rb +5 -4
  867. data/vendor/diy/test/files/goat/can.rb +5 -4
  868. data/vendor/diy/test/files/goat/goat.rb +5 -4
  869. data/vendor/diy/test/files/goat/objects.yml +5 -4
  870. data/vendor/diy/test/files/goat/paper.rb +5 -4
  871. data/vendor/diy/test/files/goat/plane.rb +5 -4
  872. data/vendor/diy/test/files/goat/shirt.rb +5 -4
  873. data/vendor/diy/test/files/goat/wings.rb +5 -4
  874. data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
  875. data/vendor/diy/test/files/horse/objects.yml +5 -4
  876. data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
  877. data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
  878. data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
  879. data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
  880. data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
  881. data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
  882. data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
  883. data/vendor/diy/test/files/namespace/objects.yml +5 -4
  884. data/vendor/diy/test/files/namespace/road.rb +5 -4
  885. data/vendor/diy/test/files/namespace/sky.rb +5 -4
  886. data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
  887. data/vendor/diy/test/files/non_singleton/air.rb +5 -4
  888. data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
  889. data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
  890. data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
  891. data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
  892. data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
  893. data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
  894. data/vendor/diy/test/files/yak/core_model.rb +5 -4
  895. data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
  896. data/vendor/diy/test/files/yak/core_view.rb +5 -4
  897. data/vendor/diy/test/files/yak/data_source.rb +5 -4
  898. data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
  899. data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
  900. data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
  901. data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
  902. data/vendor/diy/test/files/yak/krill.rb +5 -4
  903. data/vendor/diy/test/files/yak/my_objects.yml +5 -4
  904. data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
  905. data/vendor/diy/test/test_helper.rb +5 -4
  906. data/vendor/unity/auto/generate_module.rb +4 -4
  907. data/vendor/unity/auto/generate_test_runner.rb +5 -1
  908. data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  909. data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  910. data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  911. data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  912. data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  913. data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
  914. metadata +783 -295
  915. data/assets/tests_with_fallback_conditionals/src/conditional_module.c +0 -18
  916. data/bin/actions_wrapper.rb +0 -51
  917. data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
  918. data/docs/mkdocs/assets/images/ceedling.svg +0 -90
  919. data/docs/mkdocs/assets/images/favicon.png +0 -0
  920. data/docs/mkdocs/assets/stylesheets/admonitions.css +0 -152
  921. data/docs/mkdocs/assets/stylesheets/fixes-local.css +0 -15
  922. data/docs/mkdocs/assets/stylesheets/styling.css +0 -102
  923. data/docs/mkdocs/configuration/environment-vars.md +0 -14
  924. data/docs/mkdocs/configuration/global-collections.md +0 -156
  925. data/docs/mkdocs/configuration/index.md +0 -75
  926. data/docs/mkdocs/configuration/loading.md +0 -89
  927. data/docs/mkdocs/configuration/mixins.md +0 -607
  928. data/docs/mkdocs/configuration/parallel-builds.md +0 -97
  929. data/docs/mkdocs/configuration/project-file.md +0 -216
  930. data/docs/mkdocs/configuration/reference/cexception.md +0 -35
  931. data/docs/mkdocs/configuration/reference/cmock.md +0 -106
  932. data/docs/mkdocs/configuration/reference/defines.md +0 -352
  933. data/docs/mkdocs/configuration/reference/environment.md +0 -55
  934. data/docs/mkdocs/configuration/reference/extension.md +0 -63
  935. data/docs/mkdocs/configuration/reference/files.md +0 -154
  936. data/docs/mkdocs/configuration/reference/flags.md +0 -296
  937. data/docs/mkdocs/configuration/reference/index.md +0 -176
  938. data/docs/mkdocs/configuration/reference/libraries.md +0 -82
  939. data/docs/mkdocs/configuration/reference/mixins.md +0 -24
  940. data/docs/mkdocs/configuration/reference/partials.md +0 -38
  941. data/docs/mkdocs/configuration/reference/paths.md +0 -276
  942. data/docs/mkdocs/configuration/reference/plugins.md +0 -60
  943. data/docs/mkdocs/configuration/reference/project.md +0 -333
  944. data/docs/mkdocs/configuration/reference/release-build.md +0 -62
  945. data/docs/mkdocs/configuration/reference/test-build.md +0 -55
  946. data/docs/mkdocs/configuration/reference/test-runner.md +0 -61
  947. data/docs/mkdocs/configuration/reference/tools.md +0 -457
  948. data/docs/mkdocs/configuration/reference/unity.md +0 -49
  949. data/docs/mkdocs/configuration/which-ceedling.md +0 -77
  950. data/docs/mkdocs/development/index.md +0 -61
  951. data/docs/mkdocs/development/plugins/configuration.md +0 -164
  952. data/docs/mkdocs/development/plugins/index.md +0 -84
  953. data/docs/mkdocs/development/plugins/plugin-subclass.md +0 -513
  954. data/docs/mkdocs/development/plugins/rake-tasks.md +0 -54
  955. data/docs/mkdocs/development/workflow.md +0 -284
  956. data/docs/mkdocs/getting-started/command-line.md +0 -477
  957. data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +0 -65
  958. data/docs/mkdocs/getting-started/example-projects/index.md +0 -49
  959. data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +0 -60
  960. data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +0 -45
  961. data/docs/mkdocs/getting-started/index.md +0 -41
  962. data/docs/mkdocs/getting-started/installation.md +0 -179
  963. data/docs/mkdocs/getting-started/quick-start.md +0 -86
  964. data/docs/mkdocs/help.md +0 -49
  965. data/docs/mkdocs/index.md +0 -222
  966. data/docs/mkdocs/overview/build-system.md +0 -115
  967. data/docs/mkdocs/overview/index.md +0 -29
  968. data/docs/mkdocs/overview/test-environments.md +0 -33
  969. data/docs/mkdocs/overview/tools-and-frameworks.md +0 -115
  970. data/docs/mkdocs/plugins/beep.md +0 -134
  971. data/docs/mkdocs/plugins/bullseye.md +0 -83
  972. data/docs/mkdocs/plugins/command-hooks.md +0 -268
  973. data/docs/mkdocs/plugins/compile-commands-json-db.md +0 -42
  974. data/docs/mkdocs/plugins/cppcheck.md +0 -377
  975. data/docs/mkdocs/plugins/dependencies.md +0 -310
  976. data/docs/mkdocs/plugins/fff.md +0 -247
  977. data/docs/mkdocs/plugins/gcov/examples.md +0 -92
  978. data/docs/mkdocs/plugins/gcov/gcovr.md +0 -526
  979. data/docs/mkdocs/plugins/gcov/index.md +0 -74
  980. data/docs/mkdocs/plugins/gcov/overview.md +0 -145
  981. data/docs/mkdocs/plugins/gcov/reportgenerator.md +0 -246
  982. data/docs/mkdocs/plugins/gcov/reporting.md +0 -147
  983. data/docs/mkdocs/plugins/gcov/setup.md +0 -232
  984. data/docs/mkdocs/plugins/gcov/tool-versions.md +0 -60
  985. data/docs/mkdocs/plugins/gcov/troubleshooting.md +0 -78
  986. data/docs/mkdocs/plugins/index.md +0 -261
  987. data/docs/mkdocs/plugins/module-generator.md +0 -267
  988. data/docs/mkdocs/plugins/report-build-warnings-log.md +0 -42
  989. data/docs/mkdocs/plugins/report-tests-gtestlike-stdout.md +0 -98
  990. data/docs/mkdocs/plugins/report-tests-ide-stdout.md +0 -63
  991. data/docs/mkdocs/plugins/report-tests-log-factory.md +0 -454
  992. data/docs/mkdocs/plugins/report-tests-pretty-stdout.md +0 -56
  993. data/docs/mkdocs/plugins/report-tests-raw-output-log.md +0 -52
  994. data/docs/mkdocs/plugins/report-tests-teamcity-stdout.md +0 -96
  995. data/docs/mkdocs/plugins/sample_html_report.png +0 -0
  996. data/docs/mkdocs/plugins/valgrind.md +0 -198
  997. data/docs/mkdocs/project/release-history.md +0 -61
  998. data/docs/mkdocs/project/upgrade.md +0 -85
  999. data/docs/mkdocs/reference/build-directives.md +0 -37
  1000. data/docs/mkdocs/reference/command-line.md +0 -323
  1001. data/docs/mkdocs/reference/environment-vars.md +0 -60
  1002. data/docs/mkdocs/reference/gcov-plugin.md +0 -600
  1003. data/docs/mkdocs/reference/global-collections.md +0 -160
  1004. data/docs/mkdocs/reference/index.md +0 -65
  1005. data/docs/mkdocs/reference/partials-macros.md +0 -79
  1006. data/docs/mkdocs/reference/project-configuration.md +0 -46
  1007. data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +0 -210
  1008. data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +0 -283
  1009. data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +0 -92
  1010. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +0 -32
  1011. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +0 -136
  1012. data/docs/mkdocs/snapshot.yml +0 -20
  1013. data/docs/mkdocs/testing-guide/build-directives.md +0 -153
  1014. data/docs/mkdocs/testing-guide/conventions.md +0 -616
  1015. data/docs/mkdocs/testing-guide/frameworks.md +0 -192
  1016. data/docs/mkdocs/testing-guide/index.md +0 -80
  1017. data/docs/mkdocs/testing-guide/partials/configuration.md +0 -67
  1018. data/docs/mkdocs/testing-guide/partials/conventions.md +0 -68
  1019. data/docs/mkdocs/testing-guide/partials/directives.md +0 -212
  1020. data/docs/mkdocs/testing-guide/partials/example.md +0 -149
  1021. data/docs/mkdocs/testing-guide/partials/index.md +0 -88
  1022. data/docs/mkdocs/testing-guide/partials/overview.md +0 -81
  1023. data/docs/mkdocs/testing-guide/partials/variables.md +0 -244
  1024. data/docs/mkdocs/testing-guide/test-cases.md +0 -194
  1025. data/docs/mkdocs/testing-guide/test-sample.md +0 -94
  1026. data/docs/mkdocs/testing-guide/test-suite-anatomy.md +0 -58
  1027. data/lib/ceedling/cacheinator.rb +0 -53
  1028. data/lib/ceedling/cacheinator_helper.rb +0 -60
  1029. data/lib/ceedling/dependinator.rb +0 -31
  1030. data/lib/ceedling/makefile.rb +0 -52
  1031. data/lib/ceedling/release_invoker.rb +0 -112
  1032. data/lib/ceedling/rules_release.rake +0 -109
  1033. data/lib/ceedling/tasks_release.rake +0 -36
  1034. data/plugins/fff/vendor/fff/Makefile +0 -10
  1035. data/plugins/fff/vendor/fff/buildandtest +0 -15
  1036. data/plugins/fff/vendor/fff/examples/Makefile +0 -7
  1037. data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
  1038. data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
  1039. data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
  1040. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
  1041. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
  1042. data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
  1043. data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
  1044. data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
  1045. data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
  1046. data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
  1047. data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
  1048. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
  1049. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
  1050. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
  1051. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
  1052. data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
  1053. data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
  1054. data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
  1055. data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
  1056. data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
  1057. data/plugins/fff/vendor/fff/test/Makefile +0 -81
  1058. data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
  1059. data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
  1060. data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
  1061. data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
  1062. data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
  1063. data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
  1064. data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
  1065. data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
  1066. data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
  1067. data/site-local/assets/stylesheets/main.ec1eaa64.min.css +0 -1
  1068. data/site-local/assets/stylesheets/main.ec1eaa64.min.css.map +0 -1
  1069. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
  1070. data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
  1071. data/site-local/snapshot/assets/project.yml +0 -404
  1072. data/spec/system/partials_types_header_spec.rb +0 -166
  1073. data/spec/units/configurator_spec.rb +0 -232
  1074. /data/assets/{ceedling → features/ceedling} +0 -0
  1075. /data/assets/{ceedling.cmd → features/ceedling.cmd} +0 -0
  1076. /data/assets/{default_gitignore → features/default_gitignore} +0 -0
  1077. /data/assets/{broken_uncovered_file.c → fixtures/broken_uncovered_file.c} +0 -0
  1078. /data/assets/{example_file.c → fixtures/example_file.c} +0 -0
  1079. /data/assets/{example_file.h → fixtures/example_file.h} +0 -0
  1080. /data/assets/{example_file_call.c → fixtures/example_file_call.c} +0 -0
  1081. /data/assets/{example_file_call.h → fixtures/example_file_call.h} +0 -0
  1082. /data/assets/{example_file_with_statics.c → fixtures/example_file_with_statics.c} +0 -0
  1083. /data/assets/{example_file_with_stdio.c → fixtures/example_file_with_stdio.c} +0 -0
  1084. /data/assets/{example_file_with_stdio.h → fixtures/example_file_with_stdio.h} +0 -0
  1085. /data/assets/{fake_crash_test_fixture.rb → fixtures/fake_crash_test_fixture.rb} +0 -0
  1086. /data/assets/{partial_all_module.h → fixtures/partial_all_module.h} +0 -0
  1087. /data/assets/{run_with_ubsan.rb → fixtures/run_with_ubsan.rb} +0 -0
  1088. /data/assets/{same_dir_pairing_module.c → fixtures/same_dir_pairing_module.c} +0 -0
  1089. /data/assets/{same_dir_pairing_module.h → fixtures/same_dir_pairing_module.h} +0 -0
  1090. /data/assets/{same_dir_pairing_module_func.h → fixtures/same_dir_pairing_module_func.h} +0 -0
  1091. /data/assets/{same_dir_pairing_other.c → fixtures/same_dir_pairing_other.c} +0 -0
  1092. /data/assets/{same_dir_pairing_other.h → fixtures/same_dir_pairing_other.h} +0 -0
  1093. /data/assets/{test_example_file.c → fixtures/test_example_file.c} +0 -0
  1094. /data/assets/{test_example_file_2.c → fixtures/test_example_file_2.c} +0 -0
  1095. /data/assets/{test_example_file_source_include.c → fixtures/test_example_file_source_include.c} +0 -0
  1096. /data/assets/{test_example_file_success.c → fixtures/test_example_file_success.c} +0 -0
  1097. /data/assets/{test_example_file_unity_printf.c → fixtures/test_example_file_unity_printf.c} +0 -0
  1098. /data/assets/{test_example_file_verbose.c → fixtures/test_example_file_verbose.c} +0 -0
  1099. /data/assets/{test_example_file_with_mock.c → fixtures/test_example_file_with_mock.c} +0 -0
  1100. /data/assets/{test_example_file_with_stdio.c → fixtures/test_example_file_with_stdio.c} +0 -0
  1101. /data/assets/{test_example_with_parameterized_tests.c → fixtures/test_example_with_parameterized_tests.c} +0 -0
  1102. /data/assets/{test_partial_all_module.c → fixtures/test_partial_all_module.c} +0 -0
  1103. /data/assets/{test_same_dir_pairing.c → fixtures/test_same_dir_pairing.c} +0 -0
  1104. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_config.h +0 -0
  1105. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_extra.h +0 -0
  1106. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/local_flag_extra.h +0 -0
  1107. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_extra.h +0 -0
  1108. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_wrapper.h +0 -0
  1109. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/project_flag_extra.h +0 -0
  1110. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.h +0 -0
  1111. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.c +0 -0
  1112. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.h +0 -0
  1113. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.c +0 -0
  1114. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.h +0 -0
  1115. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware.c +0 -0
  1116. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware_special.c +0 -0
  1117. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.c +0 -0
  1118. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.h +0 -0
  1119. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder.c +0 -0
  1120. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder_partial.c +0 -0
  1121. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/conditional_module.h +0 -0
  1122. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/optional_dep.h +0 -0
  1123. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.c +0 -0
  1124. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.h +0 -0
  1125. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.c +0 -0
  1126. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.h +0 -0
  1127. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.c +0 -0
  1128. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.h +0 -0
  1129. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_blanks.c +0 -0
  1130. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_counter.c +0 -0
  1131. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_decorators.c +0 -0
  1132. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.c +0 -0
  1133. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.h +0 -0
  1134. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.c +0 -0
  1135. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.h +0 -0
  1136. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.c +0 -0
  1137. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.h +0 -0
  1138. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorA.h +0 -0
  1139. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorB.h +0 -0
  1140. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorC.h +0 -0
  1141. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareA.c +0 -0
  1142. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareB.c +0 -0
  1143. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareC.c +0 -0
  1144. /data/assets/{uncovered_example_file.c → fixtures/uncovered_example_file.c} +0 -0
  1145. /data/plugins/bullseye/assets/{template.erb → coverage.template} +0 -0
@@ -14,14 +14,14 @@
14
14
  <link rel="prev" href="index.html">
15
15
 
16
16
 
17
- <link rel="next" href="plugins/index.html">
17
+ <link rel="next" href="releases.html">
18
18
 
19
19
 
20
20
 
21
21
 
22
22
 
23
23
  <link rel="icon" href="../assets/images/favicon.png">
24
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.7">
24
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.8.0">
25
25
 
26
26
 
27
27
 
@@ -29,10 +29,10 @@
29
29
 
30
30
 
31
31
 
32
- <link rel="stylesheet" href="../assets/stylesheets/main.ec1eaa64.min.css">
32
+ <link rel="stylesheet" href="../assets/stylesheets/main.57a0d79d.min.css">
33
33
 
34
34
 
35
- <link rel="stylesheet" href="../assets/stylesheets/palette.ab4e12ef.min.css">
35
+ <link rel="stylesheet" href="../assets/stylesheets/palette.fb2fffe2.min.css">
36
36
 
37
37
 
38
38
 
@@ -93,6 +93,16 @@
93
93
 
94
94
  <div data-md-color-scheme="default" data-md-component="outdated" hidden>
95
95
 
96
+ <aside class="md-banner md-banner--warning">
97
+ <div class="md-banner__inner md-grid md-typeset">
98
+ You are not viewing the latest version.
99
+ <a href="../..">
100
+ <strong>Click here to go to latest.</strong>
101
+ </a>
102
+ </div>
103
+ <script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL(".."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
104
+ </aside>
105
+
96
106
  </div>
97
107
 
98
108
 
@@ -330,7 +340,7 @@
330
340
 
331
341
 
332
342
  <li class="md-tabs__item">
333
- <a href="../project/release-history.html" class="md-tabs__link">
343
+ <a href="../project/index.html" class="md-tabs__link">
334
344
 
335
345
 
336
346
 
@@ -641,6 +651,8 @@
641
651
 
642
652
 
643
653
 
654
+
655
+
644
656
 
645
657
 
646
658
 
@@ -788,6 +800,34 @@
788
800
 
789
801
 
790
802
 
803
+ <li class="md-nav__item">
804
+ <a href="../getting-started/builds.html" class="md-nav__link">
805
+
806
+
807
+
808
+ <span class="md-ellipsis">
809
+
810
+
811
+ Builds
812
+
813
+
814
+
815
+ </span>
816
+
817
+
818
+
819
+ </a>
820
+ </li>
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
791
831
 
792
832
 
793
833
 
@@ -814,7 +854,7 @@
814
854
 
815
855
 
816
856
 
817
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
857
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
818
858
 
819
859
 
820
860
  <div class="md-nav__link md-nav__container">
@@ -836,14 +876,14 @@
836
876
  </a>
837
877
 
838
878
 
839
- <label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
879
+ <label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
840
880
  <span class="md-nav__icon md-icon"></span>
841
881
  </label>
842
882
 
843
883
  </div>
844
884
 
845
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_5_label" aria-expanded="false">
846
- <label class="md-nav__title" for="__nav_3_5">
885
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
886
+ <label class="md-nav__title" for="__nav_3_6">
847
887
  <span class="md-nav__icon md-icon"></span>
848
888
 
849
889
 
@@ -2410,6 +2450,8 @@
2410
2450
 
2411
2451
 
2412
2452
 
2453
+
2454
+
2413
2455
 
2414
2456
 
2415
2457
 
@@ -3041,8 +3083,61 @@
3041
3083
 
3042
3084
 
3043
3085
  <li class="md-nav__item">
3044
- <a href="../plugins/bullseye.html" class="md-nav__link">
3086
+ <a href="../plugins/sanitize.html" class="md-nav__link">
3087
+
3088
+
3089
+
3090
+ <span class="md-ellipsis">
3091
+
3092
+
3093
+ Sanitize (ASan, UBSan & Leaks)
3094
+
3095
+
3096
+
3097
+ </span>
3098
+
3099
+
3100
+
3101
+ </a>
3102
+ </li>
3103
+
3104
+
3105
+
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+
3112
+
3113
+
3114
+
3115
+
3116
+
3117
+
3118
+
3119
+
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+
3129
+
3130
+
3131
+ <li class="md-nav__item md-nav__item--nested">
3132
+
3133
+
3134
+
3135
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
3045
3136
 
3137
+
3138
+ <div class="md-nav__link md-nav__container">
3139
+ <a href="../plugins/bullseye/index.html" class="md-nav__link ">
3140
+
3046
3141
 
3047
3142
 
3048
3143
  <span class="md-ellipsis">
@@ -3052,6 +3147,50 @@
3052
3147
 
3053
3148
 
3054
3149
 
3150
+ </span>
3151
+
3152
+
3153
+
3154
+ </a>
3155
+
3156
+
3157
+ <label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="0">
3158
+ <span class="md-nav__icon md-icon"></span>
3159
+ </label>
3160
+
3161
+ </div>
3162
+
3163
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
3164
+ <label class="md-nav__title" for="__nav_6_13">
3165
+ <span class="md-nav__icon md-icon"></span>
3166
+
3167
+
3168
+ Bullseye (Coverage)
3169
+
3170
+
3171
+ </label>
3172
+ <ul class="md-nav__list" data-md-scrollfix>
3173
+
3174
+
3175
+
3176
+
3177
+
3178
+
3179
+
3180
+
3181
+
3182
+ <li class="md-nav__item">
3183
+ <a href="../plugins/bullseye/licensing.html" class="md-nav__link">
3184
+
3185
+
3186
+
3187
+ <span class="md-ellipsis">
3188
+
3189
+
3190
+ Licensing
3191
+
3192
+
3193
+
3055
3194
  </span>
3056
3195
 
3057
3196
 
@@ -3062,6 +3201,14 @@
3062
3201
 
3063
3202
 
3064
3203
 
3204
+ </ul>
3205
+ </nav>
3206
+
3207
+ </li>
3208
+
3209
+
3210
+
3211
+
3065
3212
 
3066
3213
 
3067
3214
 
@@ -3531,6 +3678,12 @@
3531
3678
 
3532
3679
 
3533
3680
 
3681
+
3682
+
3683
+
3684
+
3685
+
3686
+
3534
3687
 
3535
3688
 
3536
3689
 
@@ -3550,8 +3703,9 @@
3550
3703
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
3551
3704
 
3552
3705
 
3553
- <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
3554
-
3706
+ <div class="md-nav__link md-nav__container">
3707
+ <a href="../project/index.html" class="md-nav__link ">
3708
+
3555
3709
 
3556
3710
 
3557
3711
  <span class="md-ellipsis">
@@ -3565,8 +3719,14 @@
3565
3719
 
3566
3720
 
3567
3721
 
3568
- <span class="md-nav__icon md-icon"></span>
3569
- </label>
3722
+ </a>
3723
+
3724
+
3725
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
3726
+ <span class="md-nav__icon md-icon"></span>
3727
+ </label>
3728
+
3729
+ </div>
3570
3730
 
3571
3731
  <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
3572
3732
  <label class="md-nav__title" for="__nav_8">
@@ -3580,6 +3740,8 @@
3580
3740
  <ul class="md-nav__list" data-md-scrollfix>
3581
3741
 
3582
3742
 
3743
+
3744
+
3583
3745
 
3584
3746
 
3585
3747
 
@@ -3613,6 +3775,34 @@
3613
3775
 
3614
3776
 
3615
3777
 
3778
+ <li class="md-nav__item">
3779
+ <a href="../project/sbom.html" class="md-nav__link">
3780
+
3781
+
3782
+
3783
+ <span class="md-ellipsis">
3784
+
3785
+
3786
+ Software Bill of Materials
3787
+
3788
+
3789
+
3790
+ </span>
3791
+
3792
+
3793
+
3794
+ </a>
3795
+ </li>
3796
+
3797
+
3798
+
3799
+
3800
+
3801
+
3802
+
3803
+
3804
+
3805
+
3616
3806
  <li class="md-nav__item">
3617
3807
  <a href="../project/upgrade.html" class="md-nav__link">
3618
3808
 
@@ -3685,6 +3875,8 @@
3685
3875
 
3686
3876
 
3687
3877
 
3878
+
3879
+
3688
3880
 
3689
3881
 
3690
3882
 
@@ -3811,6 +4003,17 @@
3811
4003
  </label>
3812
4004
  <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
3813
4005
 
4006
+ <li class="md-nav__item">
4007
+ <a href="#code-organization" class="md-nav__link">
4008
+ <span class="md-ellipsis">
4009
+
4010
+ Code organization
4011
+
4012
+ </span>
4013
+ </a>
4014
+
4015
+ </li>
4016
+
3814
4017
  <li class="md-nav__item">
3815
4018
  <a href="#installation-options" class="md-nav__link">
3816
4019
  <span class="md-ellipsis">
@@ -3915,6 +4118,28 @@
3915
4118
  </span>
3916
4119
  </a>
3917
4120
 
4121
+ </li>
4122
+
4123
+ <li class="md-nav__item">
4124
+ <a href="#recording-a-dependencys-license" class="md-nav__link">
4125
+ <span class="md-ellipsis">
4126
+
4127
+ Recording a dependency’s license
4128
+
4129
+ </span>
4130
+ </a>
4131
+
4132
+ </li>
4133
+
4134
+ <li class="md-nav__item">
4135
+ <a href="#updating-a-vendored-component" class="md-nav__link">
4136
+ <span class="md-ellipsis">
4137
+
4138
+ Updating a vendored component
4139
+
4140
+ </span>
4141
+ </a>
4142
+
3918
4143
  </li>
3919
4144
 
3920
4145
  </ul>
@@ -3934,58 +4159,270 @@
3934
4159
  </li>
3935
4160
 
3936
4161
  <li class="md-nav__item">
3937
- <a href="#documentation" class="md-nav__link">
4162
+ <a href="#troubleshooting-system-tests" class="md-nav__link">
3938
4163
  <span class="md-ellipsis">
3939
4164
 
3940
- Documentation
4165
+ Troubleshooting system tests
3941
4166
 
3942
4167
  </span>
3943
4168
  </a>
3944
4169
 
3945
- </li>
3946
-
3947
- <li class="md-nav__item">
3948
- <a href="#bin-vs-lib" class="md-nav__link">
4170
+ <nav class="md-nav" aria-label="Troubleshooting system tests">
4171
+ <ul class="md-nav__list">
4172
+
4173
+ <li class="md-nav__item">
4174
+ <a href="#retained-artifacts" class="md-nav__link">
3949
4175
  <span class="md-ellipsis">
3950
4176
 
3951
- bin/ vs. lib/
4177
+ Retained artifacts
3952
4178
 
3953
4179
  </span>
3954
4180
  </a>
3955
4181
 
3956
4182
  </li>
4183
+
4184
+ <li class="md-nav__item">
4185
+ <a href="#failure-output-at-the-console" class="md-nav__link">
4186
+ <span class="md-ellipsis">
3957
4187
 
3958
- </ul>
3959
-
3960
- </nav>
4188
+ Failure output at the console
3961
4189
 
3962
- </li>
3963
-
3964
-
3965
-
3966
-
3967
-
3968
-
3969
-
3970
-
3971
-
4190
+ </span>
4191
+ </a>
3972
4192
 
3973
-
3974
-
3975
-
3976
-
3977
-
4193
+ </li>
3978
4194
 
4195
+ <li class="md-nav__item">
4196
+ <a href="#artifacts-from-a-failed-ci-run" class="md-nav__link">
4197
+ <span class="md-ellipsis">
3979
4198
 
3980
-
4199
+ Artifacts from a failed CI run
3981
4200
 
4201
+ </span>
4202
+ </a>
4203
+
4204
+ </li>
3982
4205
 
4206
+ </ul>
4207
+ </nav>
4208
+
4209
+ </li>
3983
4210
 
3984
-
4211
+ <li class="md-nav__item">
4212
+ <a href="#linting" class="md-nav__link">
4213
+ <span class="md-ellipsis">
3985
4214
 
3986
-
3987
-
3988
-
4215
+ Linting
4216
+
4217
+ </span>
4218
+ </a>
4219
+
4220
+ <nav class="md-nav" aria-label="Linting">
4221
+ <ul class="md-nav__list">
4222
+
4223
+ <li class="md-nav__item">
4224
+ <a href="#the-offense-backlog" class="md-nav__link">
4225
+ <span class="md-ellipsis">
4226
+
4227
+ The offense backlog
4228
+
4229
+ </span>
4230
+ </a>
4231
+
4232
+ </li>
4233
+
4234
+ <li class="md-nav__item">
4235
+ <a href="#linting-in-continuous-integration" class="md-nav__link">
4236
+ <span class="md-ellipsis">
4237
+
4238
+ Linting in continuous integration
4239
+
4240
+ </span>
4241
+ </a>
4242
+
4243
+ </li>
4244
+
4245
+ </ul>
4246
+ </nav>
4247
+
4248
+ </li>
4249
+
4250
+ <li class="md-nav__item">
4251
+ <a href="#profiling" class="md-nav__link">
4252
+ <span class="md-ellipsis">
4253
+
4254
+ Profiling
4255
+
4256
+ </span>
4257
+ </a>
4258
+
4259
+ <nav class="md-nav" aria-label="Profiling">
4260
+ <ul class="md-nav__list">
4261
+
4262
+ <li class="md-nav__item">
4263
+ <a href="#reports" class="md-nav__link">
4264
+ <span class="md-ellipsis">
4265
+
4266
+ Reports
4267
+
4268
+ </span>
4269
+ </a>
4270
+
4271
+ </li>
4272
+
4273
+ <li class="md-nav__item">
4274
+ <a href="#reading-a-report" class="md-nav__link">
4275
+ <span class="md-ellipsis">
4276
+
4277
+ Reading a report
4278
+
4279
+ </span>
4280
+ </a>
4281
+
4282
+ </li>
4283
+
4284
+ </ul>
4285
+ </nav>
4286
+
4287
+ </li>
4288
+
4289
+ <li class="md-nav__item">
4290
+ <a href="#building-the-gem" class="md-nav__link">
4291
+ <span class="md-ellipsis">
4292
+
4293
+ Building the gem
4294
+
4295
+ </span>
4296
+ </a>
4297
+
4298
+ <nav class="md-nav" aria-label="Building the gem">
4299
+ <ul class="md-nav__list">
4300
+
4301
+ <li class="md-nav__item">
4302
+ <a href="#generating-the-bill-of-materials" class="md-nav__link">
4303
+ <span class="md-ellipsis">
4304
+
4305
+ Generating the Bill of Materials
4306
+
4307
+ </span>
4308
+ </a>
4309
+
4310
+ </li>
4311
+
4312
+ </ul>
4313
+ </nav>
4314
+
4315
+ </li>
4316
+
4317
+ <li class="md-nav__item">
4318
+ <a href="#documentation" class="md-nav__link">
4319
+ <span class="md-ellipsis">
4320
+
4321
+ Documentation
4322
+
4323
+ </span>
4324
+ </a>
4325
+
4326
+ <nav class="md-nav" aria-label="Documentation">
4327
+ <ul class="md-nav__list">
4328
+
4329
+ <li class="md-nav__item">
4330
+ <a href="#developer-documentation" class="md-nav__link">
4331
+ <span class="md-ellipsis">
4332
+
4333
+ Developer documentation
4334
+
4335
+ </span>
4336
+ </a>
4337
+
4338
+ </li>
4339
+
4340
+ <li class="md-nav__item">
4341
+ <a href="#user-documentation" class="md-nav__link">
4342
+ <span class="md-ellipsis">
4343
+
4344
+ User documentation
4345
+
4346
+ </span>
4347
+ </a>
4348
+
4349
+ </li>
4350
+
4351
+ </ul>
4352
+ </nav>
4353
+
4354
+ </li>
4355
+
4356
+ <li class="md-nav__item">
4357
+ <a href="#bin-vs-lib" class="md-nav__link">
4358
+ <span class="md-ellipsis">
4359
+
4360
+ bin/ vs. lib/
4361
+
4362
+ </span>
4363
+ </a>
4364
+
4365
+ </li>
4366
+
4367
+ </ul>
4368
+
4369
+ </nav>
4370
+
4371
+ </li>
4372
+
4373
+
4374
+
4375
+
4376
+
4377
+
4378
+
4379
+
4380
+
4381
+
4382
+ <li class="md-nav__item">
4383
+ <a href="releases.html" class="md-nav__link">
4384
+
4385
+
4386
+
4387
+ <span class="md-ellipsis">
4388
+
4389
+
4390
+ Branching & Releases
4391
+
4392
+
4393
+
4394
+ </span>
4395
+
4396
+
4397
+
4398
+ </a>
4399
+ </li>
4400
+
4401
+
4402
+
4403
+
4404
+
4405
+
4406
+
4407
+
4408
+
4409
+
4410
+
4411
+
4412
+
4413
+
4414
+
4415
+
4416
+
4417
+
4418
+
4419
+
4420
+
4421
+
4422
+
4423
+
4424
+
4425
+
3989
4426
 
3990
4427
 
3991
4428
 
@@ -3999,7 +4436,7 @@
3999
4436
 
4000
4437
 
4001
4438
 
4002
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_3" >
4439
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
4003
4440
 
4004
4441
 
4005
4442
  <div class="md-nav__link md-nav__container">
@@ -4021,14 +4458,14 @@
4021
4458
  </a>
4022
4459
 
4023
4460
 
4024
- <label class="md-nav__link " for="__nav_10_3" id="__nav_10_3_label" tabindex="">
4461
+ <label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="">
4025
4462
  <span class="md-nav__icon md-icon"></span>
4026
4463
  </label>
4027
4464
 
4028
4465
  </div>
4029
4466
 
4030
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_3_label" aria-expanded="false">
4031
- <label class="md-nav__title" for="__nav_10_3">
4467
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
4468
+ <label class="md-nav__title" for="__nav_10_4">
4032
4469
  <span class="md-nav__icon md-icon"></span>
4033
4470
 
4034
4471
 
@@ -4165,6 +4602,17 @@
4165
4602
  </label>
4166
4603
  <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
4167
4604
 
4605
+ <li class="md-nav__item">
4606
+ <a href="#code-organization" class="md-nav__link">
4607
+ <span class="md-ellipsis">
4608
+
4609
+ Code organization
4610
+
4611
+ </span>
4612
+ </a>
4613
+
4614
+ </li>
4615
+
4168
4616
  <li class="md-nav__item">
4169
4617
  <a href="#installation-options" class="md-nav__link">
4170
4618
  <span class="md-ellipsis">
@@ -4269,6 +4717,28 @@
4269
4717
  </span>
4270
4718
  </a>
4271
4719
 
4720
+ </li>
4721
+
4722
+ <li class="md-nav__item">
4723
+ <a href="#recording-a-dependencys-license" class="md-nav__link">
4724
+ <span class="md-ellipsis">
4725
+
4726
+ Recording a dependency’s license
4727
+
4728
+ </span>
4729
+ </a>
4730
+
4731
+ </li>
4732
+
4733
+ <li class="md-nav__item">
4734
+ <a href="#updating-a-vendored-component" class="md-nav__link">
4735
+ <span class="md-ellipsis">
4736
+
4737
+ Updating a vendored component
4738
+
4739
+ </span>
4740
+ </a>
4741
+
4272
4742
  </li>
4273
4743
 
4274
4744
  </ul>
@@ -4285,6 +4755,162 @@
4285
4755
  </span>
4286
4756
  </a>
4287
4757
 
4758
+ </li>
4759
+
4760
+ <li class="md-nav__item">
4761
+ <a href="#troubleshooting-system-tests" class="md-nav__link">
4762
+ <span class="md-ellipsis">
4763
+
4764
+ Troubleshooting system tests
4765
+
4766
+ </span>
4767
+ </a>
4768
+
4769
+ <nav class="md-nav" aria-label="Troubleshooting system tests">
4770
+ <ul class="md-nav__list">
4771
+
4772
+ <li class="md-nav__item">
4773
+ <a href="#retained-artifacts" class="md-nav__link">
4774
+ <span class="md-ellipsis">
4775
+
4776
+ Retained artifacts
4777
+
4778
+ </span>
4779
+ </a>
4780
+
4781
+ </li>
4782
+
4783
+ <li class="md-nav__item">
4784
+ <a href="#failure-output-at-the-console" class="md-nav__link">
4785
+ <span class="md-ellipsis">
4786
+
4787
+ Failure output at the console
4788
+
4789
+ </span>
4790
+ </a>
4791
+
4792
+ </li>
4793
+
4794
+ <li class="md-nav__item">
4795
+ <a href="#artifacts-from-a-failed-ci-run" class="md-nav__link">
4796
+ <span class="md-ellipsis">
4797
+
4798
+ Artifacts from a failed CI run
4799
+
4800
+ </span>
4801
+ </a>
4802
+
4803
+ </li>
4804
+
4805
+ </ul>
4806
+ </nav>
4807
+
4808
+ </li>
4809
+
4810
+ <li class="md-nav__item">
4811
+ <a href="#linting" class="md-nav__link">
4812
+ <span class="md-ellipsis">
4813
+
4814
+ Linting
4815
+
4816
+ </span>
4817
+ </a>
4818
+
4819
+ <nav class="md-nav" aria-label="Linting">
4820
+ <ul class="md-nav__list">
4821
+
4822
+ <li class="md-nav__item">
4823
+ <a href="#the-offense-backlog" class="md-nav__link">
4824
+ <span class="md-ellipsis">
4825
+
4826
+ The offense backlog
4827
+
4828
+ </span>
4829
+ </a>
4830
+
4831
+ </li>
4832
+
4833
+ <li class="md-nav__item">
4834
+ <a href="#linting-in-continuous-integration" class="md-nav__link">
4835
+ <span class="md-ellipsis">
4836
+
4837
+ Linting in continuous integration
4838
+
4839
+ </span>
4840
+ </a>
4841
+
4842
+ </li>
4843
+
4844
+ </ul>
4845
+ </nav>
4846
+
4847
+ </li>
4848
+
4849
+ <li class="md-nav__item">
4850
+ <a href="#profiling" class="md-nav__link">
4851
+ <span class="md-ellipsis">
4852
+
4853
+ Profiling
4854
+
4855
+ </span>
4856
+ </a>
4857
+
4858
+ <nav class="md-nav" aria-label="Profiling">
4859
+ <ul class="md-nav__list">
4860
+
4861
+ <li class="md-nav__item">
4862
+ <a href="#reports" class="md-nav__link">
4863
+ <span class="md-ellipsis">
4864
+
4865
+ Reports
4866
+
4867
+ </span>
4868
+ </a>
4869
+
4870
+ </li>
4871
+
4872
+ <li class="md-nav__item">
4873
+ <a href="#reading-a-report" class="md-nav__link">
4874
+ <span class="md-ellipsis">
4875
+
4876
+ Reading a report
4877
+
4878
+ </span>
4879
+ </a>
4880
+
4881
+ </li>
4882
+
4883
+ </ul>
4884
+ </nav>
4885
+
4886
+ </li>
4887
+
4888
+ <li class="md-nav__item">
4889
+ <a href="#building-the-gem" class="md-nav__link">
4890
+ <span class="md-ellipsis">
4891
+
4892
+ Building the gem
4893
+
4894
+ </span>
4895
+ </a>
4896
+
4897
+ <nav class="md-nav" aria-label="Building the gem">
4898
+ <ul class="md-nav__list">
4899
+
4900
+ <li class="md-nav__item">
4901
+ <a href="#generating-the-bill-of-materials" class="md-nav__link">
4902
+ <span class="md-ellipsis">
4903
+
4904
+ Generating the Bill of Materials
4905
+
4906
+ </span>
4907
+ </a>
4908
+
4909
+ </li>
4910
+
4911
+ </ul>
4912
+ </nav>
4913
+
4288
4914
  </li>
4289
4915
 
4290
4916
  <li class="md-nav__item">
@@ -4296,6 +4922,34 @@
4296
4922
  </span>
4297
4923
  </a>
4298
4924
 
4925
+ <nav class="md-nav" aria-label="Documentation">
4926
+ <ul class="md-nav__list">
4927
+
4928
+ <li class="md-nav__item">
4929
+ <a href="#developer-documentation" class="md-nav__link">
4930
+ <span class="md-ellipsis">
4931
+
4932
+ Developer documentation
4933
+
4934
+ </span>
4935
+ </a>
4936
+
4937
+ </li>
4938
+
4939
+ <li class="md-nav__item">
4940
+ <a href="#user-documentation" class="md-nav__link">
4941
+ <span class="md-ellipsis">
4942
+
4943
+ User documentation
4944
+
4945
+ </span>
4946
+ </a>
4947
+
4948
+ </li>
4949
+
4950
+ </ul>
4951
+ </nav>
4952
+
4299
4953
  </li>
4300
4954
 
4301
4955
  <li class="md-nav__item">
@@ -4378,6 +5032,23 @@
4378
5032
 
4379
5033
 
4380
5034
  <h1 id="ceedling-development">Ceedling development</h1>
5035
+ <h2 id="code-organization">Code organization</h2>
5036
+ <p>There are two top-level code directories:</p>
5037
+ <ol>
5038
+ <li><code>bin/</code> This is the “bootloader” that encompasses the command line
5039
+ handler and loading the project configuration including merging
5040
+ Mixins. All applications commands are executed from within this
5041
+ code (<a href="../getting-started/command-line.html">application commands are distinct from build/plugin tasks</a>).</li>
5042
+ <li><code>lib/ceedling/</code> This is the application itself. Major subsystems
5043
+ are organized in subdirectories. Configuration processing happens
5044
+ in the main application.</li>
5045
+ </ol>
5046
+ <p>The handoff from (1) to (2) involves:</p>
5047
+ <ol>
5048
+ <li>Triggering the loaded and merged configuration to undergo
5049
+ processing, validation, and plugin loading.</li>
5050
+ <li>Triggering the build/plugin task named at the command line.</li>
5051
+ </ol>
4381
5052
  <h2 id="installation-options">Installation options</h2>
4382
5053
  <h3 id="local-installation">Local installation</h3>
4383
5054
  <p>After installing Ruby…</p>
@@ -4517,7 +5188,7 @@ flag must be passed explicitly every time.</p>
4517
5188
  <p class="admonition-title">Tip</p>
4518
5189
  <p>If you'd rather not remember the <code>--prefer-local</code>, add a shell alias,
4519
5190
  e.g. in <code>~/.bashrc</code> / <code>~/.zshrc</code>:</p>
4520
- <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nb">alias</span><span class="w"> </span>bundle-install-local<span class="o">=</span><span class="s2">&quot;bundle install --prefer-local&quot;</span>
5191
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nb">alias</span><span class="w"> </span>bundle-install-local<span class="o">=</span><span class="s2">"bundle install --prefer-local"</span>
4521
5192
  </code></pre></div>
4522
5193
  </div>
4523
5194
  <h3 id="checking-your-environment-without-installing-anything">Checking your environment without installing anything</h3>
@@ -4536,25 +5207,303 @@ automatically; if you ever invoke an RSpec or Ruby command directly
4536
5207
  instead of through a Rake task, prefix it with <code>bundle exec</code>:</p>
4537
5208
  <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="w"> </span>&gt;<span class="w"> </span>bundle<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>rspec<span class="w"> </span>spec/some_spec.rb
4538
5209
  </code></pre></div>
5210
+ <h3 id="recording-a-dependencys-license">Recording a dependency’s license</h3>
5211
+ <p>Changing a runtime dependency means recording its license. The generated
5212
+ <a href="../project/sbom.html">Software Bill of Materials</a> carries a license for every gem a user
5213
+ installs, and that comes from a curated list in <code>tools/sbom/gem_licenses.rb</code>
5214
+ rather than from <code>Gemfile.lock</code>.</p>
5215
+ <p>The list is curated because nothing else is accurate. <code>Gemfile.lock</code> records
5216
+ no license at all. A gem’s own gemspec is unreliable, and project license
5217
+ statements and conventions are often messy.</p>
5218
+ <p>Each curated entry records three things. The license is an SPDX identifier
5219
+ or expression. <code>verified_for</code> is the version the license was read against.
5220
+ <code>source</code> names where it was read.</p>
5221
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="s1">'rake'</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span>
5222
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="ss">license</span><span class="p">:</span><span class="w"> </span><span class="s1">'MIT'</span><span class="p">,</span>
5223
+ <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="ss">verified_for</span><span class="p">:</span><span class="w"> </span><span class="s1">'13.2.1'</span><span class="p">,</span>
5224
+ <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="ss">source</span><span class="p">:</span><span class="w"> </span><span class="s2">"the gem's own gemspec"</span>
5225
+ <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="p">},</span>
5226
+ </code></pre></div>
5227
+ <p><code>rake sbom:build</code> refuses to run when the list and the resolved dependencies
5228
+ disagree. It reports three kinds of disagreement and names the remedy for each.</p>
5229
+ <ul>
5230
+ <li>A dependency arrived with no entry. Read its license and add one.</li>
5231
+ <li>An entry outlived its dependency. Remove it.</li>
5232
+ <li>A version moved away from the one its entry was verified against. Read the
5233
+ license again, then update <code>license</code> and <code>verified_for</code> together.</li>
5234
+ </ul>
5235
+ <p>That third check is why <code>verified_for</code> exists. A license cannot be re-read
5236
+ without reaching the network, so a version change stands in for “worth reading
5237
+ again”. Because <code>Gemfile.lock</code> is generally curated by hand in this project,
5238
+ a version change is already a deliberate act, and this failure lands while
5239
+ you are editing dependencies.</p>
5240
+ <p>One kind of drift escapes all three checks. A gem may change its license
5241
+ without changing version. <code>rake sbom:licenses:audit</code> compares the list against
5242
+ gems installed locally and reports anything that disagrees. It reads your
5243
+ machine rather than the repository, so it is advisory and deliberately outside
5244
+ <code>sbom:build</code>.</p>
5245
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>sbom:licenses:audit
5246
+ </code></pre></div>
5247
+ <h3 id="updating-a-vendored-component">Updating a vendored component</h3>
5248
+ <p>Updating Unity, CMock, or CException needs no bookkeeping beyond the submodule
5249
+ itself. Each is identified in the SBOM by the commit it is pinned at, read from
5250
+ <code>git submodule status --recursive</code> at generation time.</p>
5251
+ <p>Vendored DIY and vendored fff are different, being plain directories rather than
5252
+ submodules. DIY’s version is read from its source. fff has no version of any
5253
+ kind upstream, and its lineage is recorded as constants in
5254
+ <code>tools/sbom/inventory.rb</code>. Changing either means updating those.</p>
4539
5255
  <h2 id="running-self-tests">Running self-tests</h2>
4540
5256
  <p>Ceedling uses <a href="https://rspec.info">RSpec</a> for its tests.</p>
4541
5257
  <p>To execute tests you may run the following from the root of your local
4542
5258
  Ceedling repository. This test suite build option balances test coverage
4543
5259
  with suite execution time.</p>
4544
- <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>spec
5260
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>spec
4545
5261
  </code></pre></div>
4546
5262
  <p>To run individual test files (Ceedling’s Ruby-based tests, that is) and
4547
5263
  perform other tasks, use the available Rake tasks. From the root of your
4548
5264
  local Ceedling repo, list those task like this:</p>
4549
- <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>-T
5265
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>-T
5266
+ </code></pre></div>
5267
+ <h2 id="troubleshooting-system-tests">Troubleshooting system tests</h2>
5268
+ <p>System test failures are diagnosed from retained artifacts rather than from spec
5269
+ output alone. Each system spec deploys a real Ceedling installation into a
5270
+ temporary directory and runs real builds there. The RSpec failure reports which
5271
+ expectation failed. It does not report what the build under test actually did.</p>
5272
+ <p>Nothing is retained by default. A normal run deletes every temporary directory as
5273
+ it finishes, so a failure leaves no evidence behind.</p>
5274
+ <p>Two Rake tasks turn retention on.</p>
5275
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>specs:system:debug
5276
+ <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>spec:system:debug:cli_surface
4550
5277
  </code></pre></div>
5278
+ <p><code>specs:system:debug</code> runs the whole suite and keeps failures only. Passing project
5279
+ directories are deleted as they finish, and passing logs are never written. This
5280
+ is the mode CI uses.</p>
5281
+ <p><code>spec:system:debug:&lt;name&gt;</code> runs one spec and keeps everything, pass and fail
5282
+ alike. Reach for it while working on a single spec.</p>
5283
+ <div class="admonition tip">
5284
+ <p class="admonition-title">Tip</p>
5285
+ <p><code>rake -T</code> advertises the family as <code>spec:system:debug:*</code>. Replace the wildcard
5286
+ with a spec name. <code>rake -AT spec:system:debug</code> lists every name it accepts.</p>
5287
+ </div>
5288
+ <p>Both tasks set <code>CEEDLING_SYSTEM_TEST_KEEP</code> on your behalf. Set it to <code>all</code> or
5289
+ <code>failures</code> yourself when driving RSpec directly.</p>
5290
+ <h3 id="retained-artifacts">Retained artifacts</h3>
5291
+ <p>Everything retained lands under <code>specout/</code> in the repository root.</p>
5292
+ <table>
5293
+ <thead>
5294
+ <tr>
5295
+ <th>Path</th>
5296
+ <th>Contents</th>
5297
+ </tr>
5298
+ </thead>
5299
+ <tbody>
5300
+ <tr>
5301
+ <td><code>specout/proj/fail/</code></td>
5302
+ <td>Deployed project directory for each failing spec</td>
5303
+ </tr>
5304
+ <tr>
5305
+ <td><code>specout/proj/pass/</code></td>
5306
+ <td>The same for passing specs, in <code>all</code> mode only</td>
5307
+ </tr>
5308
+ <tr>
5309
+ <td><code>specout/fail.&lt;description&gt;.&lt;pid&gt;-&lt;timestamp&gt;.log</code></td>
5310
+ <td>Captured console output of a failing spec</td>
5311
+ </tr>
5312
+ <tr>
5313
+ <td><code>specout/pass.&lt;description&gt;.&lt;pid&gt;-&lt;timestamp&gt;.log</code></td>
5314
+ <td>The same for passing specs, in <code>all</code> mode only</td>
5315
+ </tr>
5316
+ </tbody>
5317
+ </table>
5318
+ <p>Each log opens with the command that produced it, followed by that command's
5319
+ combined stdout and stderr.</p>
5320
+ <p>Each retained project directory is a complete deployment, including the vendored
5321
+ Ceedling the spec installed. This is where to reproduce a failure by hand. Change
5322
+ into it and run the same <code>ceedling</code> command the log names.</p>
5323
+ <h3 id="failure-output-at-the-console">Failure output at the console</h3>
5324
+ <p>A failing spec prints a diagnostic block to stderr before the suite continues. The
5325
+ block names the temporary directory, names the log file, and summarizes the
5326
+ captured output.</p>
5327
+ <p>The summary carries only what is worth reading first. It collects every line
5328
+ containing <code>ERROR</code> or <code>EXCEPTION</code>, the whole of stderr, any debug backtrace, and
5329
+ the failed and overall test summaries. Full output stays in the log file.</p>
5330
+ <h3 id="artifacts-from-a-failed-ci-run">Artifacts from a failed CI run</h3>
5331
+ <p>CI uploads the same directory whenever a test job fails. Download it from the
5332
+ workflow run's summary page.</p>
5333
+ <p>Artifacts are named <code>specout-failures-&lt;os&gt;-ruby-&lt;version&gt;</code>. The two specialized
5334
+ jobs add <code>specout-failures-locale-ruby-3.3</code> and
5335
+ <code>specout-failures-encoding-stress-ruby-3.3</code>.</p>
5336
+ <p>CI runs in <code>failures</code> mode, so an artifact holds only failure data.</p>
5337
+ <h2 id="linting">Linting</h2>
5338
+ <p>Ceedling lints its own Ruby with <a href="https://rubocop.org">RuboCop</a>. Four departments are enforced. Lint
5339
+ and Security catch defects. Metrics tracks complexity. Performance flags
5340
+ avoidable allocations and slower idioms.</p>
5341
+ <p>Style, Layout, and Naming are deliberately not enforced. Those departments encode
5342
+ taste rather than defects, and applying them would rewrite nearly every call site
5343
+ in the project to no benefit. ThrowTheSwitch's house style is described in prose
5344
+ in the coding standard instead.</p>
5345
+ <p>Configuration lives in <code>.rubocop.yml</code> at the root of the repository. Every
5346
+ decision in that file is commented, including the cops deliberately turned down
5347
+ and the reasoning for each.</p>
5348
+ <p>The linting gems are not installed by an ordinary <code>bundle install</code>. Install them
5349
+ once with the setup task.</p>
5350
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>lint:setup
5351
+ </code></pre></div>
5352
+ <p>Then lint the whole project, or only the files your branch changed.</p>
5353
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>lint
5354
+ <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>lint:changed
5355
+ <a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span><span class="s2">"lint:changed[master]"</span>
5356
+ </code></pre></div>
5357
+ <p><code>lint:changed</code> is the faster loop while working on a branch. It compares against
5358
+ <code>next_version</code> unless you name another branch or revision. Quote the task name so
5359
+ your shell does not interpret the brackets.</p>
5360
+ <p>Changed files include both commits on your branch and uncommitted work in your
5361
+ tree. Naming a branch that does not exist is an error rather than an empty
5362
+ result.</p>
5363
+ <p>RuboCop can correct some offenses itself. Only safe corrections are applied.
5364
+ Review the resulting diff before keeping it.</p>
5365
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>lint:fix
5366
+ </code></pre></div>
5367
+ <p>Metrics offenses are never autocorrectable, so this task mostly touches
5368
+ Performance cops.</p>
5369
+ <h3 id="the-offense-backlog">The offense backlog</h3>
5370
+ <p>A passing <code>rake lint</code> means no <em>new</em> offenses rather than zero offenses.</p>
5371
+ <p><code>.rubocop_todo.yml</code> records the offenses that already existed when RuboCop was
5372
+ adopted. Without that file every run would report all of them and bury anything
5373
+ newly introduced.</p>
5374
+ <p>The file is generated, and it is meant to shrink. Removing records as the
5375
+ underlying code improves is the entire point of baselining. Regenerate the file
5376
+ after an improvement rather than editing it by hand.</p>
5377
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>lint:todo
5378
+ </code></pre></div>
5379
+ <p>A decision to live with a cop permanently does not belong in the backlog. Those
5380
+ belong in <code>.rubocop.yml</code>, with a comment explaining why the cop is wrong for this
5381
+ project.</p>
5382
+ <h3 id="linting-in-continuous-integration">Linting in continuous integration</h3>
5383
+ <p>CI runs <code>rake lint</code> on every pull request. Findings appear as annotations
5384
+ directly on the changed lines of the diff.</p>
5385
+ <p>The job is advisory. It reports findings without failing the build.</p>
5386
+ <p>That is a starting position rather than the intent. The backlog is still large
5387
+ enough that a new offense is unremarkable, so blocking would obstruct more than
5388
+ it would protect. The job becomes blocking once the backlog has shrunk far enough
5389
+ that any finding is a genuine surprise.</p>
5390
+ <h2 id="profiling">Profiling</h2>
5391
+ <p>Profiling answers where a Ceedling build spends its time. It samples a real build
5392
+ of a real example project with <a href="https://github.com/tmm1/stackprof">StackProf</a> and renders a flame graph.</p>
5393
+ <p>The profiling gem is not installed by an ordinary <code>bundle install</code>. Install it
5394
+ once with the setup task.</p>
5395
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>profile:setup
5396
+ </code></pre></div>
5397
+ <p>Then profile any example project against any Ceedling build task.</p>
5398
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span><span class="s2">"profile:run[temp_sensor,test:all]"</span>
5399
+ <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span><span class="s2">"profile:run[temp_sensor,clobber test:all]"</span>
5400
+ </code></pre></div>
5401
+ <p>The first argument names a project under <code>examples/</code>. The choices are
5402
+ <code>cipher_quest</code>, <code>temp_sensor</code>, and <code>wondrous_forest</code>. The second argument is
5403
+ whatever you would type after <code>ceedling</code>. Quote the task name so your shell does
5404
+ not interpret the brackets.</p>
5405
+ <h3 id="reports">Reports</h3>
5406
+ <p>Three files land in <code>tmp/profiling/&lt;project&gt;/reports/</code>, each named by timestamp.</p>
5407
+ <table>
5408
+ <thead>
5409
+ <tr>
5410
+ <th>Extension</th>
5411
+ <th>Contents</th>
5412
+ </tr>
5413
+ </thead>
5414
+ <tbody>
5415
+ <tr>
5416
+ <td><code>.txt</code></td>
5417
+ <td>Ranked list of the hottest frames</td>
5418
+ </tr>
5419
+ <tr>
5420
+ <td><code>.html</code></td>
5421
+ <td>Interactive flame graph</td>
5422
+ </tr>
5423
+ <tr>
5424
+ <td><code>.dump</code></td>
5425
+ <td>Raw StackProf data, for your own queries</td>
5426
+ </tr>
5427
+ </tbody>
5428
+ </table>
5429
+ <p>Timestamps keep successive runs from overwriting one another. A full build followed
5430
+ by a no-op rebuild produces two comparable sets.</p>
5431
+ <h3 id="reading-a-report">Reading a report</h3>
5432
+ <p>Profiling runs single threaded, and that is deliberate. The task pins both thread
5433
+ counts to 1 so the work stays on the thread StackProf samples. A multi-threaded run
5434
+ would hide most of the build in worker threads the profiler never sees. No flame
5435
+ graph this task produces says anything about thread contention.</p>
5436
+ <p>Expect <code>Kernel#sleep</code> and <code>Thread#value</code> to dominate every report. They represent
5437
+ time spent waiting on child processes rather than work done in Ruby. Read past
5438
+ them to the frames underneath.</p>
5439
+ <p>The scaffolded project persists between runs. <code>profile:run</code> copies the example into
5440
+ <code>tmp/profiling/&lt;project&gt;/</code> on first use and leaves it there, build directory and
5441
+ dependency cache included. A second run against the same project therefore
5442
+ profiles a real incremental build. Delete <code>tmp/profiling/&lt;project&gt;/</code> to start from
5443
+ a clean scaffold.</p>
5444
+ <div class="admonition note">
5445
+ <p class="admonition-title">Note</p>
5446
+ <p>Profiling is unavailable on Windows. StackProf builds a native extension that
5447
+ does not compile there, so <code>profile:setup</code> declines with a message rather than
5448
+ attempting it.</p>
5449
+ </div>
5450
+ <h2 id="building-the-gem">Building the gem</h2>
5451
+ <p>Building the gem locally shows what a release would actually contain. The gemspec
5452
+ assembles its file list by sweeping the working tree, so a local build reflects
5453
+ whatever happens to be lying around.</p>
5454
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>gem:build
5455
+ <a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>gem:clean
5456
+ </code></pre></div>
5457
+ <p><code>gem:build</code> runs the same <code>gem build ceedling.gemspec</code> that CI runs and leaves
5458
+ <code>ceedling-&lt;version&gt;.gem</code> in the repository root. <code>gem:clean</code> removes built gems.</p>
5459
+ <p>The version carries a <code>.dev</code> suffix, so a local build is named
5460
+ <code>ceedling-&lt;version&gt;.dev.gem</code>. <code>lib/version.rb</code> appends that marker to every build
5461
+ the release pipeline did not produce, which is also why <code>ceedling version</code> reports
5462
+ it. See <a href="releases.html">Branching &amp; Releases</a> for how a release build clears it.</p>
5463
+ <p><code>gem:build</code> depends on <code>gem:clean</code>, which matters more than it appears to. The
5464
+ gemspec has no exclusion for <code>.gem</code> files, so a gem left from an earlier build
5465
+ would be packaged inside the next one.</p>
5466
+ <div class="admonition note">
5467
+ <p class="admonition-title">Note</p>
5468
+ <p>A local build omits the offline documentation bundle unless <code>site-local/</code>
5469
+ already exists. CI builds that bundle first. Run <code>rake docs:build:local</code> to
5470
+ match it.</p>
5471
+ </div>
5472
+ <h3 id="generating-the-bill-of-materials">Generating the Bill of Materials</h3>
5473
+ <p><code>rake sbom:build</code> writes both <a href="../project/sbom.html">Software Bill of Materials</a> documents into
5474
+ the repository root. A release generates them the same way.</p>
5475
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>sbom:build
5476
+ <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>sbom:specs
5477
+ </code></pre></div>
5478
+ <p>The documents are never committed, and two mechanisms keep them out. <code>.gitignore</code>
5479
+ covers them, and the gemspec rejects them so a local build cannot package one
5480
+ into the gem it describes.</p>
5481
+ <p>A local document names a development version, for the same reason a locally built
5482
+ gem does. The release version is stamped during the release build.</p>
5483
+ <p>Unpack the result to inspect it.</p>
5484
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a><span class="w"> </span>&gt;<span class="w"> </span>gem<span class="w"> </span>unpack<span class="w"> </span>ceedling-1.2.0.gem
5485
+ </code></pre></div>
5486
+ <p>The packaged gem deliberately carries <code>spec/</code>, <code>Gemfile</code>, <code>Gemfile.lock</code>, and
5487
+ <code>.rspec</code>. External tooling runs Ceedling's own suites against the released gem
5488
+ as part of validating installations and environments. These files make that
5489
+ possible.</p>
5490
+ <p>Development-only tasks refuse to run from an unpacked gem. Profiling, linting, and
5491
+ the gem tasks each need repository files the gem does not carry, so they report
5492
+ that rather than failing on a missing file. The <code>specs:*</code> tasks and
5493
+ <code>coverage:report</code> work as normal.</p>
4551
5494
  <h2 id="documentation">Documentation</h2>
4552
- <p>Ceedling’s documentation is built with <a href="https://www.mkdocs.org">MkDocs</a> + <a href="https://squidfunk.github.io/mkdocs-material/">Material theme</a> and versioned
5495
+ <h3 id="developer-documentation">Developer documentation</h3>
5496
+ <p>The Ceedling codebase is <a href="#code-organization">organized in directories</a>.</p>
5497
+ <p>Major subsystems are organized in directories. Most directories include detailed
5498
+ Markdown documents that provide both high-level overviews and detailed breakdowns
5499
+ of the subsystem.</p>
5500
+ <h3 id="user-documentation">User documentation</h3>
5501
+ <p>Ceedling’s user documentation is built with <a href="https://www.mkdocs.org">MkDocs</a> + <a href="https://squidfunk.github.io/mkdocs-material/">Material theme</a> and versioned
4553
5502
  with <a href="https://github.com/jimporter/mike">mike</a>. All Markdown source lives under <code>docs/mkdocs/</code>. The public site
4554
5503
  configuration is in <code>mkdocs.yml</code> while the local site bundle configuration is in
4555
5504
  <code>mkdocs.local.yml</code>.</p>
4556
5505
  <p><strong>First-time setup</strong> (installs MkDocs, Material, and mike into the container):</p>
4557
- <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>docs:install
5506
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a><span class="w"> </span>&gt;<span class="w"> </span>rake<span class="w"> </span>docs:install
4558
5507
  </code></pre></div>
4559
5508
  <p><strong>Available Rake tasks:</strong></p>
4560
5509
  <table>
@@ -4578,12 +5527,28 @@ configuration is in <code>mkdocs.yml</code> while the local site bundle configur
4578
5527
  <td>Build the site to be served in strict mode — fails on broken links or warnings</td>
4579
5528
  </tr>
4580
5529
  <tr>
5530
+ <td><code>rake docs:build:prerelease</code></td>
5531
+ <td>Build the prerelease site in strict mode, for local validation</td>
5532
+ </tr>
5533
+ <tr>
4581
5534
  <td><code>rake docs:serve</code></td>
4582
5535
  <td>Serve plain MkDocs site locally on port 8000</td>
4583
5536
  </tr>
4584
5537
  <tr>
4585
- <td><code>rake docs:deploy</code></td>
4586
- <td>Deploy <code>dev</code> version to local <code>gh-pages</code> branch (no remote push)</td>
5538
+ <td><code>rake docs:serve:prerelease</code></td>
5539
+ <td>Serve the prerelease site locally on port 8000, for docs development</td>
5540
+ </tr>
5541
+ <tr>
5542
+ <td><code>rake docs:deploy:prerelease[version]</code></td>
5543
+ <td>Deploy a prerelease build to Github Pages under <code>version</code> (usage: <code>rake docs:deploy:prerelease[1.2.0]</code>)</td>
5544
+ </tr>
5545
+ <tr>
5546
+ <td><code>rake docs:deploy:release[version]</code></td>
5547
+ <td>Deploy a release build to Github Pages under <code>version</code>, without changing <code>latest</code> (usage: <code>rake docs:deploy:release[1.1.0]</code>)</td>
5548
+ </tr>
5549
+ <tr>
5550
+ <td><code>rake docs:deploy:release:latest[version]</code></td>
5551
+ <td>Deploy a release build to Github Pages under <code>version</code> and set it as <code>latest</code> (usage: <code>rake docs:deploy:release:latest[1.2.0]</code>)</td>
4587
5552
  </tr>
4588
5553
  <tr>
4589
5554
  <td><code>rake docs:preview</code></td>
@@ -4594,7 +5559,7 @@ configuration is in <code>mkdocs.yml</code> while the local site bundle configur
4594
5559
  <p><strong>Browser preview in VS Code:</strong> When <code>mkdocs serve</code> or <code>mike serve</code> binds to
4595
5560
  port 8000, VS Code detects it and shows a notification. The <strong>Ports</strong> panel also
4596
5561
  provides an <strong>Open in Browser</strong> button.</p>
4597
- <p><strong>Hosted site:</strong> <a href="https://throwtheswitch.github.io/Ceedling/">https://throwtheswitch.github.io/Ceedling/</a></p>
5562
+ <p><strong>Hosted site:</strong> <a href="https://docs.throwtheswitch.org/Ceedling/">https://docs.throwtheswitch.org/Ceedling/</a></p>
4598
5563
  <h2 id="bin-vs-lib"><code>bin/</code> vs. <code>lib/</code></h2>
4599
5564
  <p>Most of Ceedling’s functionality is contained in the application code residing
4600
5565
  in <code>lib/</code>. Ceedling’s command line handling, startup configuration, project
@@ -4684,10 +5649,10 @@ working on.</p>
4684
5649
 
4685
5650
 
4686
5651
 
4687
- <script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
5652
+ <script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
4688
5653
 
4689
5654
 
4690
- <script src="../assets/javascripts/bundle.d7400e89.min.js"></script>
5655
+ <script src="../assets/javascripts/bundle.c21346df.min.js"></script>
4691
5656
 
4692
5657
 
4693
5658
  </body>