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
@@ -21,7 +21,7 @@
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
 
@@ -332,7 +342,7 @@
332
342
 
333
343
 
334
344
  <li class="md-tabs__item">
335
- <a href="../project/release-history.html" class="md-tabs__link">
345
+ <a href="../project/index.html" class="md-tabs__link">
336
346
 
337
347
 
338
348
 
@@ -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
 
@@ -2412,6 +2452,8 @@
2412
2452
 
2413
2453
 
2414
2454
 
2455
+
2456
+
2415
2457
 
2416
2458
 
2417
2459
 
@@ -3064,14 +3106,42 @@
3064
3106
  </li>
3065
3107
 
3066
3108
  <li class="md-nav__item">
3067
- <a href="#setup" class="md-nav__link">
3109
+ <a href="#installation-set-up" class="md-nav__link">
3110
+ <span class="md-ellipsis">
3111
+
3112
+ Installation &amp; set up
3113
+
3114
+ </span>
3115
+ </a>
3116
+
3117
+ <nav class="md-nav" aria-label="Installation &amp; set up">
3118
+ <ul class="md-nav__list">
3119
+
3120
+ <li class="md-nav__item">
3121
+ <a href="#installation" class="md-nav__link">
3122
+ <span class="md-ellipsis">
3123
+
3124
+ Installation
3125
+
3126
+ </span>
3127
+ </a>
3128
+
3129
+ </li>
3130
+
3131
+ <li class="md-nav__item">
3132
+ <a href="#enable-the-plugin" class="md-nav__link">
3068
3133
  <span class="md-ellipsis">
3069
3134
 
3070
- Setup
3135
+ Enable the plugin
3071
3136
 
3072
3137
  </span>
3073
3138
  </a>
3074
3139
 
3140
+ </li>
3141
+
3142
+ </ul>
3143
+ </nav>
3144
+
3075
3145
  </li>
3076
3146
 
3077
3147
  <li class="md-nav__item">
@@ -3090,7 +3160,95 @@
3090
3160
  <a href="#reports" class="md-nav__link">
3091
3161
  <span class="md-ellipsis">
3092
3162
 
3093
- Reports
3163
+ :reports:
3164
+
3165
+ </span>
3166
+ </a>
3167
+
3168
+ </li>
3169
+
3170
+ <li class="md-nav__item">
3171
+ <a href="#fail_build" class="md-nav__link">
3172
+ <span class="md-ellipsis">
3173
+
3174
+ :fail_build:
3175
+
3176
+ </span>
3177
+ </a>
3178
+
3179
+ </li>
3180
+
3181
+ <li class="md-nav__item">
3182
+ <a href="#fail_build_severities" class="md-nav__link">
3183
+ <span class="md-ellipsis">
3184
+
3185
+ :fail_build_severities:
3186
+
3187
+ </span>
3188
+ </a>
3189
+
3190
+ </li>
3191
+
3192
+ <li class="md-nav__item">
3193
+ <a href="#html_title" class="md-nav__link">
3194
+ <span class="md-ellipsis">
3195
+
3196
+ :html_title:
3197
+
3198
+ </span>
3199
+ </a>
3200
+
3201
+ </li>
3202
+
3203
+ <li class="md-nav__item">
3204
+ <a href="#sarif_artifact_filename" class="md-nav__link">
3205
+ <span class="md-ellipsis">
3206
+
3207
+ :sarif_artifact_filename:
3208
+
3209
+ </span>
3210
+ </a>
3211
+
3212
+ </li>
3213
+
3214
+ <li class="md-nav__item">
3215
+ <a href="#text_artifact_filename" class="md-nav__link">
3216
+ <span class="md-ellipsis">
3217
+
3218
+ :text_artifact_filename:
3219
+
3220
+ </span>
3221
+ </a>
3222
+
3223
+ </li>
3224
+
3225
+ <li class="md-nav__item">
3226
+ <a href="#template" class="md-nav__link">
3227
+ <span class="md-ellipsis">
3228
+
3229
+ :template:
3230
+
3231
+ </span>
3232
+ </a>
3233
+
3234
+ </li>
3235
+
3236
+ <li class="md-nav__item">
3237
+ <a href="#xml_artifact_filename" class="md-nav__link">
3238
+ <span class="md-ellipsis">
3239
+
3240
+ :xml_artifact_filename:
3241
+
3242
+ </span>
3243
+ </a>
3244
+
3245
+ </li>
3246
+
3247
+ <li class="md-nav__item">
3248
+ <a href="#xml_report_version" class="md-nav__link">
3249
+ <span class="md-ellipsis">
3250
+
3251
+ :xml_report_version:
3094
3252
 
3095
3253
  </span>
3096
3254
  </a>
@@ -3098,10 +3256,10 @@
3098
3256
  </li>
3099
3257
 
3100
3258
  <li class="md-nav__item">
3101
- <a href="#import-project-file" class="md-nav__link">
3259
+ <a href="#project" class="md-nav__link">
3102
3260
  <span class="md-ellipsis">
3103
3261
 
3104
- Import project file
3262
+ :project:
3105
3263
 
3106
3264
  </span>
3107
3265
  </a>
@@ -3109,10 +3267,21 @@
3109
3267
  </li>
3110
3268
 
3111
3269
  <li class="md-nav__item">
3112
- <a href="#preprocessor-defines" class="md-nav__link">
3270
+ <a href="#defines" class="md-nav__link">
3113
3271
  <span class="md-ellipsis">
3114
3272
 
3115
- Preprocessor defines
3273
+ :defines:
3274
+
3275
+ </span>
3276
+ </a>
3277
+
3278
+ </li>
3279
+
3280
+ <li class="md-nav__item">
3281
+ <a href="#undefines" class="md-nav__link">
3282
+ <span class="md-ellipsis">
3283
+
3284
+ :undefines:
3116
3285
 
3117
3286
  </span>
3118
3287
  </a>
@@ -3123,7 +3292,7 @@
3123
3292
  <a href="#includes" class="md-nav__link">
3124
3293
  <span class="md-ellipsis">
3125
3294
 
3126
- Includes
3295
+ :includes:
3127
3296
 
3128
3297
  </span>
3129
3298
  </a>
@@ -3134,7 +3303,7 @@
3134
3303
  <a href="#excludes" class="md-nav__link">
3135
3304
  <span class="md-ellipsis">
3136
3305
 
3137
- Excludes
3306
+ :excludes:
3138
3307
 
3139
3308
  </span>
3140
3309
  </a>
@@ -3145,7 +3314,7 @@
3145
3314
  <a href="#platform" class="md-nav__link">
3146
3315
  <span class="md-ellipsis">
3147
3316
 
3148
- Platform
3317
+ :platform:
3149
3318
 
3150
3319
  </span>
3151
3320
  </a>
@@ -3156,7 +3325,7 @@
3156
3325
  <a href="#standard" class="md-nav__link">
3157
3326
  <span class="md-ellipsis">
3158
3327
 
3159
- Standard
3328
+ :standard:
3160
3329
 
3161
3330
  </span>
3162
3331
  </a>
@@ -3164,10 +3333,10 @@
3164
3333
  </li>
3165
3334
 
3166
3335
  <li class="md-nav__item">
3167
- <a href="#check-level" class="md-nav__link">
3336
+ <a href="#check_level" class="md-nav__link">
3168
3337
  <span class="md-ellipsis">
3169
3338
 
3170
- Check level
3339
+ :check_level:
3171
3340
 
3172
3341
  </span>
3173
3342
  </a>
@@ -3178,7 +3347,29 @@
3178
3347
  <a href="#addons" class="md-nav__link">
3179
3348
  <span class="md-ellipsis">
3180
3349
 
3181
- Addons
3350
+ :addons:
3351
+
3352
+ </span>
3353
+ </a>
3354
+
3355
+ </li>
3356
+
3357
+ <li class="md-nav__item">
3358
+ <a href="#enable_checks" class="md-nav__link">
3359
+ <span class="md-ellipsis">
3360
+
3361
+ :enable_checks:
3362
+
3363
+ </span>
3364
+ </a>
3365
+
3366
+ </li>
3367
+
3368
+ <li class="md-nav__item">
3369
+ <a href="#disable_checks" class="md-nav__link">
3370
+ <span class="md-ellipsis">
3371
+
3372
+ :disable_checks:
3182
3373
 
3183
3374
  </span>
3184
3375
  </a>
@@ -3186,10 +3377,10 @@
3186
3377
  </li>
3187
3378
 
3188
3379
  <li class="md-nav__item">
3189
- <a href="#checks" class="md-nav__link">
3380
+ <a href="#inline_suppressions" class="md-nav__link">
3190
3381
  <span class="md-ellipsis">
3191
3382
 
3192
- Checks
3383
+ :inline_suppressions:
3193
3384
 
3194
3385
  </span>
3195
3386
  </a>
@@ -3200,7 +3391,7 @@
3200
3391
  <a href="#suppressions" class="md-nav__link">
3201
3392
  <span class="md-ellipsis">
3202
3393
 
3203
- Suppressions
3394
+ :suppressions:
3204
3395
 
3205
3396
  </span>
3206
3397
  </a>
@@ -3208,10 +3399,10 @@
3208
3399
  </li>
3209
3400
 
3210
3401
  <li class="md-nav__item">
3211
- <a href="#library-configuration" class="md-nav__link">
3402
+ <a href="#libraries" class="md-nav__link">
3212
3403
  <span class="md-ellipsis">
3213
3404
 
3214
- Library configuration
3405
+ :libraries:
3215
3406
 
3216
3407
  </span>
3217
3408
  </a>
@@ -3222,7 +3413,7 @@
3222
3413
  <a href="#rules" class="md-nav__link">
3223
3414
  <span class="md-ellipsis">
3224
3415
 
3225
- Rules
3416
+ :rules:
3226
3417
 
3227
3418
  </span>
3228
3419
  </a>
@@ -3230,10 +3421,10 @@
3230
3421
  </li>
3231
3422
 
3232
3423
  <li class="md-nav__item">
3233
- <a href="#extra-options" class="md-nav__link">
3424
+ <a href="#options" class="md-nav__link">
3234
3425
  <span class="md-ellipsis">
3235
3426
 
3236
- Extra options
3427
+ :options:
3237
3428
 
3238
3429
  </span>
3239
3430
  </a>
@@ -3277,11 +3468,55 @@
3277
3468
  </span>
3278
3469
  </a>
3279
3470
 
3471
+ </li>
3472
+
3473
+ <li class="md-nav__item">
3474
+ <a href="#list-suppression-files" class="md-nav__link">
3475
+ <span class="md-ellipsis">
3476
+
3477
+ List suppression files
3478
+
3479
+ </span>
3480
+ </a>
3481
+
3280
3482
  </li>
3281
3483
 
3282
3484
  </ul>
3283
3485
  </nav>
3284
3486
 
3487
+ </li>
3488
+
3489
+ <li class="md-nav__item">
3490
+ <a href="#artifacts" class="md-nav__link">
3491
+ <span class="md-ellipsis">
3492
+
3493
+ Artifacts
3494
+
3495
+ </span>
3496
+ </a>
3497
+
3498
+ </li>
3499
+
3500
+ <li class="md-nav__item">
3501
+ <a href="#console-output" class="md-nav__link">
3502
+ <span class="md-ellipsis">
3503
+
3504
+ Console output
3505
+
3506
+ </span>
3507
+ </a>
3508
+
3509
+ </li>
3510
+
3511
+ <li class="md-nav__item">
3512
+ <a href="#interpreting-results" class="md-nav__link">
3513
+ <span class="md-ellipsis">
3514
+
3515
+ Interpreting results
3516
+
3517
+ </span>
3518
+ </a>
3519
+
3285
3520
  </li>
3286
3521
 
3287
3522
  </ul>
@@ -3328,14 +3563,14 @@
3328
3563
 
3329
3564
 
3330
3565
  <li class="md-nav__item">
3331
- <a href="bullseye.html" class="md-nav__link">
3566
+ <a href="sanitize.html" class="md-nav__link">
3332
3567
 
3333
3568
 
3334
3569
 
3335
3570
  <span class="md-ellipsis">
3336
3571
 
3337
3572
 
3338
- Bullseye (Coverage)
3573
+ Sanitize (ASan, UBSan & Leaks)
3339
3574
 
3340
3575
 
3341
3576
 
@@ -3355,15 +3590,43 @@
3355
3590
 
3356
3591
 
3357
3592
 
3358
- <li class="md-nav__item">
3359
- <a href="fff.html" class="md-nav__link">
3593
+
3594
+
3595
+
3596
+
3597
+
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3604
+
3605
+
3606
+
3360
3607
 
3608
+
3609
+
3610
+
3611
+
3612
+
3613
+
3614
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
3615
+
3616
+
3617
+
3618
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
3619
+
3620
+
3621
+ <div class="md-nav__link md-nav__container">
3622
+ <a href="bullseye/index.html" class="md-nav__link ">
3623
+
3361
3624
 
3362
3625
 
3363
3626
  <span class="md-ellipsis">
3364
3627
 
3365
3628
 
3366
- FFF (Fake Functions)
3629
+ Bullseye (Coverage)
3367
3630
 
3368
3631
 
3369
3632
 
@@ -3371,10 +3634,26 @@
3371
3634
 
3372
3635
 
3373
3636
 
3374
- </a>
3375
- </li>
3637
+ </a>
3638
+
3639
+
3640
+ <label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="">
3641
+ <span class="md-nav__icon md-icon"></span>
3642
+ </label>
3643
+
3644
+ </div>
3645
+
3646
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
3647
+ <label class="md-nav__title" for="__nav_6_13">
3648
+ <span class="md-nav__icon md-icon"></span>
3649
+
3650
+
3651
+ Bullseye (Coverage)
3376
3652
 
3377
3653
 
3654
+ </label>
3655
+ <ul class="md-nav__list" data-md-scrollfix>
3656
+
3378
3657
 
3379
3658
 
3380
3659
 
@@ -3384,14 +3663,14 @@
3384
3663
 
3385
3664
 
3386
3665
  <li class="md-nav__item">
3387
- <a href="command-hooks.html" class="md-nav__link">
3666
+ <a href="bullseye/licensing.html" class="md-nav__link">
3388
3667
 
3389
3668
 
3390
3669
 
3391
3670
  <span class="md-ellipsis">
3392
3671
 
3393
3672
 
3394
- Command Hooks
3673
+ Licensing
3395
3674
 
3396
3675
 
3397
3676
 
@@ -3405,6 +3684,14 @@
3405
3684
 
3406
3685
 
3407
3686
 
3687
+ </ul>
3688
+ </nav>
3689
+
3690
+ </li>
3691
+
3692
+
3693
+
3694
+
3408
3695
 
3409
3696
 
3410
3697
 
@@ -3412,14 +3699,14 @@
3412
3699
 
3413
3700
 
3414
3701
  <li class="md-nav__item">
3415
- <a href="compile-commands-json-db.html" class="md-nav__link">
3702
+ <a href="fff.html" class="md-nav__link">
3416
3703
 
3417
3704
 
3418
3705
 
3419
3706
  <span class="md-ellipsis">
3420
3707
 
3421
3708
 
3422
- Compile Commands JSON DB
3709
+ FFF (Fake Functions)
3423
3710
 
3424
3711
 
3425
3712
 
@@ -3440,7 +3727,63 @@
3440
3727
 
3441
3728
 
3442
3729
  <li class="md-nav__item">
3443
- <a href="beep.html" class="md-nav__link">
3730
+ <a href="command-hooks.html" class="md-nav__link">
3731
+
3732
+
3733
+
3734
+ <span class="md-ellipsis">
3735
+
3736
+
3737
+ Command Hooks
3738
+
3739
+
3740
+
3741
+ </span>
3742
+
3743
+
3744
+
3745
+ </a>
3746
+ </li>
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+ <li class="md-nav__item">
3758
+ <a href="compile-commands-json-db.html" class="md-nav__link">
3759
+
3760
+
3761
+
3762
+ <span class="md-ellipsis">
3763
+
3764
+
3765
+ Compile Commands JSON DB
3766
+
3767
+
3768
+
3769
+ </span>
3770
+
3771
+
3772
+
3773
+ </a>
3774
+ </li>
3775
+
3776
+
3777
+
3778
+
3779
+
3780
+
3781
+
3782
+
3783
+
3784
+
3785
+ <li class="md-nav__item">
3786
+ <a href="beep.html" class="md-nav__link">
3444
3787
 
3445
3788
 
3446
3789
 
@@ -3818,6 +4161,12 @@
3818
4161
 
3819
4162
 
3820
4163
 
4164
+
4165
+
4166
+
4167
+
4168
+
4169
+
3821
4170
 
3822
4171
 
3823
4172
 
@@ -3837,8 +4186,9 @@
3837
4186
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
3838
4187
 
3839
4188
 
3840
- <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
3841
-
4189
+ <div class="md-nav__link md-nav__container">
4190
+ <a href="../project/index.html" class="md-nav__link ">
4191
+
3842
4192
 
3843
4193
 
3844
4194
  <span class="md-ellipsis">
@@ -3852,8 +4202,14 @@
3852
4202
 
3853
4203
 
3854
4204
 
3855
- <span class="md-nav__icon md-icon"></span>
3856
- </label>
4205
+ </a>
4206
+
4207
+
4208
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
4209
+ <span class="md-nav__icon md-icon"></span>
4210
+ </label>
4211
+
4212
+ </div>
3857
4213
 
3858
4214
  <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
3859
4215
  <label class="md-nav__title" for="__nav_8">
@@ -3867,6 +4223,8 @@
3867
4223
  <ul class="md-nav__list" data-md-scrollfix>
3868
4224
 
3869
4225
 
4226
+
4227
+
3870
4228
 
3871
4229
 
3872
4230
 
@@ -3900,6 +4258,34 @@
3900
4258
 
3901
4259
 
3902
4260
 
4261
+ <li class="md-nav__item">
4262
+ <a href="../project/sbom.html" class="md-nav__link">
4263
+
4264
+
4265
+
4266
+ <span class="md-ellipsis">
4267
+
4268
+
4269
+ Software Bill of Materials
4270
+
4271
+
4272
+
4273
+ </span>
4274
+
4275
+
4276
+
4277
+ </a>
4278
+ </li>
4279
+
4280
+
4281
+
4282
+
4283
+
4284
+
4285
+
4286
+
4287
+
4288
+
3903
4289
  <li class="md-nav__item">
3904
4290
  <a href="../project/upgrade.html" class="md-nav__link">
3905
4291
 
@@ -3971,6 +4357,8 @@
3971
4357
 
3972
4358
 
3973
4359
 
4360
+
4361
+
3974
4362
 
3975
4363
 
3976
4364
 
@@ -4061,6 +4449,34 @@
4061
4449
 
4062
4450
 
4063
4451
 
4452
+ <li class="md-nav__item">
4453
+ <a href="../development/releases.html" class="md-nav__link">
4454
+
4455
+
4456
+
4457
+ <span class="md-ellipsis">
4458
+
4459
+
4460
+ Branching & Releases
4461
+
4462
+
4463
+
4464
+ </span>
4465
+
4466
+
4467
+
4468
+ </a>
4469
+ </li>
4470
+
4471
+
4472
+
4473
+
4474
+
4475
+
4476
+
4477
+
4478
+
4479
+
4064
4480
 
4065
4481
 
4066
4482
 
@@ -4087,7 +4503,7 @@
4087
4503
 
4088
4504
 
4089
4505
 
4090
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_3" >
4506
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
4091
4507
 
4092
4508
 
4093
4509
  <div class="md-nav__link md-nav__container">
@@ -4109,14 +4525,14 @@
4109
4525
  </a>
4110
4526
 
4111
4527
 
4112
- <label class="md-nav__link " for="__nav_10_3" id="__nav_10_3_label" tabindex="0">
4528
+ <label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="0">
4113
4529
  <span class="md-nav__icon md-icon"></span>
4114
4530
  </label>
4115
4531
 
4116
4532
  </div>
4117
4533
 
4118
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_3_label" aria-expanded="false">
4119
- <label class="md-nav__title" for="__nav_10_3">
4534
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
4535
+ <label class="md-nav__title" for="__nav_10_4">
4120
4536
  <span class="md-nav__icon md-icon"></span>
4121
4537
 
4122
4538
 
@@ -4265,14 +4681,42 @@
4265
4681
  </li>
4266
4682
 
4267
4683
  <li class="md-nav__item">
4268
- <a href="#setup" class="md-nav__link">
4684
+ <a href="#installation-set-up" class="md-nav__link">
4685
+ <span class="md-ellipsis">
4686
+
4687
+ Installation &amp; set up
4688
+
4689
+ </span>
4690
+ </a>
4691
+
4692
+ <nav class="md-nav" aria-label="Installation &amp; set up">
4693
+ <ul class="md-nav__list">
4694
+
4695
+ <li class="md-nav__item">
4696
+ <a href="#installation" class="md-nav__link">
4697
+ <span class="md-ellipsis">
4698
+
4699
+ Installation
4700
+
4701
+ </span>
4702
+ </a>
4703
+
4704
+ </li>
4705
+
4706
+ <li class="md-nav__item">
4707
+ <a href="#enable-the-plugin" class="md-nav__link">
4269
4708
  <span class="md-ellipsis">
4270
4709
 
4271
- Setup
4710
+ Enable the plugin
4272
4711
 
4273
4712
  </span>
4274
4713
  </a>
4275
4714
 
4715
+ </li>
4716
+
4717
+ </ul>
4718
+ </nav>
4719
+
4276
4720
  </li>
4277
4721
 
4278
4722
  <li class="md-nav__item">
@@ -4291,7 +4735,7 @@
4291
4735
  <a href="#reports" class="md-nav__link">
4292
4736
  <span class="md-ellipsis">
4293
4737
 
4294
- Reports
4738
+ :reports:
4295
4739
 
4296
4740
  </span>
4297
4741
  </a>
@@ -4299,10 +4743,10 @@
4299
4743
  </li>
4300
4744
 
4301
4745
  <li class="md-nav__item">
4302
- <a href="#import-project-file" class="md-nav__link">
4746
+ <a href="#fail_build" class="md-nav__link">
4303
4747
  <span class="md-ellipsis">
4304
4748
 
4305
- Import project file
4749
+ :fail_build:
4306
4750
 
4307
4751
  </span>
4308
4752
  </a>
@@ -4310,10 +4754,109 @@
4310
4754
  </li>
4311
4755
 
4312
4756
  <li class="md-nav__item">
4313
- <a href="#preprocessor-defines" class="md-nav__link">
4757
+ <a href="#fail_build_severities" class="md-nav__link">
4314
4758
  <span class="md-ellipsis">
4315
4759
 
4316
- Preprocessor defines
4760
+ :fail_build_severities:
4761
+
4762
+ </span>
4763
+ </a>
4764
+
4765
+ </li>
4766
+
4767
+ <li class="md-nav__item">
4768
+ <a href="#html_title" class="md-nav__link">
4769
+ <span class="md-ellipsis">
4770
+
4771
+ :html_title:
4772
+
4773
+ </span>
4774
+ </a>
4775
+
4776
+ </li>
4777
+
4778
+ <li class="md-nav__item">
4779
+ <a href="#sarif_artifact_filename" class="md-nav__link">
4780
+ <span class="md-ellipsis">
4781
+
4782
+ :sarif_artifact_filename:
4783
+
4784
+ </span>
4785
+ </a>
4786
+
4787
+ </li>
4788
+
4789
+ <li class="md-nav__item">
4790
+ <a href="#text_artifact_filename" class="md-nav__link">
4791
+ <span class="md-ellipsis">
4792
+
4793
+ :text_artifact_filename:
4794
+
4795
+ </span>
4796
+ </a>
4797
+
4798
+ </li>
4799
+
4800
+ <li class="md-nav__item">
4801
+ <a href="#template" class="md-nav__link">
4802
+ <span class="md-ellipsis">
4803
+
4804
+ :template:
4805
+
4806
+ </span>
4807
+ </a>
4808
+
4809
+ </li>
4810
+
4811
+ <li class="md-nav__item">
4812
+ <a href="#xml_artifact_filename" class="md-nav__link">
4813
+ <span class="md-ellipsis">
4814
+
4815
+ :xml_artifact_filename:
4816
+
4817
+ </span>
4818
+ </a>
4819
+
4820
+ </li>
4821
+
4822
+ <li class="md-nav__item">
4823
+ <a href="#xml_report_version" class="md-nav__link">
4824
+ <span class="md-ellipsis">
4825
+
4826
+ :xml_report_version:
4827
+
4828
+ </span>
4829
+ </a>
4830
+
4831
+ </li>
4832
+
4833
+ <li class="md-nav__item">
4834
+ <a href="#project" class="md-nav__link">
4835
+ <span class="md-ellipsis">
4836
+
4837
+ :project:
4838
+
4839
+ </span>
4840
+ </a>
4841
+
4842
+ </li>
4843
+
4844
+ <li class="md-nav__item">
4845
+ <a href="#defines" class="md-nav__link">
4846
+ <span class="md-ellipsis">
4847
+
4848
+ :defines:
4849
+
4850
+ </span>
4851
+ </a>
4852
+
4853
+ </li>
4854
+
4855
+ <li class="md-nav__item">
4856
+ <a href="#undefines" class="md-nav__link">
4857
+ <span class="md-ellipsis">
4858
+
4859
+ :undefines:
4317
4860
 
4318
4861
  </span>
4319
4862
  </a>
@@ -4324,7 +4867,7 @@
4324
4867
  <a href="#includes" class="md-nav__link">
4325
4868
  <span class="md-ellipsis">
4326
4869
 
4327
- Includes
4870
+ :includes:
4328
4871
 
4329
4872
  </span>
4330
4873
  </a>
@@ -4335,7 +4878,7 @@
4335
4878
  <a href="#excludes" class="md-nav__link">
4336
4879
  <span class="md-ellipsis">
4337
4880
 
4338
- Excludes
4881
+ :excludes:
4339
4882
 
4340
4883
  </span>
4341
4884
  </a>
@@ -4346,7 +4889,7 @@
4346
4889
  <a href="#platform" class="md-nav__link">
4347
4890
  <span class="md-ellipsis">
4348
4891
 
4349
- Platform
4892
+ :platform:
4350
4893
 
4351
4894
  </span>
4352
4895
  </a>
@@ -4357,7 +4900,7 @@
4357
4900
  <a href="#standard" class="md-nav__link">
4358
4901
  <span class="md-ellipsis">
4359
4902
 
4360
- Standard
4903
+ :standard:
4361
4904
 
4362
4905
  </span>
4363
4906
  </a>
@@ -4365,10 +4908,10 @@
4365
4908
  </li>
4366
4909
 
4367
4910
  <li class="md-nav__item">
4368
- <a href="#check-level" class="md-nav__link">
4911
+ <a href="#check_level" class="md-nav__link">
4369
4912
  <span class="md-ellipsis">
4370
4913
 
4371
- Check level
4914
+ :check_level:
4372
4915
 
4373
4916
  </span>
4374
4917
  </a>
@@ -4379,7 +4922,29 @@
4379
4922
  <a href="#addons" class="md-nav__link">
4380
4923
  <span class="md-ellipsis">
4381
4924
 
4382
- Addons
4925
+ :addons:
4926
+
4927
+ </span>
4928
+ </a>
4929
+
4930
+ </li>
4931
+
4932
+ <li class="md-nav__item">
4933
+ <a href="#enable_checks" class="md-nav__link">
4934
+ <span class="md-ellipsis">
4935
+
4936
+ :enable_checks:
4937
+
4938
+ </span>
4939
+ </a>
4940
+
4941
+ </li>
4942
+
4943
+ <li class="md-nav__item">
4944
+ <a href="#disable_checks" class="md-nav__link">
4945
+ <span class="md-ellipsis">
4946
+
4947
+ :disable_checks:
4383
4948
 
4384
4949
  </span>
4385
4950
  </a>
@@ -4387,10 +4952,10 @@
4387
4952
  </li>
4388
4953
 
4389
4954
  <li class="md-nav__item">
4390
- <a href="#checks" class="md-nav__link">
4955
+ <a href="#inline_suppressions" class="md-nav__link">
4391
4956
  <span class="md-ellipsis">
4392
4957
 
4393
- Checks
4958
+ :inline_suppressions:
4394
4959
 
4395
4960
  </span>
4396
4961
  </a>
@@ -4401,7 +4966,7 @@
4401
4966
  <a href="#suppressions" class="md-nav__link">
4402
4967
  <span class="md-ellipsis">
4403
4968
 
4404
- Suppressions
4969
+ :suppressions:
4405
4970
 
4406
4971
  </span>
4407
4972
  </a>
@@ -4409,10 +4974,10 @@
4409
4974
  </li>
4410
4975
 
4411
4976
  <li class="md-nav__item">
4412
- <a href="#library-configuration" class="md-nav__link">
4977
+ <a href="#libraries" class="md-nav__link">
4413
4978
  <span class="md-ellipsis">
4414
4979
 
4415
- Library configuration
4980
+ :libraries:
4416
4981
 
4417
4982
  </span>
4418
4983
  </a>
@@ -4423,7 +4988,7 @@
4423
4988
  <a href="#rules" class="md-nav__link">
4424
4989
  <span class="md-ellipsis">
4425
4990
 
4426
- Rules
4991
+ :rules:
4427
4992
 
4428
4993
  </span>
4429
4994
  </a>
@@ -4431,10 +4996,10 @@
4431
4996
  </li>
4432
4997
 
4433
4998
  <li class="md-nav__item">
4434
- <a href="#extra-options" class="md-nav__link">
4999
+ <a href="#options" class="md-nav__link">
4435
5000
  <span class="md-ellipsis">
4436
5001
 
4437
- Extra options
5002
+ :options:
4438
5003
 
4439
5004
  </span>
4440
5005
  </a>
@@ -4478,11 +5043,55 @@
4478
5043
  </span>
4479
5044
  </a>
4480
5045
 
5046
+ </li>
5047
+
5048
+ <li class="md-nav__item">
5049
+ <a href="#list-suppression-files" class="md-nav__link">
5050
+ <span class="md-ellipsis">
5051
+
5052
+ List suppression files
5053
+
5054
+ </span>
5055
+ </a>
5056
+
4481
5057
  </li>
4482
5058
 
4483
5059
  </ul>
4484
5060
  </nav>
4485
5061
 
5062
+ </li>
5063
+
5064
+ <li class="md-nav__item">
5065
+ <a href="#artifacts" class="md-nav__link">
5066
+ <span class="md-ellipsis">
5067
+
5068
+ Artifacts
5069
+
5070
+ </span>
5071
+ </a>
5072
+
5073
+ </li>
5074
+
5075
+ <li class="md-nav__item">
5076
+ <a href="#console-output" class="md-nav__link">
5077
+ <span class="md-ellipsis">
5078
+
5079
+ Console output
5080
+
5081
+ </span>
5082
+ </a>
5083
+
5084
+ </li>
5085
+
5086
+ <li class="md-nav__item">
5087
+ <a href="#interpreting-results" class="md-nav__link">
5088
+ <span class="md-ellipsis">
5089
+
5090
+ Interpreting results
5091
+
5092
+ </span>
5093
+ </a>
5094
+
4486
5095
  </li>
4487
5096
 
4488
5097
  </ul>
@@ -4554,256 +5163,452 @@
4554
5163
 
4555
5164
 
4556
5165
  <h1 id="cppcheck">Cppcheck</h1>
4557
- <p>Adds Ceedling tasks to execute Cppcheck static analysis, helping detect
4558
- undefined behavior, dangerous code patterns, and style issues across your
4559
- project or individual files.</p>
5166
+ <p>Adds Ceedling tasks to run <a href="https://cppcheck.sourceforge.io">Cppcheck</a> static analysis. Cppcheck finds undefined
5167
+ behavior, dangerous code patterns, and style issues across your project or in a
5168
+ single file, without running your code.</p>
5169
+ <div class="admonition note">
5170
+ <p class="admonition-title">Note</p>
5171
+ <p>A <code>cppcheck:</code> task analyzes source. It builds and runs nothing, so it is not
5172
+ a <a href="../getting-started/builds.html">delta build</a> and shares no state with your
5173
+ <code>test:</code> builds.</p>
5174
+ </div>
5175
+ <hr />
4560
5176
  <h2 id="plugin-overview">Plugin overview</h2>
4561
- <p>The Cppcheck plugin integrates <a href="https://cppcheck.sourceforge.io">Cppcheck</a>
4562
- static analysis into Ceedling, facilitating automated code quality checks as
4563
- part of your development workflow. It provides two analysis modes:</p>
5177
+ <p>The Cppcheck plugin runs <a href="https://cppcheck.sourceforge.io">Cppcheck</a> over your project and writes reports to the
5178
+ build artifacts directory. It provides two analysis modes.</p>
4564
5179
  <ul>
4565
- <li><strong>Whole project analysis</strong>: By running <code>ceedling cppcheck:all</code>, all project
4566
- source files will be analyzed with all checks enabled (<code>--enable=all</code>) and
4567
- configurable reports can be generated in multiple formats.</li>
4568
- <li><strong>Single file analysis</strong>: By running <code>ceedling cppcheck:&lt;filename&gt;</code>, an
4569
- individual source file will be analyzed using the checks configured in the
4570
- <code>:enable_checks</code> list (defaults to <code>style</code>).</li>
5180
+ <li><strong>Whole project analysis</strong>: <code>ceedling cppcheck:all</code> analyzes all project
5181
+ sources with every check enabled (<code>--enable=all</code>) and writes the reports you
5182
+ configure.</li>
5183
+ <li><strong>Single file analysis</strong>: <code>ceedling cppcheck:&lt;filename&gt;</code> analyzes one source
5184
+ file using the checks in <a href="#enable_checks"><code>:enable_checks:</code></a>, and prints
5185
+ findings to the console.</li>
4571
5186
  </ul>
4572
- <p>The plugin supports extensive Cppcheck configuration options such as platform,
4573
- language standard, preprocessor defines, include/exclude paths, and suppression
4574
- management. It also integrates with advanced features like MISRA addons, custom
4575
- check levels, library configuration files, and regular expression rules. All of
4576
- these can be configured in your <code>project.yml</code> file.</p>
4577
- <p>The plugin can produce reports in HTML, SARIF, text, and XML (v2 and v3)
4578
- formats, all stored under the build artifacts directory.</p>
4579
- <p>It also suppoprts using a project file (such as <code>compile_commands.json</code> or a
4580
- Cppcheck GUI project), in which case, the plugin delegates source and include
4581
- path discovery to Cppcheck rather than using Ceedling's own file collection.</p>
4582
- <h2 id="setup">Setup</h2>
4583
- <p>Enable the plugin by adding <code>cppcheck</code> to the enabled plugins list in your
4584
- <code>project.yml</code> file:</p>
4585
- <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nt">:plugins</span><span class="p">:</span>
4586
- <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="w"> </span><span class="nt">:enabled</span><span class="p">:</span>
4587
- <a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">cppcheck</span>
5187
+ <p>Reports are available in HTML, SARIF, text, and XML. The plugin also exposes
5188
+ most of Cppcheck's configuration surface, including platform, language
5189
+ standard, preprocessor defines, include and exclude paths, addons such as
5190
+ MISRA, library configuration files, regular expression rules, and suppression
5191
+ management.</p>
5192
+ <p>A build can be failed on findings. See <a href="#fail_build"><code>:fail_build:</code></a>.</p>
5193
+ <div class="admonition note">
5194
+ <p class="admonition-title">Analysis runs once per report format</p>
5195
+ <p>Cppcheck emits one format per invocation, so each entry in
5196
+ <a href="#reports"><code>:reports:</code></a> costs its own full analysis pass. Cppcheck's own
5197
+ <code>--cppcheck-build-dir</code> cache reduces the cost of passes after the first.</p>
5198
+ </div>
5199
+ <h2 id="installation-set-up">Installation &amp; set up</h2>
5200
+ <h3 id="installation">Installation</h3>
5201
+ <p>You have several options for getting the <code>cppcheck</code> tool working on your
5202
+ system, including one readymade option.</p>
5203
+ <h4 id="linux-package-manager">Linux package manager</h4>
5204
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>cppcheck<span class="w"> </span><span class="c1"># Debian / Ubuntu</span>
5205
+ <a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>sudo<span class="w"> </span>dnf<span class="w"> </span>install<span class="w"> </span>cppcheck<span class="w"> </span><span class="c1"># Fedora / RHEL</span>
4588
5206
  </code></pre></div>
4589
- <h2 id="configuration">Configuration</h2>
4590
- <p>Add <code>cppcheck</code> section to your <code>project.yml</code> specifying configuration options.
4591
- e.g:</p>
4592
- <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4593
- <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="w"> </span><span class="nt">:reports</span><span class="p">:</span>
4594
- <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">html</span>
4595
- <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="nt">:addons</span><span class="p">:</span>
4596
- <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">misra</span>
5207
+ <h4 id="macos">macOS</h4>
5208
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>brew<span class="w"> </span>install<span class="w"> </span>cppcheck
4597
5209
  </code></pre></div>
4598
- <h3 id="reports">Reports</h3>
4599
- <p>Four types of reports are available:</p>
4600
- <ul>
4601
- <li>html</li>
4602
- <li>sarif</li>
4603
- <li>text</li>
4604
- <li>xml (v2 and v3)</li>
4605
- </ul>
4606
- <p>They can be enabled by listing them on the <code>:reports</code> list:</p>
4607
- <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4608
- <a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="w"> </span><span class="nt">:reports</span><span class="p">:</span>
4609
- <a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">text</span>
4610
- <a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">html</span>
5210
+ <h4 id="windows">Windows</h4>
5211
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>choco<span class="w"> </span>install<span class="w"> </span>cppcheck
4611
5212
  </code></pre></div>
4612
- <h4 id="html">HTML</h4>
4613
- <p>HTML title can be configured:</p>
4614
- <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4615
- <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="w"> </span><span class="nt">:html_title</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Awesome Project</span>
5213
+ <p>Alternatively, use the installer from <a href="https://cppcheck.sourceforge.io/#download">Cppcheck's site</a>.</p>
5214
+ <h4 id="build-from-source">Build from source</h4>
5215
+ <p>Source releases are available from <a href="https://github.com/danmar/cppcheck/releases">Cppcheck's GitHub releases</a>.</p>
5216
+ <h4 id="madsciencelab-docker-images"><em>MadScienceLab</em> Docker images</h4>
5217
+ <p>Fully packaged <a href="https://hub.docker.com/repository/docker/throwtheswitch/"><em>MadScienceLab</em> Docker images</a> containing Ruby,
5218
+ Ceedling, the GCC toolchain, and more are available. The <code>-plugins</code> variants
5219
+ of the images come with all of Ceedling's plugin tools preinstalled.</p>
5220
+ <div class="admonition note">
5221
+ <p class="admonition-title">HTML reports need a second tool</p>
5222
+ <p>The <a href="#reports"><code>html</code></a> report is produced by <code>cppcheck-htmlreport</code>, which
5223
+ ships alongside Cppcheck in most distributions. It is optional. Every other
5224
+ report format needs only <code>cppcheck</code> itself.</p>
5225
+ </div>
5226
+ <h3 id="enable-the-plugin">Enable the plugin</h3>
5227
+ <p>Enable the plugin by adding <code>cppcheck</code> to the enabled plugins list in your
5228
+ project configuration:</p>
5229
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="nt">:plugins</span><span class="p">:</span>
5230
+ <a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="w"> </span><span class="nt">:enabled</span><span class="p">:</span>
5231
+ <a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">cppcheck</span>
4616
5232
  </code></pre></div>
4617
- <p><em>Notes:</em></p>
4618
- <ul>
4619
- <li>This report requires the <code>cppcheck-htmlreport</code> tool to be available.</li>
4620
- <li>This report implies the <code>xml</code> report.</li>
4621
- </ul>
4622
- <h4 id="sarif">Sarif</h4>
4623
- <p>Artifact file can be configured:</p>
5233
+ <p>Enabling the plugin alone requires no Cppcheck installation. The executable is
5234
+ only needed when a <code>cppcheck:</code> task actually runs.</p>
5235
+ <h2 id="configuration">Configuration</h2>
5236
+ <p>All settings live in a top-level <code>:cppcheck</code> section of your project file.</p>
4624
5237
  <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4625
- <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="nt">:sarif_artifact_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CppcheckResults.sarif</span>
5238
+ <a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="nt">:reports</span><span class="p">:</span>
5239
+ <a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">html</span>
5240
+ <a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="nt">:addons</span><span class="p">:</span>
5241
+ <a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">misra</span>
4626
5242
  </code></pre></div>
4627
- <h4 id="text">Text</h4>
4628
- <p>Artifact file and output format can be configured:</p>
5243
+ <h3 id="reports"><code>:reports:</code></h3>
5244
+ <p>The report formats to produce. Each entry costs its own analysis pass.</p>
5245
+ <ul>
5246
+ <li><code>html</code> — Browsable HTML. Requires <code>cppcheck-htmlreport</code> and implies <code>xml</code>.</li>
5247
+ <li><code>sarif</code> — SARIF, consumed by many code-scanning dashboards.</li>
5248
+ <li><code>text</code> — Plain text.</li>
5249
+ <li><code>xml</code> — Cppcheck's own XML schema.</li>
5250
+ </ul>
4629
5251
  <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4630
- <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="w"> </span><span class="nt">:text_artifact_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CppcheckResults.txt</span>
4631
- <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="nt">:template</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gcc</span>
5252
+ <a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="w"> </span><span class="nt">:reports</span><span class="p">:</span>
5253
+ <a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">text</span>
5254
+ <a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">html</span>
4632
5255
  </code></pre></div>
4633
- <p><code>:template</code> can be any of the ones included with Cppcheck or custom format string.</p>
4634
- <h4 id="xml">XML</h4>
4635
- <p>Artifact file and XML version can be configured:</p>
5256
+ <p><strong>Default:</strong> <code>[]</code> (no reports, so <code>cppcheck:all</code> analyzes nothing and says so)</p>
5257
+ <h3 id="fail_build"><code>:fail_build:</code></h3>
5258
+ <p>When <code>true</code>, findings matching <a href="#fail_build_severities"><code>:fail_build_severities:</code></a>
5259
+ fail the build. Enabling this implies the <code>xml</code> report, because findings are
5260
+ counted from Cppcheck's own XML output.</p>
4636
5261
  <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4637
- <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="w"> </span><span class="nt">:xml_artifact_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CppcheckResults.xml</span>
4638
- <a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="w"> </span><span class="nt">:xml_report_version</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">2</span>
5262
+ <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="w"> </span><span class="nt">:fail_build</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
4639
5263
  </code></pre></div>
4640
- <h3 id="import-project-file">Import project file</h3>
4641
- <p>You can import some project files and build configurations into Cppcheck.
4642
- Some of compatible files are:</p>
4643
- <ul>
4644
- <li>Cppcheck GUI project (*.cppcheck)</li>
4645
- <li>Compile Commands (compile_commands.json)</li>
4646
- <li>Visual Studio projects (*.vcxproj, *.sln)</li>
4647
- </ul>
5264
+ <p><strong>Default:</strong> <code>false</code></p>
5265
+ <p>Cppcheck exits successfully even when it finds defects, so without this setting
5266
+ a <code>cppcheck:all</code> run can never fail a CI build.</p>
5267
+ <h3 id="fail_build_severities"><code>:fail_build_severities:</code></h3>
5268
+ <p>Which finding severities fail the build when
5269
+ <a href="#fail_build"><code>:fail_build:</code></a> is enabled. Valid values are <code>error</code>, <code>warning</code>,
5270
+ <code>style</code>, <code>performance</code>, <code>portability</code>, and <code>information</code>. An unrecognized value
5271
+ is rejected when the plugin loads.</p>
4648
5272
  <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4649
- <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="w"> </span><span class="nt">:project</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">path/to/compile_commands.json</span>
5273
+ <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="w"> </span><span class="nt">:fail_build_severities</span><span class="p">:</span>
5274
+ <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">error</span>
5275
+ <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">warning</span>
4650
5276
  </code></pre></div>
4651
- <p><em>Note: If configured, Cppcheck won't look for sources and includes paths from</em>
4652
- <em><em>Ceedling</em> configuration files.</em></p>
4653
- <h3 id="preprocessor-defines">Preprocessor defines</h3>
4654
- <h4 id="define">Define</h4>
5277
+ <p><strong>Default:</strong> <code>[error]</code></p>
5278
+ <div class="admonition tip">
5279
+ <p class="admonition-title">Why not every severity by default</p>
5280
+ <p>Whole project analysis always runs with <code>--enable=all</code>, so a typical run
5281
+ reports many <code>style</code> and <code>information</code> findings. Failing on all of them
5282
+ would make this setting impractical on most projects.</p>
5283
+ </div>
5284
+ <h3 id="html_title"><code>:html_title:</code></h3>
5285
+ <p>Title shown in the HTML report.</p>
4655
5286
  <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4656
- <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="w"> </span><span class="nt">:defines</span><span class="p">:</span>
4657
- <a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">A</span>
4658
- <a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">B</span>
4659
- <a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">C=1</span>
5287
+ <a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="w"> </span><span class="nt">:html_title</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Awesome Project</span>
4660
5288
  </code></pre></div>
4661
- <h4 id="undefine">Undefine</h4>
5289
+ <p><strong>Default:</strong> unset</p>
5290
+ <h3 id="sarif_artifact_filename"><code>:sarif_artifact_filename:</code></h3>
5291
+ <p>Filename for the SARIF report.</p>
4662
5292
  <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4663
- <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="nt">:undefines</span><span class="p">:</span>
4664
- <a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">A</span>
4665
- <a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">B</span>
4666
- <a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">C</span>
5293
+ <a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="nt">:sarif_artifact_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CppcheckResults.sarif</span>
4667
5294
  </code></pre></div>
4668
- <p><em>Note: By default <code>TEST</code> is undefined so the analysis is performed against production code.</em></p>
4669
- <h3 id="includes">Includes</h3>
4670
- <p>Force inclusion of files before checked files.</p>
5295
+ <p><strong>Default:</strong> <code>CppcheckReport.sarif</code></p>
5296
+ <h3 id="text_artifact_filename"><code>:text_artifact_filename:</code></h3>
5297
+ <p>Filename for the text report.</p>
4671
5298
  <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4672
- <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
4673
- <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file1.h</span>
4674
- <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file2.h</span>
5299
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="nt">:text_artifact_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CppcheckResults.txt</span>
4675
5300
  </code></pre></div>
4676
- <h3 id="excludes">Excludes</h3>
4677
- <p>Exclude files from the analysis.</p>
5301
+ <p><strong>Default:</strong> <code>CppcheckReport.txt</code></p>
5302
+ <h3 id="template"><code>:template:</code></h3>
5303
+ <p>Output format for the text report. Accepts any template name Cppcheck ships
5304
+ with, such as <code>gcc</code>, or a custom format string.</p>
4678
5305
  <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4679
- <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span><span class="nt">:excludes</span><span class="p">:</span>
4680
- <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file1.c</span>
4681
- <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file2.c</span>
5306
+ <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span><span class="nt">:template</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">gcc</span>
4682
5307
  </code></pre></div>
4683
- <h3 id="platform">Platform</h3>
4684
- <p>Specify platform to use for the analysis, can be any of the ones included with
4685
- Cppcheck, e.g.: unix64, or the path of the platform XML file.</p>
5308
+ <p><strong>Default:</strong> unset (Cppcheck's own default)</p>
5309
+ <h3 id="xml_artifact_filename"><code>:xml_artifact_filename:</code></h3>
5310
+ <p>Filename for the XML report.</p>
4686
5311
  <div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4687
- <a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="w"> </span><span class="nt">:platform</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">unix64</span>
5312
+ <a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="w"> </span><span class="nt">:xml_artifact_filename</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CppcheckResults.xml</span>
4688
5313
  </code></pre></div>
4689
- <h3 id="standard">Standard</h3>
4690
- <p>Specify C/C++ language standard.</p>
5314
+ <p><strong>Default:</strong> <code>CppcheckReport.xml</code></p>
5315
+ <h3 id="xml_report_version"><code>:xml_report_version:</code></h3>
5316
+ <p>Cppcheck XML schema version. Accepts <code>2</code> or <code>3</code>.</p>
4691
5317
  <div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4692
- <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="w"> </span><span class="nt">:standard</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">c99</span>
5318
+ <a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="w"> </span><span class="nt">:xml_report_version</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">3</span>
4693
5319
  </code></pre></div>
4694
- <h3 id="check-level">Check level</h3>
4695
- <p>Specify the check level to be used.</p>
4696
- <ul>
4697
- <li><em>normal</em></li>
4698
- <li><em>exhaustive</em></li>
4699
- </ul>
5320
+ <p><strong>Default:</strong> <code>2</code></p>
5321
+ <div class="admonition warning">
5322
+ <p class="admonition-title">Version 3 requires a newer Cppcheck</p>
5323
+ <p>Older Cppcheck releases reject <code>--xml-version=3</code> outright and fail the
5324
+ build. Version 2 is accepted by every release. Both versions carry the same
5325
+ severity information, so this plugin's finding counts work with either.</p>
5326
+ </div>
5327
+ <h3 id="project"><code>:project:</code></h3>
5328
+ <p>Import a project file and let Cppcheck discover sources and include paths
5329
+ itself. Compatible files include Cppcheck GUI projects (<code>*.cppcheck</code>),
5330
+ compilation databases (<code>compile_commands.json</code>), and Visual Studio projects
5331
+ (<code>*.vcxproj</code>, <code>*.sln</code>).</p>
4700
5332
  <div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4701
- <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="w"> </span><span class="nt">:check_level</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">exhaustive</span>
5333
+ <a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="w"> </span><span class="nt">:project</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">path/to/compile_commands.json</span>
4702
5334
  </code></pre></div>
4703
- <h3 id="addons">Addons</h3>
4704
- <p>Addons to be run.</p>
5335
+ <p><strong>Default:</strong> unset</p>
5336
+ <div class="admonition note">
5337
+ <p class="admonition-title">What <code>:project:</code> does and does not replace</p>
5338
+ <p>Setting this stops the plugin passing Ceedling's own source and include
5339
+ path collections. Every other setting in this section still applies.
5340
+ <code>:defines:</code>, <code>:includes:</code>, <code>:excludes:</code>, <code>:suppressions:</code>, <code>:addons:</code>, and
5341
+ the rest are all still added to the command line.</p>
5342
+ </div>
5343
+ <h3 id="defines"><code>:defines:</code></h3>
5344
+ <p>Preprocessor symbols to define.</p>
4705
5345
  <div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4706
- <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="w"> </span><span class="nt">:addons</span><span class="p">:</span>
4707
- <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">misra</span>
4708
- <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">path/to/addon.py</span>
5346
+ <a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="w"> </span><span class="nt">:defines</span><span class="p">:</span>
5347
+ <a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">A</span>
5348
+ <a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">B</span>
5349
+ <a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">C=1</span>
4709
5350
  </code></pre></div>
4710
- <h4 id="misra-with-rule-texts-file">MISRA with rule texts file</h4>
4711
- <p>Locate your rules text file or copy it to your project.
4712
- e.g.: <code>&lt;your-project&gt;/misra.txt</code> and create the addon file <code>misra.json</code> inside
4713
- your project:</p>
4714
- <h5 id="misrajson"><strong><code>misra.json</code></strong></h5>
4715
- <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="p">{</span>
4716
- <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="w"> </span><span class="nt">&quot;script&quot;</span><span class="p">:</span><span class="w"> </span><span class="s2">&quot;misra&quot;</span><span class="p">,</span>
4717
- <a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="w"> </span><span class="nt">&quot;args&quot;</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&quot;--rule-texts=misra.txt&quot;</span><span class="p">]</span>
4718
- <a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a><span class="p">}</span>
5351
+ <p><strong>Default:</strong> <code>[]</code></p>
5352
+ <h3 id="undefines"><code>:undefines:</code></h3>
5353
+ <p>Preprocessor symbols to undefine.</p>
5354
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
5355
+ <a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="w"> </span><span class="nt">:undefines</span><span class="p">:</span>
5356
+ <a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">A</span>
5357
+ <a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">B</span>
4719
5358
  </code></pre></div>
4720
- <p>Enable the addon:</p>
5359
+ <p><strong>Default:</strong> <code>[TEST]</code></p>
5360
+ <p><code>TEST</code> is undefined by default so analysis runs against production code rather
5361
+ than test builds.</p>
5362
+ <h3 id="includes"><code>:includes:</code></h3>
5363
+ <p>Files force-included ahead of each analyzed file.</p>
4721
5364
  <div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4722
- <a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a><span class="w"> </span><span class="nt">:addons</span><span class="p">:</span>
4723
- <a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">misra.json</span>
5365
+ <a id="__codelineno-17-2" name="__codelineno-17-2" href="#__codelineno-17-2"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
5366
+ <a id="__codelineno-17-3" name="__codelineno-17-3" href="#__codelineno-17-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file1.h</span>
5367
+ <a id="__codelineno-17-4" name="__codelineno-17-4" href="#__codelineno-17-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file2.h</span>
4724
5368
  </code></pre></div>
4725
- <h3 id="checks">Checks</h3>
4726
- <p>Enable additional checks.
4727
- Default is <em>style</em>.</p>
5369
+ <p><strong>Default:</strong> <code>[]</code></p>
5370
+ <h3 id="excludes"><code>:excludes:</code></h3>
5371
+ <p>Files excluded from analysis.</p>
4728
5372
  <div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4729
- <a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="w"> </span><span class="nt">:enable_checks</span><span class="p">:</span>
4730
- <a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">performance</span>
4731
- <a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">portability</span>
5373
+ <a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="w"> </span><span class="nt">:excludes</span><span class="p">:</span>
5374
+ <a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file1.c</span>
5375
+ <a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">file2.c</span>
4732
5376
  </code></pre></div>
4733
- <p><em>Note: These are only used for single file analysis.</em>
4734
- <em>Whole project analysis always enable all checks.</em></p>
4735
- <p>Disable individual checks:</p>
5377
+ <p><strong>Default:</strong> <code>[]</code></p>
5378
+ <h3 id="platform"><code>:platform:</code></h3>
5379
+ <p>Platform to analyze for. Accepts any platform Cppcheck ships with, such as
5380
+ <code>unix64</code>, or the path to a platform XML file.</p>
4736
5381
  <div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4737
- <a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a><span class="w"> </span><span class="nt">:disable_checks</span><span class="p">:</span>
4738
- <a id="__codelineno-19-3" name="__codelineno-19-3" href="#__codelineno-19-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">style</span>
4739
- <a id="__codelineno-19-4" name="__codelineno-19-4" href="#__codelineno-19-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">information</span>
5382
+ <a id="__codelineno-19-2" name="__codelineno-19-2" href="#__codelineno-19-2"></a><span class="w"> </span><span class="nt">:platform</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">unix64</span>
4740
5383
  </code></pre></div>
4741
- <h3 id="suppressions">Suppressions</h3>
4742
- <h4 id="inline">Inline</h4>
4743
- <p>Inline suppressions are disabled by default, they can be enabled with:</p>
5384
+ <p><strong>Default:</strong> unset</p>
5385
+ <h3 id="standard"><code>:standard:</code></h3>
5386
+ <p>C or C++ language standard.</p>
4744
5387
  <div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4745
- <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="w"> </span><span class="nt">:inline_suppressions</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
5388
+ <a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="w"> </span><span class="nt">:standard</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">c99</span>
4746
5389
  </code></pre></div>
4747
- <h4 id="list-files">List files</h4>
4748
- <p>Suppressions files can be used by giving the search paths and/or files in the
4749
- <code>:paths</code> and <code>:files</code> sections of your <code>project.yml</code> respectively.
4750
- e.g.:</p>
4751
- <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="nt">:paths</span><span class="p">:</span>
4752
- <a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a><span class="w"> </span><span class="nt">:cppcheck</span><span class="p">:</span>
4753
- <a id="__codelineno-21-3" name="__codelineno-21-3" href="#__codelineno-21-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">suppressions/</span>
4754
- <a id="__codelineno-21-4" name="__codelineno-21-4" href="#__codelineno-21-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">source/*/suppressions/</span>
4755
- <a id="__codelineno-21-5" name="__codelineno-21-5" href="#__codelineno-21-5"></a>
4756
- <a id="__codelineno-21-6" name="__codelineno-21-6" href="#__codelineno-21-6"></a><span class="nt">:files</span><span class="p">:</span>
4757
- <a id="__codelineno-21-7" name="__codelineno-21-7" href="#__codelineno-21-7"></a><span class="w"> </span><span class="nt">:cppcheck</span><span class="p">:</span>
4758
- <a id="__codelineno-21-8" name="__codelineno-21-8" href="#__codelineno-21-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">suppressions.xml</span>
5390
+ <p><strong>Default:</strong> unset</p>
5391
+ <h3 id="check_level"><code>:check_level:</code></h3>
5392
+ <p>Analysis depth. Accepts the levels your Cppcheck supports, commonly <code>normal</code>
5393
+ and <code>exhaustive</code>.</p>
5394
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
5395
+ <a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a><span class="w"> </span><span class="nt">:check_level</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">exhaustive</span>
4759
5396
  </code></pre></div>
4760
- <p>Both XML and text files are supported, and for the latter, the file extension
4761
- can be configured. The default is <code>.txt</code>.
4762
- e.g.:</p>
4763
- <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="nt">:extension</span><span class="p">:</span>
4764
- <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a><span class="w"> </span><span class="nt">:cppcheck</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">.txt</span>
5397
+ <p><strong>Default:</strong> unset</p>
5398
+ <h3 id="addons"><code>:addons:</code></h3>
5399
+ <p>Addons to run. Entries may be built-in addon names or paths to addon scripts
5400
+ and JSON addon configurations.</p>
5401
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
5402
+ <a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a><span class="w"> </span><span class="nt">:addons</span><span class="p">:</span>
5403
+ <a id="__codelineno-22-3" name="__codelineno-22-3" href="#__codelineno-22-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">misra</span>
5404
+ <a id="__codelineno-22-4" name="__codelineno-22-4" href="#__codelineno-22-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">path/to/addon.py</span>
4765
5405
  </code></pre></div>
4766
- <p>The files that will ultimately be used can be verified with:</p>
4767
- <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>ceedling<span class="w"> </span>files:cppcheck
5406
+ <p><strong>Default:</strong> <code>[]</code></p>
5407
+ <p>MISRA needs a rule texts file, which is not distributed with Cppcheck. Place
5408
+ your copy in the project, for example at <code>misra.txt</code>, then create an addon
5409
+ configuration naming it:</p>
5410
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a><span class="p">{</span>
5411
+ <a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-2"></a><span class="w"> </span><span class="nt">"script"</span><span class="p">:</span><span class="w"> </span><span class="s2">"misra"</span><span class="p">,</span>
5412
+ <a id="__codelineno-23-3" name="__codelineno-23-3" href="#__codelineno-23-3"></a><span class="w"> </span><span class="nt">"args"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">"--rule-texts=misra.txt"</span><span class="p">]</span>
5413
+ <a id="__codelineno-23-4" name="__codelineno-23-4" href="#__codelineno-23-4"></a><span class="p">}</span>
4768
5414
  </code></pre></div>
4769
- <h4 id="command-line">Command line</h4>
4770
- <p>Command line suppressions can also be added:</p>
5415
+ <p>Enable that configuration rather than the bare addon name:</p>
4771
5416
  <div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4772
- <a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a><span class="w"> </span><span class="nt">:suppressions</span><span class="p">:</span>
4773
- <a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">memleak:src/file1.cpp</span>
4774
- <a id="__codelineno-24-4" name="__codelineno-24-4" href="#__codelineno-24-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">exceptNew:src/file1.cpp</span>
5417
+ <a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a><span class="w"> </span><span class="nt">:addons</span><span class="p">:</span>
5418
+ <a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">misra.json</span>
4775
5419
  </code></pre></div>
4776
- <h3 id="library-configuration">Library configuration</h3>
4777
- <p>Add library configuration files:</p>
5420
+ <h3 id="enable_checks"><code>:enable_checks:</code></h3>
5421
+ <p>Additional checks enabled for single file analysis.</p>
4778
5422
  <div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4779
- <a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a><span class="w"> </span><span class="nt">:libraries</span><span class="p">:</span>
4780
- <a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib1.cfg</span>
4781
- <a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib2.cfg</span>
5423
+ <a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a><span class="w"> </span><span class="nt">:enable_checks</span><span class="p">:</span>
5424
+ <a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">performance</span>
5425
+ <a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">portability</span>
4782
5426
  </code></pre></div>
4783
- <h3 id="rules">Rules</h3>
4784
- <p>Regular expression rules:</p>
5427
+ <p><strong>Default:</strong> <code>[style]</code></p>
5428
+ <div class="admonition note">
5429
+ <p class="admonition-title">Single file analysis only</p>
5430
+ <p>Whole project analysis always enables every check with <code>--enable=all</code>, so
5431
+ this setting does not affect <code>cppcheck:all</code>.</p>
5432
+ </div>
5433
+ <h3 id="disable_checks"><code>:disable_checks:</code></h3>
5434
+ <p>Checks to disable. Applies to both analysis modes.</p>
4785
5435
  <div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4786
- <a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a><span class="w"> </span><span class="nt">:rules</span><span class="p">:</span>
4787
- <a id="__codelineno-26-3" name="__codelineno-26-3" href="#__codelineno-26-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">if \( p \) { free \( p \) ; }</span>
5436
+ <a id="__codelineno-26-2" name="__codelineno-26-2" href="#__codelineno-26-2"></a><span class="w"> </span><span class="nt">:disable_checks</span><span class="p">:</span>
5437
+ <a id="__codelineno-26-3" name="__codelineno-26-3" href="#__codelineno-26-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">style</span>
5438
+ <a id="__codelineno-26-4" name="__codelineno-26-4" href="#__codelineno-26-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">information</span>
4788
5439
  </code></pre></div>
4789
- <h3 id="extra-options">Extra options</h3>
4790
- <p>For things not covered above, add extra command line options:</p>
5440
+ <p><strong>Default:</strong> <code>[]</code></p>
5441
+ <h3 id="inline_suppressions"><code>:inline_suppressions:</code></h3>
5442
+ <p>Honor suppression comments written inline in source.</p>
4791
5443
  <div class="highlight"><pre><span></span><code><a id="__codelineno-27-1" name="__codelineno-27-1" href="#__codelineno-27-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
4792
- <a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a><span class="w"> </span><span class="nt">:options</span><span class="p">:</span>
4793
- <a id="__codelineno-27-3" name="__codelineno-27-3" href="#__codelineno-27-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">--max-configs=&lt;limit&gt;</span>
4794
- <a id="__codelineno-27-4" name="__codelineno-27-4" href="#__codelineno-27-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">--suppressions-list=&lt;file&gt;</span>
5444
+ <a id="__codelineno-27-2" name="__codelineno-27-2" href="#__codelineno-27-2"></a><span class="w"> </span><span class="nt">:inline_suppressions</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span>
5445
+ </code></pre></div>
5446
+ <p><strong>Default:</strong> <code>false</code></p>
5447
+ <h3 id="suppressions"><code>:suppressions:</code></h3>
5448
+ <p>Suppressions given directly on the command line.</p>
5449
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
5450
+ <a id="__codelineno-28-2" name="__codelineno-28-2" href="#__codelineno-28-2"></a><span class="w"> </span><span class="nt">:suppressions</span><span class="p">:</span>
5451
+ <a id="__codelineno-28-3" name="__codelineno-28-3" href="#__codelineno-28-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">memleak:src/file1.c</span>
5452
+ <a id="__codelineno-28-4" name="__codelineno-28-4" href="#__codelineno-28-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">exceptNew:src/file1.c</span>
4795
5453
  </code></pre></div>
5454
+ <p><strong>Default:</strong> <code>[]</code></p>
5455
+ <p>Suppression <em>files</em> are collected separately, through Ceedling's path and file
5456
+ collections rather than this list:</p>
5457
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a><span class="nt">:paths</span><span class="p">:</span>
5458
+ <a id="__codelineno-29-2" name="__codelineno-29-2" href="#__codelineno-29-2"></a><span class="w"> </span><span class="nt">:cppcheck</span><span class="p">:</span>
5459
+ <a id="__codelineno-29-3" name="__codelineno-29-3" href="#__codelineno-29-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">suppressions/</span>
5460
+ <a id="__codelineno-29-4" name="__codelineno-29-4" href="#__codelineno-29-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">source/*/suppressions/</span>
5461
+ <a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a>
5462
+ <a id="__codelineno-29-6" name="__codelineno-29-6" href="#__codelineno-29-6"></a><span class="nt">:files</span><span class="p">:</span>
5463
+ <a id="__codelineno-29-7" name="__codelineno-29-7" href="#__codelineno-29-7"></a><span class="w"> </span><span class="nt">:cppcheck</span><span class="p">:</span>
5464
+ <a id="__codelineno-29-8" name="__codelineno-29-8" href="#__codelineno-29-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">suppressions.xml</span>
5465
+ </code></pre></div>
5466
+ <p>Both XML and text suppression files are supported. The extension used to find
5467
+ text suppression files is configurable:</p>
5468
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-30-1" name="__codelineno-30-1" href="#__codelineno-30-1"></a><span class="nt">:extension</span><span class="p">:</span>
5469
+ <a id="__codelineno-30-2" name="__codelineno-30-2" href="#__codelineno-30-2"></a><span class="w"> </span><span class="nt">:cppcheck</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">.txt</span>
5470
+ </code></pre></div>
5471
+ <p>Confirm which files were collected with the
5472
+ <a href="#list-suppression-files"><code>files:cppcheck</code></a> task.</p>
5473
+ <h3 id="libraries"><code>:libraries:</code></h3>
5474
+ <p>Library configuration files.</p>
5475
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-31-1" name="__codelineno-31-1" href="#__codelineno-31-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
5476
+ <a id="__codelineno-31-2" name="__codelineno-31-2" href="#__codelineno-31-2"></a><span class="w"> </span><span class="nt">:libraries</span><span class="p">:</span>
5477
+ <a id="__codelineno-31-3" name="__codelineno-31-3" href="#__codelineno-31-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib1.cfg</span>
5478
+ <a id="__codelineno-31-4" name="__codelineno-31-4" href="#__codelineno-31-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lib2.cfg</span>
5479
+ </code></pre></div>
5480
+ <p><strong>Default:</strong> <code>[]</code></p>
5481
+ <h3 id="rules"><code>:rules:</code></h3>
5482
+ <p>Regular expression rules.</p>
5483
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-32-1" name="__codelineno-32-1" href="#__codelineno-32-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
5484
+ <a id="__codelineno-32-2" name="__codelineno-32-2" href="#__codelineno-32-2"></a><span class="w"> </span><span class="nt">:rules</span><span class="p">:</span>
5485
+ <a id="__codelineno-32-3" name="__codelineno-32-3" href="#__codelineno-32-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">if \( p \) { free \( p \) ; }</span>
5486
+ </code></pre></div>
5487
+ <p><strong>Default:</strong> <code>[]</code></p>
5488
+ <h3 id="options"><code>:options:</code></h3>
5489
+ <p>Raw command line arguments passed straight through to Cppcheck. This is the
5490
+ escape hatch for anything the settings above do not cover.</p>
5491
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-33-1" name="__codelineno-33-1" href="#__codelineno-33-1"></a><span class="nt">:cppcheck</span><span class="p">:</span>
5492
+ <a id="__codelineno-33-2" name="__codelineno-33-2" href="#__codelineno-33-2"></a><span class="w"> </span><span class="nt">:options</span><span class="p">:</span>
5493
+ <a id="__codelineno-33-3" name="__codelineno-33-3" href="#__codelineno-33-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">--max-configs=&lt;limit&gt;</span>
5494
+ <a id="__codelineno-33-4" name="__codelineno-33-4" href="#__codelineno-33-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">--suppressions-list=&lt;file&gt;</span>
5495
+ </code></pre></div>
5496
+ <p><strong>Default:</strong> <code>[]</code></p>
4796
5497
  <h2 id="usage">Usage</h2>
4797
5498
  <h3 id="analyze-whole-project">Analyze whole project</h3>
4798
- <p>Run analysis for all project sources:</p>
4799
- <div class="highlight"><pre><span></span><code><a id="__codelineno-28-1" name="__codelineno-28-1" href="#__codelineno-28-1"></a>$<span class="w"> </span>ceedling<span class="w"> </span>cppcheck:all
5499
+ <p>Run analysis across all project sources:</p>
5500
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-34-1" name="__codelineno-34-1" href="#__codelineno-34-1"></a>$<span class="w"> </span>ceedling<span class="w"> </span>cppcheck:all
4800
5501
  </code></pre></div>
4801
- <p><em>Note: Analysis is run with</em> all <em>checks enabled.</em></p>
5502
+ <p>Every check is enabled for this mode. Configure at least one entry in
5503
+ <a href="#reports"><code>:reports:</code></a> or enable <a href="#fail_build"><code>:fail_build:</code></a>, or this task
5504
+ has nothing to produce and says so.</p>
4802
5505
  <h3 id="analyze-single-file">Analyze single file</h3>
4803
- <p>Run analysis for single source file:</p>
4804
- <div class="highlight"><pre><span></span><code><a id="__codelineno-29-1" name="__codelineno-29-1" href="#__codelineno-29-1"></a>$<span class="w"> </span>ceedling<span class="w"> </span>cppcheck:&lt;filename&gt;
5506
+ <p>Run analysis for one source file, by filename with no path:</p>
5507
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-35-1" name="__codelineno-35-1" href="#__codelineno-35-1"></a>$<span class="w"> </span>ceedling<span class="w"> </span>cppcheck:example_file.c
5508
+ </code></pre></div>
5509
+ <p>Findings print to the console. This mode uses the checks in
5510
+ <a href="#enable_checks"><code>:enable_checks:</code></a>.</p>
5511
+ <h3 id="list-suppression-files">List suppression files</h3>
5512
+ <p>Show which suppression files were collected from your configured paths and
5513
+ files:</p>
5514
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-36-1" name="__codelineno-36-1" href="#__codelineno-36-1"></a>$<span class="w"> </span>ceedling<span class="w"> </span>files:cppcheck
5515
+ </code></pre></div>
5516
+ <p>This task needs no Cppcheck installation.</p>
5517
+ <h2 id="artifacts">Artifacts</h2>
5518
+ <p>Reports are written to <code>build/artifacts/cppcheck/</code>:</p>
5519
+ <table>
5520
+ <thead>
5521
+ <tr>
5522
+ <th>Report</th>
5523
+ <th>Path</th>
5524
+ </tr>
5525
+ </thead>
5526
+ <tbody>
5527
+ <tr>
5528
+ <td>HTML</td>
5529
+ <td><code>build/artifacts/cppcheck/html/index.html</code></td>
5530
+ </tr>
5531
+ <tr>
5532
+ <td>SARIF</td>
5533
+ <td><code>build/artifacts/cppcheck/CppcheckReport.sarif</code></td>
5534
+ </tr>
5535
+ <tr>
5536
+ <td>Text</td>
5537
+ <td><code>build/artifacts/cppcheck/CppcheckReport.txt</code></td>
5538
+ </tr>
5539
+ <tr>
5540
+ <td>XML</td>
5541
+ <td><code>build/artifacts/cppcheck/CppcheckReport.xml</code></td>
5542
+ </tr>
5543
+ </tbody>
5544
+ </table>
5545
+ <p>Filenames other than the HTML directory are configurable. See the
5546
+ <code>*_artifact_filename</code> settings above.</p>
5547
+ <p>These artifacts are included in <code>ceedling clean</code> targets.</p>
5548
+ <h2 id="console-output">Console output</h2>
5549
+ <p>These excerpts come from real runs. Build progress lines are left out.</p>
5550
+ <p>Each report logs a line as it is created. With an XML report, which
5551
+ <a href="#fail_build"><code>:fail_build:</code></a> also implies, a tally of findings by severity
5552
+ follows:</p>
5553
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-37-1" name="__codelineno-37-1" href="#__codelineno-37-1"></a>Creating Cppcheck text report...
5554
+ <a id="__codelineno-37-2" name="__codelineno-37-2" href="#__codelineno-37-2"></a>Creating Cppcheck xml report...
5555
+ <a id="__codelineno-37-3" name="__codelineno-37-3" href="#__codelineno-37-3"></a>Cppcheck findings: 1 error, 2 information, 1 style
5556
+ </code></pre></div>
5557
+ <p>A run without findings logs <code>Cppcheck found no issues.</code> in place of the tally.</p>
5558
+ <p>With <code>:fail_build:</code> enabled, findings of a listed severity fail the build:</p>
5559
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>❌ BUILD FAILURE SUMMARY
5560
+ <a id="__codelineno-38-2" name="__codelineno-38-2" href="#__codelineno-38-2"></a> • [CPPCHECK] Cppcheck found 1 finding matching :cppcheck ↳ :fail_build_severities (1 error). See the report in build/artifacts/cppcheck.
5561
+ </code></pre></div>
5562
+ <p>With no report configured, Cppcheck does not run:</p>
5563
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-39-1" name="__codelineno-39-1" href="#__codelineno-39-1"></a>⚠️ WARNING: No Cppcheck reports are configured, so no analysis ran.
5564
+ <a id="__codelineno-39-2" name="__codelineno-39-2" href="#__codelineno-39-2"></a>Add a report to :cppcheck ↳ :reports, or enable :cppcheck ↳ :fail_build.
5565
+ </code></pre></div>
5566
+ <h2 id="interpreting-results">Interpreting results</h2>
5567
+ <p>The tally in the <a href="#console-output">console output</a> counts findings by severity.
5568
+ Cppcheck assigns every finding one of six severities.</p>
5569
+ <table>
5570
+ <thead>
5571
+ <tr>
5572
+ <th>Severity</th>
5573
+ <th>Meaning</th>
5574
+ </tr>
5575
+ </thead>
5576
+ <tbody>
5577
+ <tr>
5578
+ <td><code>error</code></td>
5579
+ <td>A definite defect, such as a double free or buffer overrun</td>
5580
+ </tr>
5581
+ <tr>
5582
+ <td><code>warning</code></td>
5583
+ <td>Likely a defect, worth review</td>
5584
+ </tr>
5585
+ <tr>
5586
+ <td><code>style</code></td>
5587
+ <td>Stylistic issue, including unused code</td>
5588
+ </tr>
5589
+ <tr>
5590
+ <td><code>performance</code></td>
5591
+ <td>Code that is correct but avoidably slow</td>
5592
+ </tr>
5593
+ <tr>
5594
+ <td><code>portability</code></td>
5595
+ <td>Behavior that differs across compilers or platforms</td>
5596
+ </tr>
5597
+ <tr>
5598
+ <td><code>information</code></td>
5599
+ <td>Notes about the analysis itself, such as missing includes</td>
5600
+ </tr>
5601
+ </tbody>
5602
+ </table>
5603
+ <p>Only <code>error</code> fails a build by default. Widen that with
5604
+ <a href="#fail_build_severities"><code>:fail_build_severities:</code></a>.</p>
5605
+ <p>For finding-by-finding detail, open a configured report. The text report is
5606
+ easiest to read at the terminal:</p>
5607
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-40-1" name="__codelineno-40-1" href="#__codelineno-40-1"></a>$<span class="w"> </span>cat<span class="w"> </span>build/artifacts/cppcheck/CppcheckReport.txt
4805
5608
  </code></pre></div>
4806
- <p><em>Note: Analysis will run with the checks in <a href="#checks"><code>:enable_checks</code></a> list enabled.</em></p>
5609
+ <p>See <a href="https://cppcheck.sourceforge.io/manual.pdf">Cppcheck's manual</a> for what each check means and how to
5610
+ suppress findings you have reviewed.</p>
5611
+ <p><br/><br/></p>
4807
5612
 
4808
5613
 
4809
5614
 
@@ -4871,10 +5676,10 @@ e.g.:</p>
4871
5676
 
4872
5677
 
4873
5678
 
4874
- <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>
5679
+ <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>
4875
5680
 
4876
5681
 
4877
- <script src="../assets/javascripts/bundle.d7400e89.min.js"></script>
5682
+ <script src="../assets/javascripts/bundle.c21346df.min.js"></script>
4878
5683
 
4879
5684
 
4880
5685
  </body>