ceedling 1.1.9 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1130) 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 +53 -30
  8. data/Rakefile +768 -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 +7 -0
  118. data/bin/cli.rb +78 -47
  119. data/bin/cli_handler.rb +89 -57
  120. data/bin/cli_helper.rb +90 -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 +39 -4
  139. data/docs/ReleaseNotes.md +288 -12
  140. data/docs/SECURITY.md +86 -4
  141. data/docs/ThrowTheSwitchCodingStandard.md +21 -3
  142. data/docs/overrides/main.html +32 -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 +366 -530
  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 +343 -610
  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 +245 -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 +202 -75
  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 +93 -25
  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 +218 -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 +272 -117
  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/rakefile.rb +2 -1
  231. data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
  232. data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
  233. data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
  234. data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
  235. data/lib/ceedling/rakefiles/tests/rules_tests.rake +43 -0
  236. data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +80 -0
  237. data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
  238. data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
  239. data/lib/ceedling/release_invoker/README.md +35 -0
  240. data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
  241. data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
  242. data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
  243. data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
  244. data/lib/ceedling/reportinator.rb +18 -2
  245. data/lib/ceedling/ruby_expandinator.rb +40 -1
  246. data/lib/ceedling/setupinator.rb +9 -3
  247. data/lib/ceedling/system_wrapper.rb +17 -0
  248. data/lib/ceedling/templateinator.rb +146 -0
  249. data/lib/ceedling/test_context_extractor.rb +59 -28
  250. data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
  251. data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
  252. data/lib/ceedling/test_invoker/README.md +6 -0
  253. data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
  254. data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
  255. data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
  256. data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
  257. data/lib/ceedling/test_invoker/test_build_executor.rb +783 -415
  258. data/lib/ceedling/test_invoker/test_build_planner.rb +175 -70
  259. data/lib/ceedling/test_invoker/test_build_setup.rb +132 -241
  260. data/lib/ceedling/test_invoker/test_build_validations.rb +102 -0
  261. data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +148 -0
  262. data/lib/ceedling/test_invoker/test_includes_extractinator.rb +34 -0
  263. data/lib/ceedling/test_invoker/test_includes_preprocessinator.rb +118 -0
  264. data/lib/ceedling/test_invoker/test_includes_reconcilinator.rb +149 -0
  265. data/lib/ceedling/test_invoker/test_invoker.rb +16 -183
  266. data/lib/ceedling/test_invoker/test_invoker_types.rb +85 -16
  267. data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +121 -0
  268. data/lib/ceedling/test_invoker/test_pipeline_manager.rb +303 -0
  269. data/lib/ceedling/test_invoker/test_runner_generatinator.rb +105 -0
  270. data/lib/ceedling/test_invoker/test_search_paths.rb +73 -0
  271. data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +78 -0
  272. data/lib/ceedling/tool_executor.rb +42 -13
  273. data/lib/ceedling/tool_executor_helper.rb +1 -1
  274. data/lib/ceedling/tool_validator.rb +124 -123
  275. data/lib/ceedling/yaml_wrapper.rb +5 -3
  276. data/lib/version.rb +19 -2
  277. data/mkdocs.prerelease.yml +42 -0
  278. data/mkdocs.yml +10 -2
  279. data/plugins/bullseye/bullseye.rake +70 -107
  280. data/plugins/bullseye/config/defaults.yml +12 -54
  281. data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  282. data/plugins/bullseye/lib/bullseye.rb +511 -120
  283. data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
  284. data/plugins/command_hooks/lib/command_hooks.rb +117 -199
  285. data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
  286. data/plugins/cppcheck/config/defaults.yml +6 -1
  287. data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
  288. data/plugins/cppcheck/cppcheck.rake +7 -1
  289. data/plugins/cppcheck/lib/cppcheck.rb +175 -26
  290. data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
  291. data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
  292. data/plugins/dependencies/Rakefile +14 -2
  293. data/plugins/dependencies/config/defaults.yml +9 -6
  294. data/plugins/dependencies/dependencies.rake +46 -76
  295. data/plugins/dependencies/example/boss/project.yml +1 -1
  296. data/plugins/dependencies/example/supervisor/project.yml +1 -1
  297. data/plugins/dependencies/example/version.tar.gzip +0 -0
  298. data/plugins/dependencies/lib/dependencies.rb +232 -427
  299. data/plugins/dependencies/lib/dependency_commands.rb +72 -0
  300. data/plugins/dependencies/lib/dependency_environment.rb +57 -0
  301. data/plugins/dependencies/lib/dependency_spec.rb +145 -0
  302. data/plugins/fff/.rspec +1 -0
  303. data/plugins/fff/Rakefile +14 -2
  304. data/plugins/fff/examples/fff_example/project.yml +1 -1
  305. data/plugins/fff/lib/fff.rb +30 -9
  306. data/plugins/fff/lib/fff_mock_generator.rb +142 -128
  307. data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
  308. data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
  309. data/plugins/fff/spec/spec_helper.rb +45 -0
  310. data/plugins/fff/src/fff_unity_helper.h +5 -0
  311. data/plugins/fff/vendor/fff/fakegen.rb +5 -4
  312. data/plugins/fff/vendor/fff/fff.h +4 -4
  313. data/plugins/gcov/config/defaults.yml +5 -0
  314. data/plugins/gcov/gcov.rake +12 -8
  315. data/plugins/gcov/lib/console_reportinator.rb +140 -20
  316. data/plugins/gcov/lib/gcov.rb +155 -60
  317. data/plugins/gcov/lib/gcov_constants.rb +4 -7
  318. data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
  319. data/plugins/gcov/lib/gcov_types.rb +62 -1
  320. data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
  321. data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
  322. data/plugins/module_generator/Rakefile +4 -4
  323. data/plugins/module_generator/config/module_generator.yml +0 -1
  324. data/plugins/module_generator/example/project.yml +1 -1
  325. data/plugins/module_generator/lib/module_generator.rb +117 -87
  326. data/plugins/module_generator/lib/module_generator_options.rb +150 -0
  327. data/plugins/module_generator/lib/module_generator_project.rb +45 -0
  328. data/plugins/module_generator/lib/module_generator_request.rb +83 -0
  329. data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
  330. data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
  331. data/plugins/module_generator/module_generator.rake +24 -46
  332. data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
  333. data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
  334. data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
  335. data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
  336. data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
  337. data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
  338. data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
  339. data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
  340. data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
  341. data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
  342. data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
  343. data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
  344. data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
  345. data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
  346. data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
  347. data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
  348. data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
  349. data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
  350. data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
  351. data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
  352. data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
  353. data/plugins/sanitize/config/defaults.yml +44 -0
  354. data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
  355. data/plugins/sanitize/lib/sanitize.rb +174 -0
  356. data/plugins/sanitize/lib/sanitize_config.rb +110 -0
  357. data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
  358. data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
  359. data/plugins/sanitize/lib/sanitize_records.rb +115 -0
  360. data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
  361. data/plugins/sanitize/sanitize.rake +108 -0
  362. data/plugins/valgrind/config/defaults.yml +7 -1
  363. data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
  364. data/plugins/valgrind/lib/valgrind.rb +202 -39
  365. data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
  366. data/plugins/valgrind/lib/valgrind_report.rb +52 -0
  367. data/plugins/valgrind/valgrind.rake +33 -11
  368. data/site-local/404.html +248 -14
  369. data/site-local/configuration/environment-vars.html +248 -14
  370. data/site-local/configuration/global-collections.html +248 -19
  371. data/site-local/configuration/index.html +249 -15
  372. data/site-local/configuration/loading.html +260 -22
  373. data/site-local/configuration/mixins.html +252 -17
  374. data/site-local/configuration/parallel-builds.html +248 -14
  375. data/site-local/configuration/project-file.html +275 -30
  376. data/site-local/configuration/reference/cexception.html +255 -20
  377. data/site-local/configuration/reference/cmock.html +281 -14
  378. data/site-local/configuration/reference/defines.html +262 -19
  379. data/site-local/configuration/reference/environment.html +251 -17
  380. data/site-local/configuration/reference/extension.html +361 -16
  381. data/site-local/configuration/reference/files.html +262 -14
  382. data/site-local/configuration/reference/flags.html +270 -19
  383. data/site-local/configuration/reference/index.html +248 -14
  384. data/site-local/configuration/reference/libraries.html +248 -14
  385. data/site-local/configuration/reference/mixins.html +248 -14
  386. data/site-local/configuration/reference/partials.html +249 -19
  387. data/site-local/configuration/reference/paths.html +275 -15
  388. data/site-local/configuration/reference/plugins.html +248 -14
  389. data/site-local/configuration/reference/project.html +291 -14
  390. data/site-local/configuration/reference/release-build.html +256 -14
  391. data/site-local/configuration/reference/test-build.html +290 -24
  392. data/site-local/configuration/reference/test-runner.html +288 -17
  393. data/site-local/configuration/reference/tools.html +254 -14
  394. data/site-local/configuration/reference/unity.html +280 -15
  395. data/site-local/configuration/which-ceedling.html +248 -14
  396. data/site-local/development/index.html +261 -14
  397. data/site-local/development/plugins/configuration.html +269 -17
  398. data/site-local/development/plugins/index.html +267 -15
  399. data/site-local/development/plugins/plugin-subclass.html +906 -154
  400. data/site-local/development/plugins/rake-tasks.html +276 -14
  401. data/site-local/development/releases.html +4708 -0
  402. data/site-local/development/workflow.html +1030 -51
  403. data/site-local/getting-started/builds.html +4607 -0
  404. data/site-local/getting-started/command-line.html +418 -34
  405. data/site-local/getting-started/example-projects/cipher-quest.html +248 -14
  406. data/site-local/getting-started/example-projects/index.html +249 -15
  407. data/site-local/getting-started/example-projects/temp-sensor.html +248 -14
  408. data/site-local/getting-started/example-projects/wondrous-forest.html +248 -14
  409. data/site-local/getting-started/index.html +255 -14
  410. data/site-local/getting-started/installation.html +258 -22
  411. data/site-local/getting-started/quick-start.html +251 -15
  412. data/site-local/help.html +255 -14
  413. data/site-local/index.html +292 -22
  414. data/site-local/overview/build-system.html +249 -15
  415. data/site-local/overview/index.html +248 -14
  416. data/site-local/overview/test-environments.html +257 -14
  417. data/site-local/overview/tools-and-frameworks.html +248 -14
  418. data/site-local/plugins/beep.html +251 -14
  419. data/site-local/plugins/bullseye/index.html +5079 -0
  420. data/site-local/plugins/bullseye/licensing.html +4840 -0
  421. data/site-local/plugins/command-hooks.html +265 -27
  422. data/site-local/plugins/compile-commands-json-db.html +256 -17
  423. data/site-local/plugins/cppcheck.html +1081 -262
  424. data/site-local/plugins/dependencies.html +934 -242
  425. data/site-local/plugins/fff.html +297 -16
  426. data/site-local/plugins/gcov/examples.html +251 -14
  427. data/site-local/plugins/gcov/gcovr.html +686 -31
  428. data/site-local/plugins/gcov/index.html +251 -14
  429. data/site-local/plugins/gcov/overview.html +259 -18
  430. data/site-local/plugins/gcov/reportgenerator.html +563 -28
  431. data/site-local/plugins/gcov/reporting.html +348 -100
  432. data/site-local/plugins/gcov/setup.html +253 -15
  433. data/site-local/plugins/gcov/tool-versions.html +301 -19
  434. data/site-local/plugins/gcov/troubleshooting.html +273 -36
  435. data/site-local/plugins/index.html +294 -36
  436. data/site-local/plugins/module-generator.html +779 -195
  437. data/site-local/plugins/report-build-warnings-log.html +578 -33
  438. data/site-local/plugins/report-tests-gtestlike-stdout.html +467 -84
  439. data/site-local/plugins/report-tests-ide-stdout.html +654 -51
  440. data/site-local/plugins/report-tests-log-factory.html +337 -70
  441. data/site-local/plugins/report-tests-pretty-stdout.html +251 -14
  442. data/site-local/plugins/report-tests-raw-output-log.html +251 -14
  443. data/site-local/plugins/report-tests-teamcity-stdout.html +251 -14
  444. data/site-local/plugins/sanitize.html +5332 -0
  445. data/site-local/plugins/valgrind.html +416 -26
  446. data/site-local/{plugins/bullseye.html → project/index.html} +297 -217
  447. data/site-local/project/release-history.html +251 -17
  448. data/site-local/project/sbom.html +4726 -0
  449. data/site-local/project/upgrade.html +250 -16
  450. data/site-local/reference/build-directives.html +257 -14
  451. data/site-local/reference/command-line.html +373 -16
  452. data/site-local/reference/environment-vars.html +248 -14
  453. data/site-local/reference/gcov-plugin.html +492 -18
  454. data/site-local/reference/global-collections.html +249 -15
  455. data/site-local/reference/index.html +248 -14
  456. data/site-local/reference/partials-macros.html +258 -14
  457. data/site-local/reference/project-configuration.html +248 -14
  458. data/site-local/sitemap.xml.gz +0 -0
  459. data/site-local/snapshot/assets/{project.yml → features/project.yml} +4 -1
  460. data/site-local/snapshot/examples/cipher_quest/index.html +248 -14
  461. data/site-local/snapshot/examples/temp_sensor/index.html +248 -14
  462. data/site-local/snapshot/examples/wondrous_forest/index.html +265 -25
  463. data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
  464. data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  465. data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
  466. data/site-local/testing-guide/build-directives.html +332 -22
  467. data/site-local/testing-guide/conventions.html +678 -153
  468. data/site-local/testing-guide/frameworks.html +248 -14
  469. data/site-local/testing-guide/index.html +248 -21
  470. data/site-local/testing-guide/partials/configuration.html +248 -14
  471. data/site-local/testing-guide/partials/conventions.html +316 -17
  472. data/site-local/testing-guide/partials/directives.html +456 -48
  473. data/site-local/testing-guide/partials/example.html +248 -14
  474. data/site-local/testing-guide/partials/index.html +255 -14
  475. data/site-local/testing-guide/partials/overview.html +248 -14
  476. data/site-local/testing-guide/partials/variables.html +248 -14
  477. data/site-local/testing-guide/test-cases.html +248 -14
  478. data/site-local/testing-guide/test-sample.html +248 -14
  479. data/site-local/testing-guide/test-suite-anatomy.html +248 -14
  480. data/spec/integration/actionator_file_operations_spec.rb +287 -0
  481. data/spec/integration/analysis_tool_output_spec.rb +204 -0
  482. data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
  483. data/spec/integration/command_hooks_plugin_spec.rb +152 -0
  484. data/spec/integration/compile_commands_json_db_spec.rb +76 -0
  485. data/spec/integration/configurator_pipeline_spec.rb +180 -0
  486. data/spec/integration/configurator_plugins_spec.rb +122 -0
  487. data/spec/integration/configurator_validation_spec.rb +98 -0
  488. data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
  489. data/spec/integration/dependencies/dependency_tracker_core_spec.rb +244 -0
  490. data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
  491. data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
  492. data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
  493. data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
  494. data/spec/integration/dependencies_plugin_spec.rb +473 -0
  495. data/spec/integration/erb_dependency_removed_spec.rb +167 -0
  496. data/spec/integration/includes_extraction_spec.rb +612 -0
  497. data/spec/integration/mixin_loading_spec.rb +414 -0
  498. data/spec/integration/module_generator_spec.rb +436 -0
  499. data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
  500. data/spec/integration/partials_header_composition_spec.rb +889 -0
  501. data/spec/integration/partials_module_resolution_spec.rb +372 -0
  502. data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
  503. data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
  504. data/spec/integration/quote_include_isolator_spec.rb +167 -0
  505. data/spec/integration/report_build_warnings_log_spec.rb +170 -0
  506. data/spec/integration/report_tests_log_factory_spec.rb +100 -0
  507. data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
  508. data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
  509. data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
  510. data/spec/integration/test_executable_manifest_spec.rb +118 -0
  511. data/spec/integration/test_includes_extractinator_spec.rb +293 -0
  512. data/spec/integration/tool_executor_spec.rb +224 -0
  513. data/spec/integration/tool_validator_spec.rb +133 -0
  514. data/spec/integration/vendor_copy_transient_io_retry_spec.rb +130 -0
  515. data/spec/manual/stress_test.rb +1 -1
  516. data/spec/support/config_yaml_helper.rb +17 -0
  517. data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
  518. data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
  519. data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
  520. data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
  521. data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
  522. data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
  523. data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
  524. data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
  525. data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
  526. data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
  527. data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
  528. data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
  529. data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
  530. data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
  531. data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
  532. data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
  533. data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
  534. data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
  535. data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
  536. data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
  537. data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
  538. data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
  539. data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
  540. data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
  541. data/spec/support/fixtures/templates/ide__empty.txt +8 -0
  542. data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
  543. data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
  544. data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
  545. data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
  546. data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
  547. data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
  548. data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
  549. data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
  550. data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
  551. data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
  552. data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
  553. data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
  554. data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
  555. data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
  556. data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
  557. data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
  558. data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
  559. data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
  560. data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
  561. data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
  562. data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
  563. data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
  564. data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
  565. data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
  566. data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
  567. data/spec/support/include_guard_helper.rb +20 -0
  568. data/spec/support/integration/configurator_integration_helper.rb +159 -0
  569. data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
  570. data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
  571. data/spec/support/integration/spec_integration_helper.rb +285 -0
  572. data/spec/support/integration/test_includes_harness.rb +259 -0
  573. data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
  574. data/spec/support/spec_helper.rb +41 -0
  575. data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
  576. data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
  577. data/spec/support/system/simplecov_boot.rb +66 -0
  578. data/spec/support/system/spec_system_helper.rb +376 -16
  579. data/spec/support/system/system_context.rb +181 -59
  580. data/spec/support/template_render_cases.rb +166 -0
  581. data/spec/system/bracket_path_handling_spec.rb +175 -0
  582. data/spec/system/build_output_mirroring_spec.rb +89 -0
  583. data/spec/system/build_recovery_spec.rb +382 -0
  584. data/spec/system/bullseye_deployment_spec.rb +102 -0
  585. data/spec/system/cli_surface_spec.rb +245 -0
  586. data/spec/system/command_hooks_spec.rb +117 -0
  587. data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
  588. data/spec/system/conditional_mock_includes_spec.rb +181 -0
  589. data/spec/system/cppcheck_deployment_spec.rb +26 -8
  590. data/spec/system/delta_builds_spec.rb +751 -0
  591. data/spec/system/deployment_as_gem_spec.rb +7 -0
  592. data/spec/system/deployment_as_vendor_spec.rb +29 -145
  593. data/spec/system/dumpconfig_spec.rb +137 -0
  594. data/spec/system/encoding_stress_spec.rb +7 -4
  595. data/spec/system/example_cipher_quest_spec.rb +25 -100
  596. data/spec/system/example_temp_sensor_spec.rb +30 -172
  597. data/spec/system/example_wondrous_forest_spec.rb +25 -62
  598. data/spec/system/extension_multiple_values_spec.rb +75 -0
  599. data/spec/system/files_paths_reporting_spec.rb +154 -0
  600. data/spec/system/gcov_deployment_spec.rb +72 -3
  601. data/spec/system/header_include_path_validation_spec.rb +222 -0
  602. data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
  603. data/spec/system/include_path_reconciliation_spec.rb +64 -0
  604. data/spec/system/mixin_ordering_spec.rb +30 -415
  605. data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
  606. data/spec/system/parent_directory_reference_spec.rb +114 -0
  607. data/spec/system/partials_module_disambiguation_spec.rb +143 -0
  608. data/spec/system/pinned_thread_count_spec.rb +102 -0
  609. data/spec/system/plugin_delta_builds_spec.rb +179 -0
  610. data/spec/system/preprocessing_encoding_spec.rb +87 -4
  611. data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
  612. data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
  613. data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
  614. data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
  615. data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
  616. data/spec/system/ruby_replacement_spec.rb +1 -1
  617. data/spec/system/same_named_modules_spec.rb +115 -0
  618. data/spec/system/sanitize_deployment_spec.rb +64 -0
  619. data/spec/system/shuffle_tests_spec.rb +139 -0
  620. data/spec/system/sibling_header_collision_spec.rb +620 -0
  621. data/spec/system/subdir_include_preservation_spec.rb +63 -0
  622. data/spec/system/support/bullseye_common_test_cases.rb +369 -0
  623. data/spec/system/support/bullseye_helpers.rb +70 -0
  624. data/spec/system/support/common_test_cases.rb +167 -43
  625. data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
  626. data/spec/system/support/cppcheck_helpers.rb +10 -8
  627. data/spec/system/support/gcov_common_test_cases.rb +173 -37
  628. data/spec/system/support/gcov_helpers.rb +3 -3
  629. data/spec/system/support/gcov_partials_test_cases.rb +48 -2
  630. data/spec/system/support/sanitize_common_test_cases.rb +222 -0
  631. data/spec/system/support/sanitize_helpers.rb +27 -0
  632. data/spec/system/support/valgrind_common_test_cases.rb +116 -16
  633. data/spec/system/support/valgrind_helpers.rb +3 -4
  634. data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
  635. data/spec/system/test_runner_system_include_spec.rb +19 -41
  636. data/spec/system/test_source_file_directive_spec.rb +235 -0
  637. data/spec/system/upgrade_as_vendor_spec.rb +25 -46
  638. data/spec/system/valgrind_deployment_spec.rb +41 -0
  639. data/spec/units/batchinator_spec.rb +314 -0
  640. data/spec/units/bin/actionator_spec.rb +412 -0
  641. data/spec/units/bin/app_cfg_spec.rb +90 -0
  642. data/spec/units/bin/cli_handler_spec.rb +204 -0
  643. data/spec/units/bin/cli_helper_spec.rb +238 -10
  644. data/spec/units/bin/cli_options_transform_spec.rb +49 -0
  645. data/spec/units/bin/composinator_spec.rb +236 -0
  646. data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
  647. data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
  648. data/spec/units/bin/mixinator_spec.rb +58 -22
  649. data/spec/units/bin/path_validator_spec.rb +112 -0
  650. data/spec/units/bin/projectinator_spec.rb +223 -0
  651. data/spec/units/bin/rake_patches_spec.rb +52 -0
  652. data/spec/units/bin/recursive_merger_spec.rb +22 -0
  653. data/spec/units/bin/versionator_spec.rb +104 -0
  654. data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
  655. data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
  656. data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
  657. data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
  658. data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
  659. data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
  660. data/spec/units/ceedling/templateinator_spec.rb +188 -0
  661. data/spec/units/config/configurator_builder_spec.rb +444 -0
  662. data/spec/units/config/configurator_plugins_spec.rb +160 -0
  663. data/spec/units/config/configurator_setup_spec.rb +706 -6
  664. data/spec/units/config/configurator_spec.rb +952 -0
  665. data/spec/units/config/configurator_validator_spec.rb +259 -0
  666. data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
  667. data/spec/units/config_matchinator_spec.rb +103 -0
  668. data/spec/units/defineinator_spec.rb +158 -0
  669. data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
  670. data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
  671. data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
  672. data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
  673. data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
  674. data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
  675. data/spec/units/dependencies/dependinator_spec.rb +99 -0
  676. data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
  677. data/spec/units/encodinator_spec.rb +92 -0
  678. data/spec/units/file_finder_helper_spec.rb +99 -15
  679. data/spec/units/file_finder_spec.rb +495 -0
  680. data/spec/units/file_path_collection_utils_spec.rb +9 -0
  681. data/spec/units/file_path_utils_spec.rb +736 -0
  682. data/spec/units/file_wrapper_spec.rb +447 -0
  683. data/spec/units/filename_extension_spec.rb +120 -0
  684. data/spec/units/flaginator_spec.rb +114 -0
  685. data/spec/units/generators/generator_helper_spec.rb +113 -0
  686. data/spec/units/generators/generator_mocks_spec.rb +131 -0
  687. data/spec/units/generators/generator_partials_spec.rb +366 -77
  688. data/spec/units/generators/generator_spec.rb +317 -0
  689. data/spec/units/generators/generator_test_results_backtrace_spec.rb +169 -9
  690. data/spec/units/generators/generator_test_results_sanity_checker_spec.rb +14 -6
  691. data/spec/units/generators/generator_test_results_spec.rb +65 -8
  692. data/spec/units/generators/generator_test_runner_spec.rb +1 -1
  693. data/spec/units/includes/include_factory_spec.rb +53 -0
  694. data/spec/units/includes/include_pathinator_spec.rb +269 -0
  695. data/spec/units/includes/include_spec.rb +8 -4
  696. data/spec/units/includes/includes_spec.rb +326 -18
  697. data/spec/units/mock_locator_spec.rb +74 -0
  698. data/spec/units/parsing_parcels_spec.rb +65 -0
  699. data/spec/units/partials/partializer_config_spec.rb +284 -18
  700. data/spec/units/partials/partializer_helper_spec.rb +122 -0
  701. data/spec/units/partials/partializer_spec.rb +474 -36
  702. data/spec/units/partials/partializer_utils_spec.rb +4 -4
  703. data/spec/units/partials_manager_spec.rb +539 -0
  704. data/spec/units/path_matcher_spec.rb +193 -0
  705. data/spec/units/path_mirror_spec.rb +103 -0
  706. data/spec/units/plugin_manager_spec.rb +77 -0
  707. data/spec/units/plugin_reportinator_spec.rb +78 -3
  708. data/spec/units/plugins/bullseye_spec.rb +1068 -0
  709. data/spec/units/plugins/command_hooks_spec.rb +157 -0
  710. data/spec/units/plugins/compile_commands_json_db_spec.rb +145 -0
  711. data/spec/units/plugins/console_reportinator_spec.rb +370 -0
  712. data/spec/units/plugins/cppcheck_spec.rb +330 -4
  713. data/spec/units/plugins/cppunit_tests_reporter_spec.rb +118 -0
  714. data/spec/units/plugins/dependencies_spec.rb +295 -0
  715. data/spec/units/plugins/dependency_commands_spec.rb +83 -0
  716. data/spec/units/plugins/dependency_environment_spec.rb +64 -0
  717. data/spec/units/plugins/dependency_spec_spec.rb +170 -0
  718. data/spec/units/plugins/gcov_reportinator_spec.rb +272 -0
  719. data/spec/units/plugins/gcov_spec.rb +521 -0
  720. data/spec/units/plugins/gcovr_reportinator_spec.rb +795 -0
  721. data/spec/units/plugins/gtestlike_report_spec.rb +363 -0
  722. data/spec/units/plugins/html_tests_reporter_spec.rb +158 -0
  723. data/spec/units/plugins/ide_report_lines_spec.rb +229 -0
  724. data/spec/units/plugins/json_tests_reporter_spec.rb +87 -0
  725. data/spec/units/plugins/junit_tests_reporter_spec.rb +237 -0
  726. data/spec/units/plugins/module_generator_options_spec.rb +185 -0
  727. data/spec/units/plugins/module_generator_project_spec.rb +55 -0
  728. data/spec/units/plugins/module_generator_request_spec.rb +107 -0
  729. data/spec/units/plugins/module_generator_spec.rb +214 -0
  730. data/spec/units/plugins/module_generator_test_file_spec.rb +102 -0
  731. data/spec/units/plugins/module_generator_unity_spec.rb +37 -0
  732. data/spec/units/plugins/report_build_warnings_log_spec.rb +199 -0
  733. data/spec/units/plugins/report_log_writer_plugin_spec.rb +94 -0
  734. data/spec/units/plugins/report_tests_gtestlike_stdout_spec.rb +274 -0
  735. data/spec/units/plugins/report_tests_ide_stdout_spec.rb +140 -0
  736. data/spec/units/plugins/report_tests_log_factory_spec.rb +210 -0
  737. data/spec/units/plugins/report_tests_pretty_stdout_spec.rb +83 -0
  738. data/spec/units/plugins/report_tests_raw_output_log_spec.rb +98 -0
  739. data/spec/units/plugins/report_tests_stdout_plugin_spec.rb +145 -0
  740. data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +121 -0
  741. data/spec/units/plugins/reportgenerator_reportinator_spec.rb +410 -0
  742. data/spec/units/plugins/sanitize_config_spec.rb +119 -0
  743. data/spec/units/plugins/sanitize_findings_spec.rb +69 -0
  744. data/spec/units/plugins/sanitize_records_spec.rb +114 -0
  745. data/spec/units/plugins/sanitize_reports_spec.rb +84 -0
  746. data/spec/units/plugins/sanitize_spec.rb +300 -0
  747. data/spec/units/plugins/tests_reporter_spec.rb +89 -0
  748. data/spec/units/plugins/valgrind_spec.rb +560 -0
  749. data/spec/units/plugins/warning_collector_spec.rb +185 -0
  750. data/spec/units/plugins/warning_reports_spec.rb +150 -0
  751. data/spec/units/preprocess/c_comment_scanner_spec.rb +17 -17
  752. data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +94 -0
  753. data/spec/units/preprocess/preprocessinator_bare_includes_extractor_spec.rb +73 -0
  754. data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +35 -16
  755. data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +129 -48
  756. data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +292 -9
  757. data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +294 -16
  758. data/spec/units/preprocess/preprocessinator_line_marker_includes_extractor_spec.rb +356 -6
  759. data/spec/units/preprocess/preprocessinator_reconstructor_spec.rb +58 -4
  760. data/spec/units/preprocess/preprocessinator_spec.rb +693 -5
  761. data/spec/units/quote_include_isolator_spec.rb +176 -0
  762. data/spec/units/rake_app/rake_invocation_tracker_spec.rb +94 -0
  763. data/spec/units/rake_app/rake_task_registry_spec.rb +263 -0
  764. data/spec/units/rake_app/rake_utils_spec.rb +54 -0
  765. data/spec/units/rake_app/rake_wrapper_spec.rb +64 -0
  766. data/spec/units/rake_app/rakefile_component_resolver_spec.rb +182 -0
  767. data/spec/units/release_build_executor_spec.rb +404 -0
  768. data/spec/units/release_build_planner_spec.rb +144 -0
  769. data/spec/units/release_invoker_spec.rb +127 -0
  770. data/spec/units/reportinator_spec.rb +35 -0
  771. data/spec/units/ruby_expandinator_spec.rb +36 -0
  772. data/spec/units/standin_headerinator_spec.rb +168 -0
  773. data/spec/units/system_wrapper_spec.rb +16 -0
  774. data/spec/units/test_build_executor_spec.rb +1653 -8
  775. data/spec/units/test_build_planner_spec.rb +878 -0
  776. data/spec/units/test_build_setup_spec.rb +583 -0
  777. data/spec/units/test_context_extractor_spec.rb +51 -3
  778. data/spec/units/test_file_preprocessinator_spec.rb +206 -0
  779. data/spec/units/test_includes_extractinator_spec.rb +764 -0
  780. data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
  781. data/spec/units/test_invoker_spec.rb +147 -0
  782. data/spec/units/test_invoker_types_spec.rb +182 -0
  783. data/spec/units/test_pipeline_helpers_spec.rb +100 -0
  784. data/spec/units/test_pipeline_manager_spec.rb +415 -0
  785. data/spec/units/test_runner_generatinator_spec.rb +215 -0
  786. data/spec/units/test_runner_manager_spec.rb +70 -0
  787. data/spec/units/test_search_paths_spec.rb +84 -0
  788. data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
  789. data/spec/units/tool_executor_helper_spec.rb +1 -1
  790. data/spec/units/tool_executor_spec.rb +571 -2
  791. data/spec/units/tool_validator_spec.rb +303 -24
  792. data/spec/units/version_spec.rb +74 -0
  793. data/spec/units/yaml_wrapper_spec.rb +4 -1
  794. data/vendor/cmock/docs/CMock_Summary.md +11 -0
  795. data/vendor/cmock/lib/cmock_config.rb +1 -0
  796. data/vendor/cmock/lib/cmock_generator.rb +5 -1
  797. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
  798. data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
  799. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
  800. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
  801. data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
  802. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
  803. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  804. data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
  805. data/vendor/cmock/vendor/unity/test/Makefile +9 -2
  806. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
  807. data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  808. data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  809. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  810. data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  811. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
  812. data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
  813. data/vendor/diy/lib/diy/factory.rb +5 -4
  814. data/vendor/diy/lib/diy.rb +5 -4
  815. data/vendor/diy/sample_code/car.rb +5 -4
  816. data/vendor/diy/sample_code/chassis.rb +5 -4
  817. data/vendor/diy/sample_code/diy_example.rb +5 -4
  818. data/vendor/diy/sample_code/engine.rb +5 -4
  819. data/vendor/diy/sample_code/objects.yml +5 -4
  820. data/vendor/diy/test/constructor.rb +5 -4
  821. data/vendor/diy/test/diy_test.rb +5 -4
  822. data/vendor/diy/test/factory_test.rb +5 -4
  823. data/vendor/diy/test/files/broken_construction.yml +5 -4
  824. data/vendor/diy/test/files/cat/cat.rb +5 -4
  825. data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
  826. data/vendor/diy/test/files/cat/heritage.rb +5 -4
  827. data/vendor/diy/test/files/cat/needs_input.yml +5 -4
  828. data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
  829. data/vendor/diy/test/files/dog/dog_model.rb +5 -4
  830. data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
  831. data/vendor/diy/test/files/dog/dog_view.rb +5 -4
  832. data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
  833. data/vendor/diy/test/files/dog/other_thing.rb +5 -4
  834. data/vendor/diy/test/files/dog/simple.yml +5 -4
  835. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
  836. data/vendor/diy/test/files/donkey/foo.rb +5 -4
  837. data/vendor/diy/test/files/factory/beef.rb +5 -4
  838. data/vendor/diy/test/files/factory/dog.rb +5 -4
  839. data/vendor/diy/test/files/factory/factory.yml +5 -4
  840. data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
  841. data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
  842. data/vendor/diy/test/files/factory/kitten.rb +5 -4
  843. data/vendor/diy/test/files/fud/objects.yml +5 -4
  844. data/vendor/diy/test/files/fud/toy.rb +5 -4
  845. data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
  846. data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
  847. data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
  848. data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
  849. data/vendor/diy/test/files/functions/objects.yml +5 -4
  850. data/vendor/diy/test/files/functions/thing.rb +5 -4
  851. data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
  852. data/vendor/diy/test/files/functions/things_builder.rb +5 -4
  853. data/vendor/diy/test/files/gnu/objects.yml +5 -4
  854. data/vendor/diy/test/files/gnu/thinger.rb +5 -4
  855. data/vendor/diy/test/files/goat/base.rb +5 -4
  856. data/vendor/diy/test/files/goat/can.rb +5 -4
  857. data/vendor/diy/test/files/goat/goat.rb +5 -4
  858. data/vendor/diy/test/files/goat/objects.yml +5 -4
  859. data/vendor/diy/test/files/goat/paper.rb +5 -4
  860. data/vendor/diy/test/files/goat/plane.rb +5 -4
  861. data/vendor/diy/test/files/goat/shirt.rb +5 -4
  862. data/vendor/diy/test/files/goat/wings.rb +5 -4
  863. data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
  864. data/vendor/diy/test/files/horse/objects.yml +5 -4
  865. data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
  866. data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
  867. data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
  868. data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
  869. data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
  870. data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
  871. data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
  872. data/vendor/diy/test/files/namespace/objects.yml +5 -4
  873. data/vendor/diy/test/files/namespace/road.rb +5 -4
  874. data/vendor/diy/test/files/namespace/sky.rb +5 -4
  875. data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
  876. data/vendor/diy/test/files/non_singleton/air.rb +5 -4
  877. data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
  878. data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
  879. data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
  880. data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
  881. data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
  882. data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
  883. data/vendor/diy/test/files/yak/core_model.rb +5 -4
  884. data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
  885. data/vendor/diy/test/files/yak/core_view.rb +5 -4
  886. data/vendor/diy/test/files/yak/data_source.rb +5 -4
  887. data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
  888. data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
  889. data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
  890. data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
  891. data/vendor/diy/test/files/yak/krill.rb +5 -4
  892. data/vendor/diy/test/files/yak/my_objects.yml +5 -4
  893. data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
  894. data/vendor/diy/test/test_helper.rb +5 -4
  895. data/vendor/unity/auto/generate_module.rb +4 -4
  896. data/vendor/unity/auto/generate_test_runner.rb +5 -1
  897. data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  898. data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  899. data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  900. data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  901. data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  902. data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
  903. metadata +770 -285
  904. data/assets/tests_with_fallback_conditionals/src/conditional_module.c +0 -18
  905. data/bin/actions_wrapper.rb +0 -51
  906. data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
  907. data/docs/mkdocs/assets/images/ceedling.svg +0 -90
  908. data/docs/mkdocs/assets/images/favicon.png +0 -0
  909. data/docs/mkdocs/assets/stylesheets/admonitions.css +0 -152
  910. data/docs/mkdocs/assets/stylesheets/fixes-local.css +0 -15
  911. data/docs/mkdocs/assets/stylesheets/styling.css +0 -102
  912. data/docs/mkdocs/configuration/environment-vars.md +0 -14
  913. data/docs/mkdocs/configuration/global-collections.md +0 -156
  914. data/docs/mkdocs/configuration/index.md +0 -75
  915. data/docs/mkdocs/configuration/loading.md +0 -89
  916. data/docs/mkdocs/configuration/mixins.md +0 -607
  917. data/docs/mkdocs/configuration/parallel-builds.md +0 -97
  918. data/docs/mkdocs/configuration/project-file.md +0 -216
  919. data/docs/mkdocs/configuration/reference/cexception.md +0 -35
  920. data/docs/mkdocs/configuration/reference/cmock.md +0 -106
  921. data/docs/mkdocs/configuration/reference/defines.md +0 -352
  922. data/docs/mkdocs/configuration/reference/environment.md +0 -55
  923. data/docs/mkdocs/configuration/reference/extension.md +0 -63
  924. data/docs/mkdocs/configuration/reference/files.md +0 -154
  925. data/docs/mkdocs/configuration/reference/flags.md +0 -296
  926. data/docs/mkdocs/configuration/reference/index.md +0 -176
  927. data/docs/mkdocs/configuration/reference/libraries.md +0 -82
  928. data/docs/mkdocs/configuration/reference/mixins.md +0 -24
  929. data/docs/mkdocs/configuration/reference/partials.md +0 -38
  930. data/docs/mkdocs/configuration/reference/paths.md +0 -276
  931. data/docs/mkdocs/configuration/reference/plugins.md +0 -60
  932. data/docs/mkdocs/configuration/reference/project.md +0 -333
  933. data/docs/mkdocs/configuration/reference/release-build.md +0 -62
  934. data/docs/mkdocs/configuration/reference/test-build.md +0 -55
  935. data/docs/mkdocs/configuration/reference/test-runner.md +0 -61
  936. data/docs/mkdocs/configuration/reference/tools.md +0 -457
  937. data/docs/mkdocs/configuration/reference/unity.md +0 -49
  938. data/docs/mkdocs/configuration/which-ceedling.md +0 -77
  939. data/docs/mkdocs/development/index.md +0 -50
  940. data/docs/mkdocs/development/plugins/configuration.md +0 -164
  941. data/docs/mkdocs/development/plugins/index.md +0 -84
  942. data/docs/mkdocs/development/plugins/plugin-subclass.md +0 -513
  943. data/docs/mkdocs/development/plugins/rake-tasks.md +0 -54
  944. data/docs/mkdocs/development/workflow.md +0 -284
  945. data/docs/mkdocs/getting-started/command-line.md +0 -477
  946. data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +0 -65
  947. data/docs/mkdocs/getting-started/example-projects/index.md +0 -49
  948. data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +0 -60
  949. data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +0 -45
  950. data/docs/mkdocs/getting-started/index.md +0 -41
  951. data/docs/mkdocs/getting-started/installation.md +0 -179
  952. data/docs/mkdocs/getting-started/quick-start.md +0 -86
  953. data/docs/mkdocs/help.md +0 -49
  954. data/docs/mkdocs/index.md +0 -222
  955. data/docs/mkdocs/overview/build-system.md +0 -115
  956. data/docs/mkdocs/overview/index.md +0 -29
  957. data/docs/mkdocs/overview/test-environments.md +0 -33
  958. data/docs/mkdocs/overview/tools-and-frameworks.md +0 -115
  959. data/docs/mkdocs/plugins/beep.md +0 -134
  960. data/docs/mkdocs/plugins/bullseye.md +0 -83
  961. data/docs/mkdocs/plugins/command-hooks.md +0 -268
  962. data/docs/mkdocs/plugins/compile-commands-json-db.md +0 -42
  963. data/docs/mkdocs/plugins/cppcheck.md +0 -377
  964. data/docs/mkdocs/plugins/dependencies.md +0 -310
  965. data/docs/mkdocs/plugins/fff.md +0 -247
  966. data/docs/mkdocs/plugins/gcov/examples.md +0 -92
  967. data/docs/mkdocs/plugins/gcov/gcovr.md +0 -412
  968. data/docs/mkdocs/plugins/gcov/index.md +0 -74
  969. data/docs/mkdocs/plugins/gcov/overview.md +0 -145
  970. data/docs/mkdocs/plugins/gcov/reportgenerator.md +0 -140
  971. data/docs/mkdocs/plugins/gcov/reporting.md +0 -147
  972. data/docs/mkdocs/plugins/gcov/setup.md +0 -232
  973. data/docs/mkdocs/plugins/gcov/tool-versions.md +0 -60
  974. data/docs/mkdocs/plugins/gcov/troubleshooting.md +0 -78
  975. data/docs/mkdocs/plugins/index.md +0 -261
  976. data/docs/mkdocs/plugins/module-generator.md +0 -267
  977. data/docs/mkdocs/plugins/report-build-warnings-log.md +0 -42
  978. data/docs/mkdocs/plugins/report-tests-gtestlike-stdout.md +0 -98
  979. data/docs/mkdocs/plugins/report-tests-ide-stdout.md +0 -63
  980. data/docs/mkdocs/plugins/report-tests-log-factory.md +0 -454
  981. data/docs/mkdocs/plugins/report-tests-pretty-stdout.md +0 -56
  982. data/docs/mkdocs/plugins/report-tests-raw-output-log.md +0 -52
  983. data/docs/mkdocs/plugins/report-tests-teamcity-stdout.md +0 -96
  984. data/docs/mkdocs/plugins/sample_html_report.png +0 -0
  985. data/docs/mkdocs/plugins/valgrind.md +0 -198
  986. data/docs/mkdocs/project/release-history.md +0 -61
  987. data/docs/mkdocs/project/upgrade.md +0 -85
  988. data/docs/mkdocs/reference/build-directives.md +0 -37
  989. data/docs/mkdocs/reference/command-line.md +0 -323
  990. data/docs/mkdocs/reference/environment-vars.md +0 -60
  991. data/docs/mkdocs/reference/gcov-plugin.md +0 -600
  992. data/docs/mkdocs/reference/global-collections.md +0 -160
  993. data/docs/mkdocs/reference/index.md +0 -65
  994. data/docs/mkdocs/reference/partials-macros.md +0 -79
  995. data/docs/mkdocs/reference/project-configuration.md +0 -46
  996. data/docs/mkdocs/snapshot/assets/project.yml +0 -404
  997. data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +0 -210
  998. data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +0 -283
  999. data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +0 -92
  1000. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +0 -32
  1001. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +0 -136
  1002. data/docs/mkdocs/snapshot.yml +0 -20
  1003. data/docs/mkdocs/testing-guide/build-directives.md +0 -153
  1004. data/docs/mkdocs/testing-guide/conventions.md +0 -616
  1005. data/docs/mkdocs/testing-guide/frameworks.md +0 -192
  1006. data/docs/mkdocs/testing-guide/index.md +0 -80
  1007. data/docs/mkdocs/testing-guide/partials/configuration.md +0 -67
  1008. data/docs/mkdocs/testing-guide/partials/conventions.md +0 -68
  1009. data/docs/mkdocs/testing-guide/partials/directives.md +0 -212
  1010. data/docs/mkdocs/testing-guide/partials/example.md +0 -149
  1011. data/docs/mkdocs/testing-guide/partials/index.md +0 -88
  1012. data/docs/mkdocs/testing-guide/partials/overview.md +0 -81
  1013. data/docs/mkdocs/testing-guide/partials/variables.md +0 -244
  1014. data/docs/mkdocs/testing-guide/test-cases.md +0 -194
  1015. data/docs/mkdocs/testing-guide/test-sample.md +0 -94
  1016. data/docs/mkdocs/testing-guide/test-suite-anatomy.md +0 -58
  1017. data/lib/ceedling/cacheinator.rb +0 -53
  1018. data/lib/ceedling/cacheinator_helper.rb +0 -60
  1019. data/lib/ceedling/dependinator.rb +0 -31
  1020. data/lib/ceedling/makefile.rb +0 -52
  1021. data/lib/ceedling/release_invoker.rb +0 -112
  1022. data/lib/ceedling/rules_release.rake +0 -109
  1023. data/lib/ceedling/rules_tests.rake +0 -40
  1024. data/lib/ceedling/tasks_release.rake +0 -36
  1025. data/plugins/fff/vendor/fff/Makefile +0 -10
  1026. data/plugins/fff/vendor/fff/buildandtest +0 -15
  1027. data/plugins/fff/vendor/fff/examples/Makefile +0 -7
  1028. data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
  1029. data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
  1030. data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
  1031. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
  1032. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
  1033. data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
  1034. data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
  1035. data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
  1036. data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
  1037. data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
  1038. data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
  1039. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
  1040. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
  1041. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
  1042. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
  1043. data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
  1044. data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
  1045. data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
  1046. data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
  1047. data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
  1048. data/plugins/fff/vendor/fff/test/Makefile +0 -81
  1049. data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
  1050. data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
  1051. data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
  1052. data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
  1053. data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
  1054. data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
  1055. data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
  1056. data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
  1057. data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
  1058. data/spec/units/configurator_spec.rb +0 -232
  1059. /data/assets/{ceedling → features/ceedling} +0 -0
  1060. /data/assets/{ceedling.cmd → features/ceedling.cmd} +0 -0
  1061. /data/assets/{default_gitignore → features/default_gitignore} +0 -0
  1062. /data/assets/{broken_uncovered_file.c → fixtures/broken_uncovered_file.c} +0 -0
  1063. /data/assets/{example_file.c → fixtures/example_file.c} +0 -0
  1064. /data/assets/{example_file.h → fixtures/example_file.h} +0 -0
  1065. /data/assets/{example_file_call.c → fixtures/example_file_call.c} +0 -0
  1066. /data/assets/{example_file_call.h → fixtures/example_file_call.h} +0 -0
  1067. /data/assets/{example_file_with_statics.c → fixtures/example_file_with_statics.c} +0 -0
  1068. /data/assets/{example_file_with_stdio.c → fixtures/example_file_with_stdio.c} +0 -0
  1069. /data/assets/{example_file_with_stdio.h → fixtures/example_file_with_stdio.h} +0 -0
  1070. /data/assets/{fake_crash_test_fixture.rb → fixtures/fake_crash_test_fixture.rb} +0 -0
  1071. /data/assets/{partial_all_module.h → fixtures/partial_all_module.h} +0 -0
  1072. /data/assets/{run_with_ubsan.rb → fixtures/run_with_ubsan.rb} +0 -0
  1073. /data/assets/{same_dir_pairing_module.c → fixtures/same_dir_pairing_module.c} +0 -0
  1074. /data/assets/{same_dir_pairing_module.h → fixtures/same_dir_pairing_module.h} +0 -0
  1075. /data/assets/{same_dir_pairing_module_func.h → fixtures/same_dir_pairing_module_func.h} +0 -0
  1076. /data/assets/{same_dir_pairing_other.c → fixtures/same_dir_pairing_other.c} +0 -0
  1077. /data/assets/{same_dir_pairing_other.h → fixtures/same_dir_pairing_other.h} +0 -0
  1078. /data/assets/{test_example_file.c → fixtures/test_example_file.c} +0 -0
  1079. /data/assets/{test_example_file_2.c → fixtures/test_example_file_2.c} +0 -0
  1080. /data/assets/{test_example_file_source_include.c → fixtures/test_example_file_source_include.c} +0 -0
  1081. /data/assets/{test_example_file_success.c → fixtures/test_example_file_success.c} +0 -0
  1082. /data/assets/{test_example_file_unity_printf.c → fixtures/test_example_file_unity_printf.c} +0 -0
  1083. /data/assets/{test_example_file_verbose.c → fixtures/test_example_file_verbose.c} +0 -0
  1084. /data/assets/{test_example_file_with_mock.c → fixtures/test_example_file_with_mock.c} +0 -0
  1085. /data/assets/{test_example_file_with_stdio.c → fixtures/test_example_file_with_stdio.c} +0 -0
  1086. /data/assets/{test_example_with_parameterized_tests.c → fixtures/test_example_with_parameterized_tests.c} +0 -0
  1087. /data/assets/{test_partial_all_module.c → fixtures/test_partial_all_module.c} +0 -0
  1088. /data/assets/{test_same_dir_pairing.c → fixtures/test_same_dir_pairing.c} +0 -0
  1089. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_config.h +0 -0
  1090. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_extra.h +0 -0
  1091. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/local_flag_extra.h +0 -0
  1092. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_extra.h +0 -0
  1093. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_wrapper.h +0 -0
  1094. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/project_flag_extra.h +0 -0
  1095. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.h +0 -0
  1096. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.c +0 -0
  1097. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.h +0 -0
  1098. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.c +0 -0
  1099. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.h +0 -0
  1100. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware.c +0 -0
  1101. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware_special.c +0 -0
  1102. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.c +0 -0
  1103. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.h +0 -0
  1104. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder.c +0 -0
  1105. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder_partial.c +0 -0
  1106. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/conditional_module.h +0 -0
  1107. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/optional_dep.h +0 -0
  1108. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.c +0 -0
  1109. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.h +0 -0
  1110. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.c +0 -0
  1111. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.h +0 -0
  1112. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.c +0 -0
  1113. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.h +0 -0
  1114. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_blanks.c +0 -0
  1115. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_counter.c +0 -0
  1116. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_decorators.c +0 -0
  1117. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.c +0 -0
  1118. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.h +0 -0
  1119. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.c +0 -0
  1120. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.h +0 -0
  1121. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.c +0 -0
  1122. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.h +0 -0
  1123. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorA.h +0 -0
  1124. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorB.h +0 -0
  1125. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorC.h +0 -0
  1126. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareA.c +0 -0
  1127. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareB.c +0 -0
  1128. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareC.c +0 -0
  1129. /data/assets/{uncovered_example_file.c → fixtures/uncovered_example_file.c} +0 -0
  1130. /data/plugins/bullseye/assets/{template.erb → coverage.template} +0 -0
@@ -89,10 +89,34 @@
89
89
  </div>
90
90
  <div data-md-component="announce">
91
91
 
92
+ <aside class="md-banner">
93
+ <div class="md-banner__inner md-grid md-typeset">
94
+
95
+
96
+
97
+
98
+ </div>
99
+
100
+ </aside>
101
+
92
102
  </div>
93
103
 
94
104
  <div data-md-color-scheme="default" data-md-component="outdated" hidden>
95
105
 
106
+ <aside class="md-banner md-banner--warning">
107
+ <div class="md-banner__inner md-grid md-typeset">
108
+
109
+
110
+ You are not viewing the latest version.
111
+ <a href="../..">
112
+ <strong>Click here to go to latest.</strong>
113
+ </a>
114
+
115
+
116
+ </div>
117
+ <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>
118
+ </aside>
119
+
96
120
  </div>
97
121
 
98
122
 
@@ -332,7 +356,7 @@
332
356
 
333
357
 
334
358
  <li class="md-tabs__item">
335
- <a href="../project/release-history.html" class="md-tabs__link">
359
+ <a href="../project/index.html" class="md-tabs__link">
336
360
 
337
361
 
338
362
 
@@ -641,6 +665,8 @@
641
665
 
642
666
 
643
667
 
668
+
669
+
644
670
 
645
671
 
646
672
 
@@ -788,6 +814,34 @@
788
814
 
789
815
 
790
816
 
817
+ <li class="md-nav__item">
818
+ <a href="../getting-started/builds.html" class="md-nav__link">
819
+
820
+
821
+
822
+ <span class="md-ellipsis">
823
+
824
+
825
+ Builds
826
+
827
+
828
+
829
+ </span>
830
+
831
+
832
+
833
+ </a>
834
+ </li>
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
791
845
 
792
846
 
793
847
 
@@ -814,7 +868,7 @@
814
868
 
815
869
 
816
870
 
817
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_5" >
871
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
818
872
 
819
873
 
820
874
  <div class="md-nav__link md-nav__container">
@@ -836,14 +890,14 @@
836
890
  </a>
837
891
 
838
892
 
839
- <label class="md-nav__link " for="__nav_3_5" id="__nav_3_5_label" tabindex="0">
893
+ <label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
840
894
  <span class="md-nav__icon md-icon"></span>
841
895
  </label>
842
896
 
843
897
  </div>
844
898
 
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">
899
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
900
+ <label class="md-nav__title" for="__nav_3_6">
847
901
  <span class="md-nav__icon md-icon"></span>
848
902
 
849
903
 
@@ -2412,6 +2466,8 @@
2412
2466
 
2413
2467
 
2414
2468
 
2469
+
2470
+
2415
2471
 
2416
2472
 
2417
2473
 
@@ -3064,14 +3120,42 @@
3064
3120
  </li>
3065
3121
 
3066
3122
  <li class="md-nav__item">
3067
- <a href="#setup" class="md-nav__link">
3123
+ <a href="#installation-set-up" class="md-nav__link">
3124
+ <span class="md-ellipsis">
3125
+
3126
+ Installation &amp; set up
3127
+
3128
+ </span>
3129
+ </a>
3130
+
3131
+ <nav class="md-nav" aria-label="Installation &amp; set up">
3132
+ <ul class="md-nav__list">
3133
+
3134
+ <li class="md-nav__item">
3135
+ <a href="#installation" class="md-nav__link">
3136
+ <span class="md-ellipsis">
3137
+
3138
+ Installation
3139
+
3140
+ </span>
3141
+ </a>
3142
+
3143
+ </li>
3144
+
3145
+ <li class="md-nav__item">
3146
+ <a href="#enable-the-plugin" class="md-nav__link">
3068
3147
  <span class="md-ellipsis">
3069
3148
 
3070
- Setup
3149
+ Enable the plugin
3071
3150
 
3072
3151
  </span>
3073
3152
  </a>
3074
3153
 
3154
+ </li>
3155
+
3156
+ </ul>
3157
+ </nav>
3158
+
3075
3159
  </li>
3076
3160
 
3077
3161
  <li class="md-nav__item">
@@ -3090,7 +3174,106 @@
3090
3174
  <a href="#reports" class="md-nav__link">
3091
3175
  <span class="md-ellipsis">
3092
3176
 
3093
- Reports
3177
+ :reports:
3178
+
3179
+ </span>
3180
+ </a>
3181
+
3182
+ </li>
3183
+
3184
+ <li class="md-nav__item">
3185
+ <a href="#fail_build" class="md-nav__link">
3186
+ <span class="md-ellipsis">
3187
+
3188
+ :fail_build:
3189
+
3190
+ </span>
3191
+ </a>
3192
+
3193
+ </li>
3194
+
3195
+ <li class="md-nav__item">
3196
+ <a href="#fail_build_severities" class="md-nav__link">
3197
+ <span class="md-ellipsis">
3198
+
3199
+ :fail_build_severities:
3200
+
3201
+ </span>
3202
+ </a>
3203
+
3204
+ </li>
3205
+
3206
+ <li class="md-nav__item">
3207
+ <a href="#html_title" class="md-nav__link">
3208
+ <span class="md-ellipsis">
3209
+
3210
+ :html_title:
3211
+
3212
+ </span>
3213
+ </a>
3214
+
3215
+ </li>
3216
+
3217
+ <li class="md-nav__item">
3218
+ <a href="#sarif_artifact_filename" class="md-nav__link">
3219
+ <span class="md-ellipsis">
3220
+
3221
+ :sarif_artifact_filename:
3222
+
3223
+ </span>
3224
+ </a>
3225
+
3226
+ </li>
3227
+
3228
+ <li class="md-nav__item">
3229
+ <a href="#text_artifact_filename" class="md-nav__link">
3230
+ <span class="md-ellipsis">
3231
+
3232
+ :text_artifact_filename:
3233
+
3234
+ </span>
3235
+ </a>
3236
+
3237
+ </li>
3238
+
3239
+ <li class="md-nav__item">
3240
+ <a href="#template" class="md-nav__link">
3241
+ <span class="md-ellipsis">
3242
+
3243
+ :template:
3244
+
3245
+ </span>
3246
+ </a>
3247
+
3248
+ </li>
3249
+
3250
+ <li class="md-nav__item">
3251
+ <a href="#xml_artifact_filename" class="md-nav__link">
3252
+ <span class="md-ellipsis">
3253
+
3254
+ :xml_artifact_filename:
3255
+
3256
+ </span>
3257
+ </a>
3258
+
3259
+ </li>
3260
+
3261
+ <li class="md-nav__item">
3262
+ <a href="#xml_report_version" class="md-nav__link">
3263
+ <span class="md-ellipsis">
3264
+
3265
+ :xml_report_version:
3266
+
3267
+ </span>
3268
+ </a>
3269
+
3270
+ </li>
3271
+
3272
+ <li class="md-nav__item">
3273
+ <a href="#project" class="md-nav__link">
3274
+ <span class="md-ellipsis">
3275
+
3276
+ :project:
3094
3277
 
3095
3278
  </span>
3096
3279
  </a>
@@ -3098,10 +3281,10 @@
3098
3281
  </li>
3099
3282
 
3100
3283
  <li class="md-nav__item">
3101
- <a href="#import-project-file" class="md-nav__link">
3284
+ <a href="#defines" class="md-nav__link">
3102
3285
  <span class="md-ellipsis">
3103
3286
 
3104
- Import project file
3287
+ :defines:
3105
3288
 
3106
3289
  </span>
3107
3290
  </a>
@@ -3109,10 +3292,10 @@
3109
3292
  </li>
3110
3293
 
3111
3294
  <li class="md-nav__item">
3112
- <a href="#preprocessor-defines" class="md-nav__link">
3295
+ <a href="#undefines" class="md-nav__link">
3113
3296
  <span class="md-ellipsis">
3114
3297
 
3115
- Preprocessor defines
3298
+ :undefines:
3116
3299
 
3117
3300
  </span>
3118
3301
  </a>
@@ -3123,7 +3306,7 @@
3123
3306
  <a href="#includes" class="md-nav__link">
3124
3307
  <span class="md-ellipsis">
3125
3308
 
3126
- Includes
3309
+ :includes:
3127
3310
 
3128
3311
  </span>
3129
3312
  </a>
@@ -3134,7 +3317,7 @@
3134
3317
  <a href="#excludes" class="md-nav__link">
3135
3318
  <span class="md-ellipsis">
3136
3319
 
3137
- Excludes
3320
+ :excludes:
3138
3321
 
3139
3322
  </span>
3140
3323
  </a>
@@ -3145,7 +3328,7 @@
3145
3328
  <a href="#platform" class="md-nav__link">
3146
3329
  <span class="md-ellipsis">
3147
3330
 
3148
- Platform
3331
+ :platform:
3149
3332
 
3150
3333
  </span>
3151
3334
  </a>
@@ -3156,7 +3339,7 @@
3156
3339
  <a href="#standard" class="md-nav__link">
3157
3340
  <span class="md-ellipsis">
3158
3341
 
3159
- Standard
3342
+ :standard:
3160
3343
 
3161
3344
  </span>
3162
3345
  </a>
@@ -3164,10 +3347,10 @@
3164
3347
  </li>
3165
3348
 
3166
3349
  <li class="md-nav__item">
3167
- <a href="#check-level" class="md-nav__link">
3350
+ <a href="#check_level" class="md-nav__link">
3168
3351
  <span class="md-ellipsis">
3169
3352
 
3170
- Check level
3353
+ :check_level:
3171
3354
 
3172
3355
  </span>
3173
3356
  </a>
@@ -3178,7 +3361,29 @@
3178
3361
  <a href="#addons" class="md-nav__link">
3179
3362
  <span class="md-ellipsis">
3180
3363
 
3181
- Addons
3364
+ :addons:
3365
+
3366
+ </span>
3367
+ </a>
3368
+
3369
+ </li>
3370
+
3371
+ <li class="md-nav__item">
3372
+ <a href="#enable_checks" class="md-nav__link">
3373
+ <span class="md-ellipsis">
3374
+
3375
+ :enable_checks:
3376
+
3377
+ </span>
3378
+ </a>
3379
+
3380
+ </li>
3381
+
3382
+ <li class="md-nav__item">
3383
+ <a href="#disable_checks" class="md-nav__link">
3384
+ <span class="md-ellipsis">
3385
+
3386
+ :disable_checks:
3182
3387
 
3183
3388
  </span>
3184
3389
  </a>
@@ -3186,10 +3391,10 @@
3186
3391
  </li>
3187
3392
 
3188
3393
  <li class="md-nav__item">
3189
- <a href="#checks" class="md-nav__link">
3394
+ <a href="#inline_suppressions" class="md-nav__link">
3190
3395
  <span class="md-ellipsis">
3191
3396
 
3192
- Checks
3397
+ :inline_suppressions:
3193
3398
 
3194
3399
  </span>
3195
3400
  </a>
@@ -3200,7 +3405,7 @@
3200
3405
  <a href="#suppressions" class="md-nav__link">
3201
3406
  <span class="md-ellipsis">
3202
3407
 
3203
- Suppressions
3408
+ :suppressions:
3204
3409
 
3205
3410
  </span>
3206
3411
  </a>
@@ -3208,10 +3413,10 @@
3208
3413
  </li>
3209
3414
 
3210
3415
  <li class="md-nav__item">
3211
- <a href="#library-configuration" class="md-nav__link">
3416
+ <a href="#libraries" class="md-nav__link">
3212
3417
  <span class="md-ellipsis">
3213
3418
 
3214
- Library configuration
3419
+ :libraries:
3215
3420
 
3216
3421
  </span>
3217
3422
  </a>
@@ -3222,7 +3427,7 @@
3222
3427
  <a href="#rules" class="md-nav__link">
3223
3428
  <span class="md-ellipsis">
3224
3429
 
3225
- Rules
3430
+ :rules:
3226
3431
 
3227
3432
  </span>
3228
3433
  </a>
@@ -3230,10 +3435,10 @@
3230
3435
  </li>
3231
3436
 
3232
3437
  <li class="md-nav__item">
3233
- <a href="#extra-options" class="md-nav__link">
3438
+ <a href="#options" class="md-nav__link">
3234
3439
  <span class="md-ellipsis">
3235
3440
 
3236
- Extra options
3441
+ :options:
3237
3442
 
3238
3443
  </span>
3239
3444
  </a>
@@ -3277,11 +3482,55 @@
3277
3482
  </span>
3278
3483
  </a>
3279
3484
 
3485
+ </li>
3486
+
3487
+ <li class="md-nav__item">
3488
+ <a href="#list-suppression-files" class="md-nav__link">
3489
+ <span class="md-ellipsis">
3490
+
3491
+ List suppression files
3492
+
3493
+ </span>
3494
+ </a>
3495
+
3280
3496
  </li>
3281
3497
 
3282
3498
  </ul>
3283
3499
  </nav>
3284
3500
 
3501
+ </li>
3502
+
3503
+ <li class="md-nav__item">
3504
+ <a href="#artifacts" class="md-nav__link">
3505
+ <span class="md-ellipsis">
3506
+
3507
+ Artifacts
3508
+
3509
+ </span>
3510
+ </a>
3511
+
3512
+ </li>
3513
+
3514
+ <li class="md-nav__item">
3515
+ <a href="#console-output" class="md-nav__link">
3516
+ <span class="md-ellipsis">
3517
+
3518
+ Console output
3519
+
3520
+ </span>
3521
+ </a>
3522
+
3523
+ </li>
3524
+
3525
+ <li class="md-nav__item">
3526
+ <a href="#interpreting-results" class="md-nav__link">
3527
+ <span class="md-ellipsis">
3528
+
3529
+ Interpreting results
3530
+
3531
+ </span>
3532
+ </a>
3533
+
3285
3534
  </li>
3286
3535
 
3287
3536
  </ul>
@@ -3328,14 +3577,14 @@
3328
3577
 
3329
3578
 
3330
3579
  <li class="md-nav__item">
3331
- <a href="bullseye.html" class="md-nav__link">
3580
+ <a href="sanitize.html" class="md-nav__link">
3332
3581
 
3333
3582
 
3334
3583
 
3335
3584
  <span class="md-ellipsis">
3336
3585
 
3337
3586
 
3338
- Bullseye (Coverage)
3587
+ Sanitize (ASan, UBSan & Leaks)
3339
3588
 
3340
3589
 
3341
3590
 
@@ -3355,15 +3604,43 @@
3355
3604
 
3356
3605
 
3357
3606
 
3358
- <li class="md-nav__item">
3359
- <a href="fff.html" class="md-nav__link">
3607
+
3608
+
3609
+
3610
+
3611
+
3612
+
3613
+
3614
+
3615
+
3616
+
3617
+
3618
+
3619
+
3620
+
3621
+
3622
+
3623
+
3624
+
3625
+
3626
+
3627
+
3628
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
3629
+
3360
3630
 
3631
+
3632
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
3633
+
3634
+
3635
+ <div class="md-nav__link md-nav__container">
3636
+ <a href="bullseye/index.html" class="md-nav__link ">
3637
+
3361
3638
 
3362
3639
 
3363
3640
  <span class="md-ellipsis">
3364
3641
 
3365
3642
 
3366
- FFF (Fake Functions)
3643
+ Bullseye (Coverage)
3367
3644
 
3368
3645
 
3369
3646
 
@@ -3371,10 +3648,26 @@
3371
3648
 
3372
3649
 
3373
3650
 
3374
- </a>
3375
- </li>
3651
+ </a>
3652
+
3653
+
3654
+ <label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="">
3655
+ <span class="md-nav__icon md-icon"></span>
3656
+ </label>
3657
+
3658
+ </div>
3659
+
3660
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
3661
+ <label class="md-nav__title" for="__nav_6_13">
3662
+ <span class="md-nav__icon md-icon"></span>
3663
+
3664
+
3665
+ Bullseye (Coverage)
3376
3666
 
3377
3667
 
3668
+ </label>
3669
+ <ul class="md-nav__list" data-md-scrollfix>
3670
+
3378
3671
 
3379
3672
 
3380
3673
 
@@ -3384,14 +3677,14 @@
3384
3677
 
3385
3678
 
3386
3679
  <li class="md-nav__item">
3387
- <a href="command-hooks.html" class="md-nav__link">
3680
+ <a href="bullseye/licensing.html" class="md-nav__link">
3388
3681
 
3389
3682
 
3390
3683
 
3391
3684
  <span class="md-ellipsis">
3392
3685
 
3393
3686
 
3394
- Command Hooks
3687
+ Licensing
3395
3688
 
3396
3689
 
3397
3690
 
@@ -3405,8 +3698,72 @@
3405
3698
 
3406
3699
 
3407
3700
 
3408
-
3409
-
3701
+ </ul>
3702
+ </nav>
3703
+
3704
+ </li>
3705
+
3706
+
3707
+
3708
+
3709
+
3710
+
3711
+
3712
+
3713
+
3714
+
3715
+ <li class="md-nav__item">
3716
+ <a href="fff.html" class="md-nav__link">
3717
+
3718
+
3719
+
3720
+ <span class="md-ellipsis">
3721
+
3722
+
3723
+ FFF (Fake Functions)
3724
+
3725
+
3726
+
3727
+ </span>
3728
+
3729
+
3730
+
3731
+ </a>
3732
+ </li>
3733
+
3734
+
3735
+
3736
+
3737
+
3738
+
3739
+
3740
+
3741
+
3742
+
3743
+ <li class="md-nav__item">
3744
+ <a href="command-hooks.html" class="md-nav__link">
3745
+
3746
+
3747
+
3748
+ <span class="md-ellipsis">
3749
+
3750
+
3751
+ Command Hooks
3752
+
3753
+
3754
+
3755
+ </span>
3756
+
3757
+
3758
+
3759
+ </a>
3760
+ </li>
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3410
3767
 
3411
3768
 
3412
3769
 
@@ -3818,6 +4175,12 @@
3818
4175
 
3819
4176
 
3820
4177
 
4178
+
4179
+
4180
+
4181
+
4182
+
4183
+
3821
4184
 
3822
4185
 
3823
4186
 
@@ -3837,8 +4200,9 @@
3837
4200
  <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
3838
4201
 
3839
4202
 
3840
- <label class="md-nav__link" for="__nav_8" id="__nav_8_label" tabindex="0">
3841
-
4203
+ <div class="md-nav__link md-nav__container">
4204
+ <a href="../project/index.html" class="md-nav__link ">
4205
+
3842
4206
 
3843
4207
 
3844
4208
  <span class="md-ellipsis">
@@ -3852,8 +4216,14 @@
3852
4216
 
3853
4217
 
3854
4218
 
3855
- <span class="md-nav__icon md-icon"></span>
3856
- </label>
4219
+ </a>
4220
+
4221
+
4222
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
4223
+ <span class="md-nav__icon md-icon"></span>
4224
+ </label>
4225
+
4226
+ </div>
3857
4227
 
3858
4228
  <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
3859
4229
  <label class="md-nav__title" for="__nav_8">
@@ -3867,6 +4237,8 @@
3867
4237
  <ul class="md-nav__list" data-md-scrollfix>
3868
4238
 
3869
4239
 
4240
+
4241
+
3870
4242
 
3871
4243
 
3872
4244
 
@@ -3900,6 +4272,34 @@
3900
4272
 
3901
4273
 
3902
4274
 
4275
+ <li class="md-nav__item">
4276
+ <a href="../project/sbom.html" class="md-nav__link">
4277
+
4278
+
4279
+
4280
+ <span class="md-ellipsis">
4281
+
4282
+
4283
+ Software Bill of Materials
4284
+
4285
+
4286
+
4287
+ </span>
4288
+
4289
+
4290
+
4291
+ </a>
4292
+ </li>
4293
+
4294
+
4295
+
4296
+
4297
+
4298
+
4299
+
4300
+
4301
+
4302
+
3903
4303
  <li class="md-nav__item">
3904
4304
  <a href="../project/upgrade.html" class="md-nav__link">
3905
4305
 
@@ -3971,6 +4371,8 @@
3971
4371
 
3972
4372
 
3973
4373
 
4374
+
4375
+
3974
4376
 
3975
4377
 
3976
4378
 
@@ -4061,6 +4463,34 @@
4061
4463
 
4062
4464
 
4063
4465
 
4466
+ <li class="md-nav__item">
4467
+ <a href="../development/releases.html" class="md-nav__link">
4468
+
4469
+
4470
+
4471
+ <span class="md-ellipsis">
4472
+
4473
+
4474
+ Branching & Releases
4475
+
4476
+
4477
+
4478
+ </span>
4479
+
4480
+
4481
+
4482
+ </a>
4483
+ </li>
4484
+
4485
+
4486
+
4487
+
4488
+
4489
+
4490
+
4491
+
4492
+
4493
+
4064
4494
 
4065
4495
 
4066
4496
 
@@ -4087,7 +4517,7 @@
4087
4517
 
4088
4518
 
4089
4519
 
4090
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_3" >
4520
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
4091
4521
 
4092
4522
 
4093
4523
  <div class="md-nav__link md-nav__container">
@@ -4109,14 +4539,14 @@
4109
4539
  </a>
4110
4540
 
4111
4541
 
4112
- <label class="md-nav__link " for="__nav_10_3" id="__nav_10_3_label" tabindex="0">
4542
+ <label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="0">
4113
4543
  <span class="md-nav__icon md-icon"></span>
4114
4544
  </label>
4115
4545
 
4116
4546
  </div>
4117
4547
 
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">
4548
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
4549
+ <label class="md-nav__title" for="__nav_10_4">
4120
4550
  <span class="md-nav__icon md-icon"></span>
4121
4551
 
4122
4552
 
@@ -4265,14 +4695,42 @@
4265
4695
  </li>
4266
4696
 
4267
4697
  <li class="md-nav__item">
4268
- <a href="#setup" class="md-nav__link">
4698
+ <a href="#installation-set-up" class="md-nav__link">
4269
4699
  <span class="md-ellipsis">
4270
4700
 
4271
- Setup
4701
+ Installation &amp; set up
4272
4702
 
4273
4703
  </span>
4274
4704
  </a>
4275
4705
 
4706
+ <nav class="md-nav" aria-label="Installation &amp; set up">
4707
+ <ul class="md-nav__list">
4708
+
4709
+ <li class="md-nav__item">
4710
+ <a href="#installation" class="md-nav__link">
4711
+ <span class="md-ellipsis">
4712
+
4713
+ Installation
4714
+
4715
+ </span>
4716
+ </a>
4717
+
4718
+ </li>
4719
+
4720
+ <li class="md-nav__item">
4721
+ <a href="#enable-the-plugin" class="md-nav__link">
4722
+ <span class="md-ellipsis">
4723
+
4724
+ Enable the plugin
4725
+
4726
+ </span>
4727
+ </a>
4728
+
4729
+ </li>
4730
+
4731
+ </ul>
4732
+ </nav>
4733
+
4276
4734
  </li>
4277
4735
 
4278
4736
  <li class="md-nav__item">
@@ -4291,7 +4749,40 @@
4291
4749
  <a href="#reports" class="md-nav__link">
4292
4750
  <span class="md-ellipsis">
4293
4751
 
4294
- Reports
4752
+ :reports:
4753
+
4754
+ </span>
4755
+ </a>
4756
+
4757
+ </li>
4758
+
4759
+ <li class="md-nav__item">
4760
+ <a href="#fail_build" class="md-nav__link">
4761
+ <span class="md-ellipsis">
4762
+
4763
+ :fail_build:
4764
+
4765
+ </span>
4766
+ </a>
4767
+
4768
+ </li>
4769
+
4770
+ <li class="md-nav__item">
4771
+ <a href="#fail_build_severities" class="md-nav__link">
4772
+ <span class="md-ellipsis">
4773
+
4774
+ :fail_build_severities:
4775
+
4776
+ </span>
4777
+ </a>
4778
+
4779
+ </li>
4780
+
4781
+ <li class="md-nav__item">
4782
+ <a href="#html_title" class="md-nav__link">
4783
+ <span class="md-ellipsis">
4784
+
4785
+ :html_title:
4295
4786
 
4296
4787
  </span>
4297
4788
  </a>
@@ -4299,10 +4790,10 @@
4299
4790
  </li>
4300
4791
 
4301
4792
  <li class="md-nav__item">
4302
- <a href="#import-project-file" class="md-nav__link">
4793
+ <a href="#sarif_artifact_filename" class="md-nav__link">
4303
4794
  <span class="md-ellipsis">
4304
4795
 
4305
- Import project file
4796
+ :sarif_artifact_filename:
4306
4797
 
4307
4798
  </span>
4308
4799
  </a>
@@ -4310,10 +4801,76 @@
4310
4801
  </li>
4311
4802
 
4312
4803
  <li class="md-nav__item">
4313
- <a href="#preprocessor-defines" class="md-nav__link">
4804
+ <a href="#text_artifact_filename" class="md-nav__link">
4314
4805
  <span class="md-ellipsis">
4315
4806
 
4316
- Preprocessor defines
4807
+ :text_artifact_filename:
4808
+
4809
+ </span>
4810
+ </a>
4811
+
4812
+ </li>
4813
+
4814
+ <li class="md-nav__item">
4815
+ <a href="#template" class="md-nav__link">
4816
+ <span class="md-ellipsis">
4817
+
4818
+ :template:
4819
+
4820
+ </span>
4821
+ </a>
4822
+
4823
+ </li>
4824
+
4825
+ <li class="md-nav__item">
4826
+ <a href="#xml_artifact_filename" class="md-nav__link">
4827
+ <span class="md-ellipsis">
4828
+
4829
+ :xml_artifact_filename:
4830
+
4831
+ </span>
4832
+ </a>
4833
+
4834
+ </li>
4835
+
4836
+ <li class="md-nav__item">
4837
+ <a href="#xml_report_version" class="md-nav__link">
4838
+ <span class="md-ellipsis">
4839
+
4840
+ :xml_report_version:
4841
+
4842
+ </span>
4843
+ </a>
4844
+
4845
+ </li>
4846
+
4847
+ <li class="md-nav__item">
4848
+ <a href="#project" class="md-nav__link">
4849
+ <span class="md-ellipsis">
4850
+
4851
+ :project:
4852
+
4853
+ </span>
4854
+ </a>
4855
+
4856
+ </li>
4857
+
4858
+ <li class="md-nav__item">
4859
+ <a href="#defines" class="md-nav__link">
4860
+ <span class="md-ellipsis">
4861
+
4862
+ :defines:
4863
+
4864
+ </span>
4865
+ </a>
4866
+
4867
+ </li>
4868
+
4869
+ <li class="md-nav__item">
4870
+ <a href="#undefines" class="md-nav__link">
4871
+ <span class="md-ellipsis">
4872
+
4873
+ :undefines:
4317
4874
 
4318
4875
  </span>
4319
4876
  </a>
@@ -4324,7 +4881,7 @@
4324
4881
  <a href="#includes" class="md-nav__link">
4325
4882
  <span class="md-ellipsis">
4326
4883
 
4327
- Includes
4884
+ :includes:
4328
4885
 
4329
4886
  </span>
4330
4887
  </a>
@@ -4335,7 +4892,7 @@
4335
4892
  <a href="#excludes" class="md-nav__link">
4336
4893
  <span class="md-ellipsis">
4337
4894
 
4338
- Excludes
4895
+ :excludes:
4339
4896
 
4340
4897
  </span>
4341
4898
  </a>
@@ -4346,7 +4903,7 @@
4346
4903
  <a href="#platform" class="md-nav__link">
4347
4904
  <span class="md-ellipsis">
4348
4905
 
4349
- Platform
4906
+ :platform:
4350
4907
 
4351
4908
  </span>
4352
4909
  </a>
@@ -4357,7 +4914,7 @@
4357
4914
  <a href="#standard" class="md-nav__link">
4358
4915
  <span class="md-ellipsis">
4359
4916
 
4360
- Standard
4917
+ :standard:
4361
4918
 
4362
4919
  </span>
4363
4920
  </a>
@@ -4365,10 +4922,10 @@
4365
4922
  </li>
4366
4923
 
4367
4924
  <li class="md-nav__item">
4368
- <a href="#check-level" class="md-nav__link">
4925
+ <a href="#check_level" class="md-nav__link">
4369
4926
  <span class="md-ellipsis">
4370
4927
 
4371
- Check level
4928
+ :check_level:
4372
4929
 
4373
4930
  </span>
4374
4931
  </a>
@@ -4379,7 +4936,7 @@
4379
4936
  <a href="#addons" class="md-nav__link">
4380
4937
  <span class="md-ellipsis">
4381
4938
 
4382
- Addons
4939
+ :addons:
4383
4940
 
4384
4941
  </span>
4385
4942
  </a>
@@ -4387,10 +4944,32 @@
4387
4944
  </li>
4388
4945
 
4389
4946
  <li class="md-nav__item">
4390
- <a href="#checks" class="md-nav__link">
4947
+ <a href="#enable_checks" class="md-nav__link">
4391
4948
  <span class="md-ellipsis">
4392
4949
 
4393
- Checks
4950
+ :enable_checks:
4951
+
4952
+ </span>
4953
+ </a>
4954
+
4955
+ </li>
4956
+
4957
+ <li class="md-nav__item">
4958
+ <a href="#disable_checks" class="md-nav__link">
4959
+ <span class="md-ellipsis">
4960
+
4961
+ :disable_checks:
4962
+
4963
+ </span>
4964
+ </a>
4965
+
4966
+ </li>
4967
+
4968
+ <li class="md-nav__item">
4969
+ <a href="#inline_suppressions" class="md-nav__link">
4970
+ <span class="md-ellipsis">
4971
+
4972
+ :inline_suppressions:
4394
4973
 
4395
4974
  </span>
4396
4975
  </a>
@@ -4401,7 +4980,7 @@
4401
4980
  <a href="#suppressions" class="md-nav__link">
4402
4981
  <span class="md-ellipsis">
4403
4982
 
4404
- Suppressions
4983
+ :suppressions:
4405
4984
 
4406
4985
  </span>
4407
4986
  </a>
@@ -4409,10 +4988,10 @@
4409
4988
  </li>
4410
4989
 
4411
4990
  <li class="md-nav__item">
4412
- <a href="#library-configuration" class="md-nav__link">
4991
+ <a href="#libraries" class="md-nav__link">
4413
4992
  <span class="md-ellipsis">
4414
4993
 
4415
- Library configuration
4994
+ :libraries:
4416
4995
 
4417
4996
  </span>
4418
4997
  </a>
@@ -4423,7 +5002,7 @@
4423
5002
  <a href="#rules" class="md-nav__link">
4424
5003
  <span class="md-ellipsis">
4425
5004
 
4426
- Rules
5005
+ :rules:
4427
5006
 
4428
5007
  </span>
4429
5008
  </a>
@@ -4431,10 +5010,10 @@
4431
5010
  </li>
4432
5011
 
4433
5012
  <li class="md-nav__item">
4434
- <a href="#extra-options" class="md-nav__link">
5013
+ <a href="#options" class="md-nav__link">
4435
5014
  <span class="md-ellipsis">
4436
5015
 
4437
- Extra options
5016
+ :options:
4438
5017
 
4439
5018
  </span>
4440
5019
  </a>
@@ -4478,11 +5057,55 @@
4478
5057
  </span>
4479
5058
  </a>
4480
5059
 
5060
+ </li>
5061
+
5062
+ <li class="md-nav__item">
5063
+ <a href="#list-suppression-files" class="md-nav__link">
5064
+ <span class="md-ellipsis">
5065
+
5066
+ List suppression files
5067
+
5068
+ </span>
5069
+ </a>
5070
+
4481
5071
  </li>
4482
5072
 
4483
5073
  </ul>
4484
5074
  </nav>
4485
5075
 
5076
+ </li>
5077
+
5078
+ <li class="md-nav__item">
5079
+ <a href="#artifacts" class="md-nav__link">
5080
+ <span class="md-ellipsis">
5081
+
5082
+ Artifacts
5083
+
5084
+ </span>
5085
+ </a>
5086
+
5087
+ </li>
5088
+
5089
+ <li class="md-nav__item">
5090
+ <a href="#console-output" class="md-nav__link">
5091
+ <span class="md-ellipsis">
5092
+
5093
+ Console output
5094
+
5095
+ </span>
5096
+ </a>
5097
+
5098
+ </li>
5099
+
5100
+ <li class="md-nav__item">
5101
+ <a href="#interpreting-results" class="md-nav__link">
5102
+ <span class="md-ellipsis">
5103
+
5104
+ Interpreting results
5105
+
5106
+ </span>
5107
+ </a>
5108
+
4486
5109
  </li>
4487
5110
 
4488
5111
  </ul>
@@ -4554,256 +5177,452 @@
4554
5177
 
4555
5178
 
4556
5179
  <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>
5180
+ <p>Adds Ceedling tasks to run <a href="https://cppcheck.sourceforge.io">Cppcheck</a> static analysis. Cppcheck finds undefined
5181
+ behavior, dangerous code patterns, and style issues across your project or in a
5182
+ single file, without running your code.</p>
5183
+ <div class="admonition note">
5184
+ <p class="admonition-title">Note</p>
5185
+ <p>A <code>cppcheck:</code> task analyzes source. It builds and runs nothing, so it is not
5186
+ a <a href="../getting-started/builds.html">delta build</a> and shares no state with your
5187
+ <code>test:</code> builds.</p>
5188
+ </div>
5189
+ <hr />
4560
5190
  <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>
5191
+ <p>The Cppcheck plugin runs <a href="https://cppcheck.sourceforge.io">Cppcheck</a> over your project and writes reports to the
5192
+ build artifacts directory. It provides two analysis modes.</p>
4564
5193
  <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>
5194
+ <li><strong>Whole project analysis</strong>: <code>ceedling cppcheck:all</code> analyzes all project
5195
+ sources with every check enabled (<code>--enable=all</code>) and writes the reports you
5196
+ configure.</li>
5197
+ <li><strong>Single file analysis</strong>: <code>ceedling cppcheck:&lt;filename&gt;</code> analyzes one source
5198
+ file using the checks in <a href="#enable_checks"><code>:enable_checks:</code></a>, and prints
5199
+ findings to the console.</li>
4571
5200
  </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>
5201
+ <p>Reports are available in HTML, SARIF, text, and XML. The plugin also exposes
5202
+ most of Cppcheck's configuration surface, including platform, language
5203
+ standard, preprocessor defines, include and exclude paths, addons such as
5204
+ MISRA, library configuration files, regular expression rules, and suppression
5205
+ management.</p>
5206
+ <p>A build can be failed on findings. See <a href="#fail_build"><code>:fail_build:</code></a>.</p>
5207
+ <div class="admonition note">
5208
+ <p class="admonition-title">Analysis runs once per report format</p>
5209
+ <p>Cppcheck emits one format per invocation, so each entry in
5210
+ <a href="#reports"><code>:reports:</code></a> costs its own full analysis pass. Cppcheck's own
5211
+ <code>--cppcheck-build-dir</code> cache reduces the cost of passes after the first.</p>
5212
+ </div>
5213
+ <h2 id="installation-set-up">Installation &amp; set up</h2>
5214
+ <h3 id="installation">Installation</h3>
5215
+ <p>You have several options for getting the <code>cppcheck</code> tool working on your
5216
+ system, including one readymade option.</p>
5217
+ <h4 id="linux-package-manager">Linux package manager</h4>
5218
+ <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>
5219
+ <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
5220
  </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>
5221
+ <h4 id="macos">macOS</h4>
5222
+ <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
5223
  </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>
5224
+ <h4 id="windows">Windows</h4>
5225
+ <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
5226
  </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>
5227
+ <p>Alternatively, use the installer from <a href="https://cppcheck.sourceforge.io/#download">Cppcheck's site</a>.</p>
5228
+ <h4 id="build-from-source">Build from source</h4>
5229
+ <p>Source releases are available from <a href="https://github.com/danmar/cppcheck/releases">Cppcheck's GitHub releases</a>.</p>
5230
+ <h4 id="madsciencelab-docker-images"><em>MadScienceLab</em> Docker images</h4>
5231
+ <p>Fully packaged <a href="https://hub.docker.com/repository/docker/throwtheswitch/"><em>MadScienceLab</em> Docker images</a> containing Ruby,
5232
+ Ceedling, the GCC toolchain, and more are available. The <code>-plugins</code> variants
5233
+ of the images come with all of Ceedling's plugin tools preinstalled.</p>
5234
+ <div class="admonition note">
5235
+ <p class="admonition-title">HTML reports need a second tool</p>
5236
+ <p>The <a href="#reports"><code>html</code></a> report is produced by <code>cppcheck-htmlreport</code>, which
5237
+ ships alongside Cppcheck in most distributions. It is optional. Every other
5238
+ report format needs only <code>cppcheck</code> itself.</p>
5239
+ </div>
5240
+ <h3 id="enable-the-plugin">Enable the plugin</h3>
5241
+ <p>Enable the plugin by adding <code>cppcheck</code> to the enabled plugins list in your
5242
+ project configuration:</p>
5243
+ <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>
5244
+ <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>
5245
+ <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
5246
  </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>
5247
+ <p>Enabling the plugin alone requires no Cppcheck installation. The executable is
5248
+ only needed when a <code>cppcheck:</code> task actually runs.</p>
5249
+ <h2 id="configuration">Configuration</h2>
5250
+ <p>All settings live in a top-level <code>:cppcheck</code> section of your project file.</p>
4624
5251
  <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>
5252
+ <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>
5253
+ <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>
5254
+ <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>
5255
+ <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
5256
  </code></pre></div>
4627
- <h4 id="text">Text</h4>
4628
- <p>Artifact file and output format can be configured:</p>
5257
+ <h3 id="reports"><code>:reports:</code></h3>
5258
+ <p>The report formats to produce. Each entry costs its own analysis pass.</p>
5259
+ <ul>
5260
+ <li><code>html</code> — Browsable HTML. Requires <code>cppcheck-htmlreport</code> and implies <code>xml</code>.</li>
5261
+ <li><code>sarif</code> — SARIF, consumed by many code-scanning dashboards.</li>
5262
+ <li><code>text</code> — Plain text.</li>
5263
+ <li><code>xml</code> — Cppcheck's own XML schema.</li>
5264
+ </ul>
4629
5265
  <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>
5266
+ <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>
5267
+ <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>
5268
+ <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
5269
  </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>
5270
+ <p><strong>Default:</strong> <code>[]</code> (no reports, so <code>cppcheck:all</code> analyzes nothing and says so)</p>
5271
+ <h3 id="fail_build"><code>:fail_build:</code></h3>
5272
+ <p>When <code>true</code>, findings matching <a href="#fail_build_severities"><code>:fail_build_severities:</code></a>
5273
+ fail the build. Enabling this implies the <code>xml</code> report, because findings are
5274
+ counted from Cppcheck's own XML output.</p>
4636
5275
  <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>
5276
+ <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
5277
  </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>
5278
+ <p><strong>Default:</strong> <code>false</code></p>
5279
+ <p>Cppcheck exits successfully even when it finds defects, so without this setting
5280
+ a <code>cppcheck:all</code> run can never fail a CI build.</p>
5281
+ <h3 id="fail_build_severities"><code>:fail_build_severities:</code></h3>
5282
+ <p>Which finding severities fail the build when
5283
+ <a href="#fail_build"><code>:fail_build:</code></a> is enabled. Valid values are <code>error</code>, <code>warning</code>,
5284
+ <code>style</code>, <code>performance</code>, <code>portability</code>, and <code>information</code>. An unrecognized value
5285
+ is rejected when the plugin loads.</p>
4648
5286
  <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>
5287
+ <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>
5288
+ <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>
5289
+ <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
5290
  </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>
5291
+ <p><strong>Default:</strong> <code>[error]</code></p>
5292
+ <div class="admonition tip">
5293
+ <p class="admonition-title">Why not every severity by default</p>
5294
+ <p>Whole project analysis always runs with <code>--enable=all</code>, so a typical run
5295
+ reports many <code>style</code> and <code>information</code> findings. Failing on all of them
5296
+ would make this setting impractical on most projects.</p>
5297
+ </div>
5298
+ <h3 id="html_title"><code>:html_title:</code></h3>
5299
+ <p>Title shown in the HTML report.</p>
4655
5300
  <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>
5301
+ <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
5302
  </code></pre></div>
4661
- <h4 id="undefine">Undefine</h4>
5303
+ <p><strong>Default:</strong> unset</p>
5304
+ <h3 id="sarif_artifact_filename"><code>:sarif_artifact_filename:</code></h3>
5305
+ <p>Filename for the SARIF report.</p>
4662
5306
  <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>
5307
+ <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
5308
  </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>
5309
+ <p><strong>Default:</strong> <code>CppcheckReport.sarif</code></p>
5310
+ <h3 id="text_artifact_filename"><code>:text_artifact_filename:</code></h3>
5311
+ <p>Filename for the text report.</p>
4671
5312
  <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>
5313
+ <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
5314
  </code></pre></div>
4676
- <h3 id="excludes">Excludes</h3>
4677
- <p>Exclude files from the analysis.</p>
5315
+ <p><strong>Default:</strong> <code>CppcheckReport.txt</code></p>
5316
+ <h3 id="template"><code>:template:</code></h3>
5317
+ <p>Output format for the text report. Accepts any template name Cppcheck ships
5318
+ with, such as <code>gcc</code>, or a custom format string.</p>
4678
5319
  <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>
5320
+ <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
5321
  </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>
5322
+ <p><strong>Default:</strong> unset (Cppcheck's own default)</p>
5323
+ <h3 id="xml_artifact_filename"><code>:xml_artifact_filename:</code></h3>
5324
+ <p>Filename for the XML report.</p>
4686
5325
  <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>
5326
+ <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
5327
  </code></pre></div>
4689
- <h3 id="standard">Standard</h3>
4690
- <p>Specify C/C++ language standard.</p>
5328
+ <p><strong>Default:</strong> <code>CppcheckReport.xml</code></p>
5329
+ <h3 id="xml_report_version"><code>:xml_report_version:</code></h3>
5330
+ <p>Cppcheck XML schema version. Accepts <code>2</code> or <code>3</code>.</p>
4691
5331
  <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>
5332
+ <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
5333
  </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>
5334
+ <p><strong>Default:</strong> <code>2</code></p>
5335
+ <div class="admonition warning">
5336
+ <p class="admonition-title">Version 3 requires a newer Cppcheck</p>
5337
+ <p>Older Cppcheck releases reject <code>--xml-version=3</code> outright and fail the
5338
+ build. Version 2 is accepted by every release. Both versions carry the same
5339
+ severity information, so this plugin's finding counts work with either.</p>
5340
+ </div>
5341
+ <h3 id="project"><code>:project:</code></h3>
5342
+ <p>Import a project file and let Cppcheck discover sources and include paths
5343
+ itself. Compatible files include Cppcheck GUI projects (<code>*.cppcheck</code>),
5344
+ compilation databases (<code>compile_commands.json</code>), and Visual Studio projects
5345
+ (<code>*.vcxproj</code>, <code>*.sln</code>).</p>
4700
5346
  <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>
5347
+ <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
5348
  </code></pre></div>
4703
- <h3 id="addons">Addons</h3>
4704
- <p>Addons to be run.</p>
5349
+ <p><strong>Default:</strong> unset</p>
5350
+ <div class="admonition note">
5351
+ <p class="admonition-title">What <code>:project:</code> does and does not replace</p>
5352
+ <p>Setting this stops the plugin passing Ceedling's own source and include
5353
+ path collections. Every other setting in this section still applies.
5354
+ <code>:defines:</code>, <code>:includes:</code>, <code>:excludes:</code>, <code>:suppressions:</code>, <code>:addons:</code>, and
5355
+ the rest are all still added to the command line.</p>
5356
+ </div>
5357
+ <h3 id="defines"><code>:defines:</code></h3>
5358
+ <p>Preprocessor symbols to define.</p>
4705
5359
  <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>
5360
+ <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>
5361
+ <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>
5362
+ <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>
5363
+ <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
5364
  </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>
5365
+ <p><strong>Default:</strong> <code>[]</code></p>
5366
+ <h3 id="undefines"><code>:undefines:</code></h3>
5367
+ <p>Preprocessor symbols to undefine.</p>
5368
+ <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>
5369
+ <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>
5370
+ <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>
5371
+ <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
5372
  </code></pre></div>
4720
- <p>Enable the addon:</p>
5373
+ <p><strong>Default:</strong> <code>[TEST]</code></p>
5374
+ <p><code>TEST</code> is undefined by default so analysis runs against production code rather
5375
+ than test builds.</p>
5376
+ <h3 id="includes"><code>:includes:</code></h3>
5377
+ <p>Files force-included ahead of each analyzed file.</p>
4721
5378
  <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>
5379
+ <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>
5380
+ <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>
5381
+ <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
5382
  </code></pre></div>
4725
- <h3 id="checks">Checks</h3>
4726
- <p>Enable additional checks.
4727
- Default is <em>style</em>.</p>
5383
+ <p><strong>Default:</strong> <code>[]</code></p>
5384
+ <h3 id="excludes"><code>:excludes:</code></h3>
5385
+ <p>Files excluded from analysis.</p>
4728
5386
  <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>
5387
+ <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>
5388
+ <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>
5389
+ <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
5390
  </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>
5391
+ <p><strong>Default:</strong> <code>[]</code></p>
5392
+ <h3 id="platform"><code>:platform:</code></h3>
5393
+ <p>Platform to analyze for. Accepts any platform Cppcheck ships with, such as
5394
+ <code>unix64</code>, or the path to a platform XML file.</p>
4736
5395
  <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>
5396
+ <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
5397
  </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>
5398
+ <p><strong>Default:</strong> unset</p>
5399
+ <h3 id="standard"><code>:standard:</code></h3>
5400
+ <p>C or C++ language standard.</p>
4744
5401
  <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>
5402
+ <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
5403
  </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>
5404
+ <p><strong>Default:</strong> unset</p>
5405
+ <h3 id="check_level"><code>:check_level:</code></h3>
5406
+ <p>Analysis depth. Accepts the levels your Cppcheck supports, commonly <code>normal</code>
5407
+ and <code>exhaustive</code>.</p>
5408
+ <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>
5409
+ <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
5410
  </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>
5411
+ <p><strong>Default:</strong> unset</p>
5412
+ <h3 id="addons"><code>:addons:</code></h3>
5413
+ <p>Addons to run. Entries may be built-in addon names or paths to addon scripts
5414
+ and JSON addon configurations.</p>
5415
+ <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>
5416
+ <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>
5417
+ <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>
5418
+ <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
5419
  </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
5420
+ <p><strong>Default:</strong> <code>[]</code></p>
5421
+ <p>MISRA needs a rule texts file, which is not distributed with Cppcheck. Place
5422
+ your copy in the project, for example at <code>misra.txt</code>, then create an addon
5423
+ configuration naming it:</p>
5424
+ <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>
5425
+ <a id="__codelineno-23-2" name="__codelineno-23-2" href="#__codelineno-23-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>
5426
+ <a id="__codelineno-23-3" name="__codelineno-23-3" href="#__codelineno-23-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>
5427
+ <a id="__codelineno-23-4" name="__codelineno-23-4" href="#__codelineno-23-4"></a><span class="p">}</span>
4768
5428
  </code></pre></div>
4769
- <h4 id="command-line">Command line</h4>
4770
- <p>Command line suppressions can also be added:</p>
5429
+ <p>Enable that configuration rather than the bare addon name:</p>
4771
5430
  <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>
5431
+ <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>
5432
+ <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
5433
  </code></pre></div>
4776
- <h3 id="library-configuration">Library configuration</h3>
4777
- <p>Add library configuration files:</p>
5434
+ <h3 id="enable_checks"><code>:enable_checks:</code></h3>
5435
+ <p>Additional checks enabled for single file analysis.</p>
4778
5436
  <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>
5437
+ <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>
5438
+ <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>
5439
+ <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
5440
  </code></pre></div>
4783
- <h3 id="rules">Rules</h3>
4784
- <p>Regular expression rules:</p>
5441
+ <p><strong>Default:</strong> <code>[style]</code></p>
5442
+ <div class="admonition note">
5443
+ <p class="admonition-title">Single file analysis only</p>
5444
+ <p>Whole project analysis always enables every check with <code>--enable=all</code>, so
5445
+ this setting does not affect <code>cppcheck:all</code>.</p>
5446
+ </div>
5447
+ <h3 id="disable_checks"><code>:disable_checks:</code></h3>
5448
+ <p>Checks to disable. Applies to both analysis modes.</p>
4785
5449
  <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>
5450
+ <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>
5451
+ <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>
5452
+ <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
5453
  </code></pre></div>
4789
- <h3 id="extra-options">Extra options</h3>
4790
- <p>For things not covered above, add extra command line options:</p>
5454
+ <p><strong>Default:</strong> <code>[]</code></p>
5455
+ <h3 id="inline_suppressions"><code>:inline_suppressions:</code></h3>
5456
+ <p>Honor suppression comments written inline in source.</p>
4791
5457
  <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>
5458
+ <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>
5459
+ </code></pre></div>
5460
+ <p><strong>Default:</strong> <code>false</code></p>
5461
+ <h3 id="suppressions"><code>:suppressions:</code></h3>
5462
+ <p>Suppressions given directly on the command line.</p>
5463
+ <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>
5464
+ <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>
5465
+ <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>
5466
+ <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
5467
  </code></pre></div>
5468
+ <p><strong>Default:</strong> <code>[]</code></p>
5469
+ <p>Suppression <em>files</em> are collected separately, through Ceedling's path and file
5470
+ collections rather than this list:</p>
5471
+ <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>
5472
+ <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>
5473
+ <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>
5474
+ <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>
5475
+ <a id="__codelineno-29-5" name="__codelineno-29-5" href="#__codelineno-29-5"></a>
5476
+ <a id="__codelineno-29-6" name="__codelineno-29-6" href="#__codelineno-29-6"></a><span class="nt">:files</span><span class="p">:</span>
5477
+ <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>
5478
+ <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>
5479
+ </code></pre></div>
5480
+ <p>Both XML and text suppression files are supported. The extension used to find
5481
+ text suppression files is configurable:</p>
5482
+ <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>
5483
+ <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>
5484
+ </code></pre></div>
5485
+ <p>Confirm which files were collected with the
5486
+ <a href="#list-suppression-files"><code>files:cppcheck</code></a> task.</p>
5487
+ <h3 id="libraries"><code>:libraries:</code></h3>
5488
+ <p>Library configuration files.</p>
5489
+ <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>
5490
+ <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>
5491
+ <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>
5492
+ <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>
5493
+ </code></pre></div>
5494
+ <p><strong>Default:</strong> <code>[]</code></p>
5495
+ <h3 id="rules"><code>:rules:</code></h3>
5496
+ <p>Regular expression rules.</p>
5497
+ <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>
5498
+ <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>
5499
+ <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>
5500
+ </code></pre></div>
5501
+ <p><strong>Default:</strong> <code>[]</code></p>
5502
+ <h3 id="options"><code>:options:</code></h3>
5503
+ <p>Raw command line arguments passed straight through to Cppcheck. This is the
5504
+ escape hatch for anything the settings above do not cover.</p>
5505
+ <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>
5506
+ <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>
5507
+ <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>
5508
+ <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>
5509
+ </code></pre></div>
5510
+ <p><strong>Default:</strong> <code>[]</code></p>
4796
5511
  <h2 id="usage">Usage</h2>
4797
5512
  <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
5513
+ <p>Run analysis across all project sources:</p>
5514
+ <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
5515
  </code></pre></div>
4801
- <p><em>Note: Analysis is run with</em> all <em>checks enabled.</em></p>
5516
+ <p>Every check is enabled for this mode. Configure at least one entry in
5517
+ <a href="#reports"><code>:reports:</code></a> or enable <a href="#fail_build"><code>:fail_build:</code></a>, or this task
5518
+ has nothing to produce and says so.</p>
4802
5519
  <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;
5520
+ <p>Run analysis for one source file, by filename with no path:</p>
5521
+ <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
5522
+ </code></pre></div>
5523
+ <p>Findings print to the console. This mode uses the checks in
5524
+ <a href="#enable_checks"><code>:enable_checks:</code></a>.</p>
5525
+ <h3 id="list-suppression-files">List suppression files</h3>
5526
+ <p>Show which suppression files were collected from your configured paths and
5527
+ files:</p>
5528
+ <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
5529
+ </code></pre></div>
5530
+ <p>This task needs no Cppcheck installation.</p>
5531
+ <h2 id="artifacts">Artifacts</h2>
5532
+ <p>Reports are written to <code>build/artifacts/cppcheck/</code>:</p>
5533
+ <table>
5534
+ <thead>
5535
+ <tr>
5536
+ <th>Report</th>
5537
+ <th>Path</th>
5538
+ </tr>
5539
+ </thead>
5540
+ <tbody>
5541
+ <tr>
5542
+ <td>HTML</td>
5543
+ <td><code>build/artifacts/cppcheck/html/index.html</code></td>
5544
+ </tr>
5545
+ <tr>
5546
+ <td>SARIF</td>
5547
+ <td><code>build/artifacts/cppcheck/CppcheckReport.sarif</code></td>
5548
+ </tr>
5549
+ <tr>
5550
+ <td>Text</td>
5551
+ <td><code>build/artifacts/cppcheck/CppcheckReport.txt</code></td>
5552
+ </tr>
5553
+ <tr>
5554
+ <td>XML</td>
5555
+ <td><code>build/artifacts/cppcheck/CppcheckReport.xml</code></td>
5556
+ </tr>
5557
+ </tbody>
5558
+ </table>
5559
+ <p>Filenames other than the HTML directory are configurable. See the
5560
+ <code>*_artifact_filename</code> settings above.</p>
5561
+ <p>These artifacts are included in <code>ceedling clean</code> targets.</p>
5562
+ <h2 id="console-output">Console output</h2>
5563
+ <p>These excerpts come from real runs. Build progress lines are left out.</p>
5564
+ <p>Each report logs a line as it is created. With an XML report, which
5565
+ <a href="#fail_build"><code>:fail_build:</code></a> also implies, a tally of findings by severity
5566
+ follows:</p>
5567
+ <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...
5568
+ <a id="__codelineno-37-2" name="__codelineno-37-2" href="#__codelineno-37-2"></a>Creating Cppcheck xml report...
5569
+ <a id="__codelineno-37-3" name="__codelineno-37-3" href="#__codelineno-37-3"></a>Cppcheck findings: 1 error, 2 information, 1 style
5570
+ </code></pre></div>
5571
+ <p>A run without findings logs <code>Cppcheck found no issues.</code> in place of the tally.</p>
5572
+ <p>With <code>:fail_build:</code> enabled, findings of a listed severity fail the build:</p>
5573
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-38-1" name="__codelineno-38-1" href="#__codelineno-38-1"></a>❌ BUILD FAILURE SUMMARY
5574
+ <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.
5575
+ </code></pre></div>
5576
+ <p>With no report configured, Cppcheck does not run:</p>
5577
+ <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.
5578
+ <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.
5579
+ </code></pre></div>
5580
+ <h2 id="interpreting-results">Interpreting results</h2>
5581
+ <p>The tally in the <a href="#console-output">console output</a> counts findings by severity.
5582
+ Cppcheck assigns every finding one of six severities.</p>
5583
+ <table>
5584
+ <thead>
5585
+ <tr>
5586
+ <th>Severity</th>
5587
+ <th>Meaning</th>
5588
+ </tr>
5589
+ </thead>
5590
+ <tbody>
5591
+ <tr>
5592
+ <td><code>error</code></td>
5593
+ <td>A definite defect, such as a double free or buffer overrun</td>
5594
+ </tr>
5595
+ <tr>
5596
+ <td><code>warning</code></td>
5597
+ <td>Likely a defect, worth review</td>
5598
+ </tr>
5599
+ <tr>
5600
+ <td><code>style</code></td>
5601
+ <td>Stylistic issue, including unused code</td>
5602
+ </tr>
5603
+ <tr>
5604
+ <td><code>performance</code></td>
5605
+ <td>Code that is correct but avoidably slow</td>
5606
+ </tr>
5607
+ <tr>
5608
+ <td><code>portability</code></td>
5609
+ <td>Behavior that differs across compilers or platforms</td>
5610
+ </tr>
5611
+ <tr>
5612
+ <td><code>information</code></td>
5613
+ <td>Notes about the analysis itself, such as missing includes</td>
5614
+ </tr>
5615
+ </tbody>
5616
+ </table>
5617
+ <p>Only <code>error</code> fails a build by default. Widen that with
5618
+ <a href="#fail_build_severities"><code>:fail_build_severities:</code></a>.</p>
5619
+ <p>For finding-by-finding detail, open a configured report. The text report is
5620
+ easiest to read at the terminal:</p>
5621
+ <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
5622
  </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>
5623
+ <p>See <a href="https://cppcheck.sourceforge.io/manual.pdf">Cppcheck's manual</a> for what each check means and how to
5624
+ suppress findings you have reviewed.</p>
5625
+ <p><br/><br/></p>
4807
5626
 
4808
5627
 
4809
5628