ceedling 1.1.10 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec +3 -0
- data/.simplecov +73 -0
- data/GIT_COMMIT_SHA +1 -1
- data/Gemfile +84 -8
- data/Gemfile.lock +38 -8
- data/README.md +64 -45
- data/Rakefile +769 -16
- data/assets/{project.yml → features/project.yml} +4 -1
- data/assets/fixtures/bullseye_branch_coverage/src/branchy.c +24 -0
- data/assets/fixtures/bullseye_branch_coverage/src/branchy.h +14 -0
- data/assets/fixtures/bullseye_branch_coverage/test/test_branchy.c +18 -0
- data/assets/fixtures/cppcheck_findings/findings.c +23 -0
- data/assets/fixtures/cppcheck_findings/findings.h +13 -0
- data/assets/fixtures/header_include_path_validation/alt_drivers/foo.h +6 -0
- data/assets/fixtures/header_include_path_validation/bar.h +6 -0
- data/assets/fixtures/header_include_path_validation/drivers/foo.h +6 -0
- data/assets/fixtures/header_include_path_validation/dup.h +6 -0
- data/assets/fixtures/header_include_path_validation/other_inc/dup.h +6 -0
- data/assets/fixtures/header_include_path_validation/test_ambiguous_mock.c +15 -0
- data/assets/fixtures/header_include_path_validation/test_bare_mock.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_bogus_mock_path.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_bogus_vanilla_path.c +10 -0
- data/assets/fixtures/header_include_path_validation/test_include_outranks_test_include_path.c +16 -0
- data/assets/fixtures/header_include_path_validation/test_pathed_mock.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_pathed_mock_ambiguous.c +14 -0
- data/assets/fixtures/header_include_path_validation/test_test_include_path_outranks_include.c +17 -0
- data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.h +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/beta/dup.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/beta/dup.h +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/gamma/dup_gamma.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_alpha.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_bare.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_beta.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_override.c +19 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive.c +19 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive_noop.c +16 -0
- data/assets/fixtures/parent_directory_references/alpha/extra.c +4 -0
- data/assets/fixtures/parent_directory_references/common/helper.c +6 -0
- data/assets/fixtures/parent_directory_references/common/helper.h +6 -0
- data/assets/fixtures/parent_directory_references/unit/test_dotdot_include.c +10 -0
- data/assets/fixtures/parent_directory_references/unit/test_dotdot_source.c +16 -0
- data/assets/fixtures/plain_inline_module.h +9 -0
- data/assets/fixtures/same_named_modules/include/drivers/spi/config.h +6 -0
- data/assets/fixtures/same_named_modules/include/drivers/uart/config.h +6 -0
- data/assets/fixtures/same_named_modules/src/drivers/spi/config.c +8 -0
- data/assets/fixtures/same_named_modules/src/drivers/uart/config.c +10 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs.c +26 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs_mocked.c +20 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs_mocked_traditional.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_both_modules.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_uart_config_bare.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_uart_config_partial_only.c +20 -0
- data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.c +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.h +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.c +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.h +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/main.c +11 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_baz_bar.c +10 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_both_bars.c +12 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_foo_bar.c +10 -0
- data/assets/{test_example_file_boom.c → fixtures/test_nosanitize_boom.c} +9 -0
- data/assets/{test_example_file_crash_assert.c → fixtures/test_nosanitize_crash_assert.c} +8 -0
- data/assets/{test_example_file_crash_sigsegv.c → fixtures/test_nosanitize_crash_sigsegv.c} +8 -0
- data/assets/{test_example_file_crash_sigsegv_with_param.c → fixtures/test_nosanitize_crash_sigsegv_with_param.c} +8 -0
- data/assets/fixtures/test_nosanitize_heap_buffer_overflow.c +31 -0
- data/assets/fixtures/test_nosanitize_leak.c +34 -0
- data/assets/fixtures/test_nosanitize_two_findings.c +36 -0
- data/assets/{test_example_file_ub_shift_overflow.c → fixtures/test_nosanitize_ub_shift_overflow.c} +9 -0
- data/assets/fixtures/test_plain_inline_module.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/alpha/calc.c +4 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/beta/calc.c +4 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_alpha.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_ambiguous.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_beta.c +15 -0
- data/assets/fixtures/tests_with_conditional_includes/src/feature_extra2.h +13 -0
- data/assets/fixtures/tests_with_conditional_includes/src/macro_target_extra.h +13 -0
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.c +19 -3
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.h +1 -0
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.c +17 -1
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget.c +12 -4
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget_feature.c +8 -5
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.c +7 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.c +16 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/FeatureConfig.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Gpt.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModuleConfig.h +17 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart1.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart2.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/drivers/widget.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/reader.c +7 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/reader.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01.c +21 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01_legacy.c +16 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_02.c +31 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_FeatureConfig.c +15 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_reader.c +13 -0
- data/assets/fixtures/tests_with_duplicate_test_names/integration/test_foo.c +21 -0
- data/assets/fixtures/tests_with_duplicate_test_names/unit/test_foo.c +21 -0
- data/assets/fixtures/tests_with_fallback_conditionals/src/conditional_module.c +28 -0
- data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/test/test_conditionals.c +8 -1
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_lower.s +2 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_upper.S +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.c +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.h +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/test/test_counter_module.c +27 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/app/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/drivers/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.c +30 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/shared/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/test/test_sensor.c +32 -0
- data/bin/actionator.rb +234 -0
- data/bin/app_cfg.rb +28 -0
- data/bin/cli.rb +78 -47
- data/bin/cli_handler.rb +96 -58
- data/bin/cli_helper.rb +95 -49
- data/bin/cli_options_transform.rb +22 -0
- data/bin/{configinator.rb → composinator.rb} +39 -32
- data/bin/mixin_resolvinator.rb +124 -0
- data/bin/mixin_standardizer.rb +31 -61
- data/bin/mixinator.rb +27 -29
- data/bin/mixins.rb +0 -5
- data/bin/objects.yml +20 -7
- data/bin/path_validator.rb +6 -5
- data/bin/projectinator.rb +51 -142
- data/bin/rake_patches.rb +36 -2
- data/bin/recursive_merger.rb +7 -1
- data/bin/versionator.rb +2 -3
- data/ceedling.gemspec +83 -12
- data/docs/BreakingChanges.md +46 -2
- data/docs/CONTRIBUTING.md +45 -29
- data/docs/CeedlingPullRequestChecklist.md +10 -9
- data/docs/Changelog.md +337 -37
- data/docs/KnownIssues.md +30 -4
- data/docs/ReleaseNotes.md +288 -12
- data/docs/SECURITY.md +46 -2
- data/docs/ThrowTheSwitchCodingStandard.md +21 -3
- data/docs/overrides/main.html +35 -0
- data/examples/temp_sensor/mixin/add_bullseye.yml +19 -0
- data/examples/wondrous_forest/README.md +3 -0
- data/examples/wondrous_forest/src/sensors/light/Calibration.c +21 -0
- data/examples/wondrous_forest/src/sensors/light/Calibration.h +14 -0
- data/examples/wondrous_forest/src/sensors/soil/Calibration.c +23 -0
- data/examples/wondrous_forest/src/sensors/soil/Calibration.h +14 -0
- data/examples/wondrous_forest/test/TestCalibration.c +39 -0
- data/lib/ceedling/batchinator.rb +81 -22
- data/lib/ceedling/c_extractor/README.md +61 -0
- data/lib/ceedling/c_extractor/c_extractor.rb +33 -2
- data/lib/ceedling/c_extractor/c_extractor_code_text.rb +18 -10
- data/lib/ceedling/c_extractor/c_extractor_constants.rb +10 -10
- data/lib/ceedling/c_extractor/c_extractor_declarations.rb +14 -14
- data/lib/ceedling/c_extractor/c_extractor_functions.rb +10 -13
- data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +77 -0
- data/lib/ceedling/c_extractor/c_extractor_types.rb +8 -5
- data/lib/ceedling/ceedling.h +33 -0
- data/lib/ceedling/config/config_matchinator.rb +36 -13
- data/lib/ceedling/config/configurator.rb +370 -531
- data/lib/ceedling/config/configurator_builder.rb +253 -365
- data/lib/ceedling/config/configurator_plugins.rb +68 -102
- data/lib/ceedling/config/configurator_setup.rb +360 -616
- data/lib/ceedling/config/configurator_validator.rb +114 -142
- data/lib/ceedling/config/line_marker_suppressors.rb +67 -0
- data/lib/ceedling/constants.rb +60 -6
- data/lib/ceedling/defaults.rb +28 -14
- data/lib/ceedling/defineinator.rb +9 -4
- data/lib/ceedling/dependencies/README.md +69 -0
- data/lib/ceedling/dependencies/dependency_cache_store.rb +160 -0
- data/lib/ceedling/dependencies/dependency_debug_tree.rb +129 -0
- data/lib/ceedling/dependencies/dependency_differ.rb +127 -0
- data/lib/ceedling/dependencies/dependency_hasher.rb +94 -0
- data/lib/ceedling/dependencies/dependency_path_normalizer.rb +80 -0
- data/lib/ceedling/dependencies/dependency_tracker.rb +405 -0
- data/lib/ceedling/dependencies/dependinator.rb +65 -0
- data/lib/ceedling/dependencies/gcc_dependency_parser.rb +86 -0
- data/lib/ceedling/encodinator.rb +23 -11
- data/lib/ceedling/file_finder.rb +373 -89
- data/lib/ceedling/file_finder_helper.rb +44 -33
- data/lib/ceedling/file_path_collection_utils.rb +17 -4
- data/lib/ceedling/file_path_utils.rb +310 -52
- data/lib/ceedling/file_wrapper.rb +275 -8
- data/lib/ceedling/filename_extension.rb +91 -0
- data/lib/ceedling/flaginator.rb +6 -2
- data/lib/ceedling/generators/generator.rb +192 -70
- data/lib/ceedling/generators/generator_helper.rb +116 -69
- data/lib/ceedling/generators/generator_mocks.rb +13 -8
- data/lib/ceedling/generators/generator_partials.rb +47 -15
- data/lib/ceedling/generators/generator_test_results.rb +29 -17
- data/lib/ceedling/generators/generator_test_results_backtrace.rb +199 -107
- data/lib/ceedling/generators/generator_test_results_sanity_checker.rb +1 -1
- data/lib/ceedling/includes/include_factory.rb +21 -6
- data/lib/ceedling/includes/include_pathinator.rb +40 -4
- data/lib/ceedling/includes/includes.rb +215 -61
- data/lib/ceedling/loginator.rb +13 -4
- data/lib/ceedling/objects.yml +216 -33
- data/lib/ceedling/parsing_parcels.rb +39 -13
- data/lib/ceedling/partials/README.md +53 -0
- data/lib/ceedling/partials/partializer.rb +118 -26
- data/lib/ceedling/partials/partializer_config.rb +141 -8
- data/lib/ceedling/partials/partializer_helper.rb +88 -2
- data/lib/ceedling/partials/partializer_utils.rb +1 -1
- data/lib/ceedling/partials/partials.rb +4 -4
- data/lib/ceedling/path_matcher.rb +163 -0
- data/lib/ceedling/path_mirror.rb +73 -0
- data/lib/ceedling/plugins/plugin.rb +1 -1
- data/lib/ceedling/plugins/plugin_manager.rb +31 -15
- data/lib/ceedling/plugins/plugin_manager_helper.rb +5 -1
- data/lib/ceedling/plugins/plugin_reportinator.rb +36 -7
- data/lib/ceedling/plugins/plugin_reportinator_helper.rb +3 -3
- data/lib/ceedling/plugins/report_log_writer_plugin.rb +66 -0
- data/lib/ceedling/plugins/report_tests_stdout_plugin.rb +18 -5
- data/lib/ceedling/preprocess/README.md +135 -120
- data/lib/ceedling/preprocess/c_comment_scanner.rb +9 -7
- data/lib/ceedling/preprocess/c_preprocessor_conditionals.rb +27 -10
- data/lib/ceedling/preprocess/preprocessinator.rb +253 -217
- data/lib/ceedling/preprocess/preprocessinator_bare_includes_extractor.rb +7 -10
- data/lib/ceedling/preprocess/preprocessinator_code_finder.rb +8 -6
- data/lib/ceedling/preprocess/preprocessinator_comment_stripper.rb +5 -3
- data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +86 -82
- data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +182 -163
- data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +174 -8
- data/lib/ceedling/preprocess/preprocessinator_reconstructor.rb +41 -20
- data/lib/ceedling/quote_include_isolator.rb +129 -0
- data/lib/ceedling/rake_app/rake_task_registry.rb +9 -9
- data/lib/ceedling/rake_app/rake_wrapper.rb +0 -13
- data/lib/ceedling/rake_app/rakefile_component_resolver.rb +24 -12
- data/lib/ceedling/rake_app/test_task_name.rb +29 -0
- data/lib/ceedling/rakefile.rb +3 -1
- data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
- data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
- data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
- data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
- data/lib/ceedling/{rules_tests.rake → rakefiles/tests/rules_tests.rake} +4 -18
- data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +54 -0
- data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
- data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
- data/lib/ceedling/release_invoker/README.md +35 -0
- data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
- data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
- data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
- data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
- data/lib/ceedling/reportinator.rb +18 -2
- data/lib/ceedling/ruby_expandinator.rb +40 -1
- data/lib/ceedling/setupinator.rb +13 -3
- data/lib/ceedling/system_wrapper.rb +17 -0
- data/lib/ceedling/templateinator.rb +146 -0
- data/lib/ceedling/test_context_extractor.rb +59 -28
- data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
- data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
- data/lib/ceedling/test_invoker/README.md +6 -0
- data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
- data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
- data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
- data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
- data/lib/ceedling/test_invoker/test_build_executor.rb +800 -429
- data/lib/ceedling/test_invoker/test_build_planner.rb +175 -70
- data/lib/ceedling/test_invoker/test_build_setup.rb +132 -241
- data/lib/ceedling/test_invoker/test_build_validations.rb +102 -0
- data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +148 -0
- data/lib/ceedling/test_invoker/test_includes_extractinator.rb +34 -0
- data/lib/ceedling/test_invoker/test_includes_preprocessinator.rb +118 -0
- data/lib/ceedling/test_invoker/test_includes_reconcilinator.rb +149 -0
- data/lib/ceedling/test_invoker/test_invoker.rb +16 -183
- data/lib/ceedling/test_invoker/test_invoker_types.rb +85 -16
- data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +121 -0
- data/lib/ceedling/test_invoker/test_pipeline_manager.rb +303 -0
- data/lib/ceedling/test_invoker/test_runner_generatinator.rb +105 -0
- data/lib/ceedling/test_invoker/test_search_paths.rb +73 -0
- data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +78 -0
- data/lib/ceedling/tool_executor.rb +42 -13
- data/lib/ceedling/tool_executor_helper.rb +1 -1
- data/lib/ceedling/tool_validator.rb +124 -123
- data/lib/ceedling/yaml_wrapper.rb +5 -3
- data/lib/version.rb +19 -2
- data/mkdocs.prerelease.yml +42 -0
- data/mkdocs.yml +10 -2
- data/plugins/bullseye/bullseye.rake +71 -111
- data/plugins/bullseye/config/defaults.yml +12 -54
- data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
- data/plugins/bullseye/lib/bullseye.rb +511 -120
- data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
- data/plugins/command_hooks/lib/command_hooks.rb +117 -199
- data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
- data/plugins/cppcheck/config/defaults.yml +6 -1
- data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
- data/plugins/cppcheck/cppcheck.rake +7 -1
- data/plugins/cppcheck/lib/cppcheck.rb +175 -26
- data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
- data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
- data/plugins/dependencies/Rakefile +14 -2
- data/plugins/dependencies/config/defaults.yml +9 -6
- data/plugins/dependencies/dependencies.rake +46 -76
- data/plugins/dependencies/example/boss/project.yml +1 -1
- data/plugins/dependencies/example/supervisor/project.yml +1 -1
- data/plugins/dependencies/example/version.tar.gzip +0 -0
- data/plugins/dependencies/lib/dependencies.rb +232 -427
- data/plugins/dependencies/lib/dependency_commands.rb +72 -0
- data/plugins/dependencies/lib/dependency_environment.rb +57 -0
- data/plugins/dependencies/lib/dependency_spec.rb +145 -0
- data/plugins/fff/.rspec +1 -0
- data/plugins/fff/Rakefile +14 -2
- data/plugins/fff/examples/fff_example/project.yml +1 -1
- data/plugins/fff/lib/fff.rb +30 -9
- data/plugins/fff/lib/fff_mock_generator.rb +142 -128
- data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
- data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
- data/plugins/fff/spec/spec_helper.rb +45 -0
- data/plugins/fff/src/fff_unity_helper.h +5 -0
- data/plugins/fff/vendor/fff/fakegen.rb +5 -4
- data/plugins/fff/vendor/fff/fff.h +4 -4
- data/plugins/gcov/config/defaults.yml +5 -0
- data/plugins/gcov/gcov.rake +16 -15
- data/plugins/gcov/lib/console_reportinator.rb +140 -20
- data/plugins/gcov/lib/gcov.rb +155 -60
- data/plugins/gcov/lib/gcov_constants.rb +4 -7
- data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
- data/plugins/gcov/lib/gcov_types.rb +62 -1
- data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
- data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
- data/plugins/module_generator/Rakefile +4 -4
- data/plugins/module_generator/config/module_generator.yml +0 -1
- data/plugins/module_generator/example/project.yml +1 -1
- data/plugins/module_generator/lib/module_generator.rb +117 -87
- data/plugins/module_generator/lib/module_generator_options.rb +150 -0
- data/plugins/module_generator/lib/module_generator_project.rb +45 -0
- data/plugins/module_generator/lib/module_generator_request.rb +83 -0
- data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
- data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
- data/plugins/module_generator/module_generator.rake +24 -46
- data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
- data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
- data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
- data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
- data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
- data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
- data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
- data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
- data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
- data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
- data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
- data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
- data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
- data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
- data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
- data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
- data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
- data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
- data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
- data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
- data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
- data/plugins/sanitize/config/defaults.yml +44 -0
- data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
- data/plugins/sanitize/lib/sanitize.rb +174 -0
- data/plugins/sanitize/lib/sanitize_config.rb +110 -0
- data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
- data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
- data/plugins/sanitize/lib/sanitize_records.rb +115 -0
- data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
- data/plugins/sanitize/sanitize.rake +108 -0
- data/plugins/valgrind/config/defaults.yml +7 -1
- data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
- data/plugins/valgrind/lib/valgrind.rb +202 -39
- data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
- data/plugins/valgrind/lib/valgrind_report.rb +52 -0
- data/plugins/valgrind/valgrind.rake +37 -15
- data/site-local/404.html +239 -19
- data/site-local/assets/javascripts/{bundle.d7400e89.min.js → bundle.c21346df.min.js} +3 -3
- data/site-local/assets/javascripts/{bundle.d7400e89.min.js.map → bundle.c21346df.min.js.map} +2 -2
- data/site-local/assets/javascripts/workers/{search.2c215733.min.js → search.a7633da7.min.js} +2 -2
- data/site-local/assets/javascripts/workers/{search.2c215733.min.js.map → search.a7633da7.min.js.map} +1 -1
- data/site-local/assets/stylesheets/main.57a0d79d.min.css +6 -0
- data/site-local/assets/stylesheets/main.57a0d79d.min.css.map +1 -0
- data/site-local/assets/stylesheets/palette.fb2fffe2.min.css +4 -0
- data/site-local/assets/stylesheets/palette.fb2fffe2.min.css.map +1 -0
- data/site-local/configuration/environment-vars.html +239 -19
- data/site-local/configuration/global-collections.html +239 -24
- data/site-local/configuration/index.html +240 -20
- data/site-local/configuration/loading.html +251 -27
- data/site-local/configuration/mixins.html +247 -26
- data/site-local/configuration/parallel-builds.html +239 -19
- data/site-local/configuration/project-file.html +268 -37
- data/site-local/configuration/reference/cexception.html +246 -25
- data/site-local/configuration/reference/cmock.html +272 -19
- data/site-local/configuration/reference/defines.html +263 -34
- data/site-local/configuration/reference/environment.html +246 -26
- data/site-local/configuration/reference/extension.html +352 -21
- data/site-local/configuration/reference/files.html +258 -24
- data/site-local/configuration/reference/flags.html +268 -31
- data/site-local/configuration/reference/index.html +239 -19
- data/site-local/configuration/reference/libraries.html +239 -19
- data/site-local/configuration/reference/mixins.html +239 -19
- data/site-local/configuration/reference/partials.html +240 -24
- data/site-local/configuration/reference/paths.html +269 -23
- data/site-local/configuration/reference/plugins.html +239 -19
- data/site-local/configuration/reference/project.html +292 -29
- data/site-local/configuration/reference/release-build.html +247 -19
- data/site-local/configuration/reference/test-build.html +281 -29
- data/site-local/configuration/reference/test-runner.html +279 -22
- data/site-local/configuration/reference/tools.html +257 -31
- data/site-local/configuration/reference/unity.html +271 -20
- data/site-local/configuration/which-ceedling.html +239 -19
- data/site-local/development/index.html +245 -19
- data/site-local/development/plugins/configuration.html +260 -22
- data/site-local/development/plugins/index.html +258 -20
- data/site-local/development/plugins/plugin-subclass.html +912 -174
- data/site-local/development/plugins/rake-tasks.html +269 -21
- data/site-local/development/releases.html +4759 -0
- data/site-local/development/workflow.html +1023 -58
- data/site-local/getting-started/builds.html +4593 -0
- data/site-local/getting-started/command-line.html +409 -39
- data/site-local/getting-started/example-projects/cipher-quest.html +239 -19
- data/site-local/getting-started/example-projects/index.html +240 -20
- data/site-local/getting-started/example-projects/temp-sensor.html +239 -19
- data/site-local/getting-started/example-projects/wondrous-forest.html +239 -19
- data/site-local/getting-started/index.html +246 -19
- data/site-local/getting-started/installation.html +249 -27
- data/site-local/getting-started/quick-start.html +242 -20
- data/site-local/help.html +246 -19
- data/site-local/index.html +284 -27
- data/site-local/overview/build-system.html +240 -20
- data/site-local/overview/index.html +239 -19
- data/site-local/overview/test-environments.html +248 -19
- data/site-local/overview/tools-and-frameworks.html +239 -19
- data/site-local/plugins/beep.html +242 -19
- data/site-local/plugins/bullseye/index.html +5068 -0
- data/site-local/plugins/bullseye/licensing.html +4826 -0
- data/site-local/plugins/command-hooks.html +258 -34
- data/site-local/plugins/compile-commands-json-db.html +247 -22
- data/site-local/plugins/cppcheck.html +1073 -268
- data/site-local/plugins/dependencies.html +927 -249
- data/site-local/plugins/fff.html +288 -21
- data/site-local/plugins/gcov/examples.html +243 -20
- data/site-local/plugins/gcov/gcovr.html +559 -71
- data/site-local/plugins/gcov/index.html +242 -19
- data/site-local/plugins/gcov/overview.html +253 -23
- data/site-local/plugins/gcov/reportgenerator.html +380 -46
- data/site-local/plugins/gcov/reporting.html +339 -105
- data/site-local/plugins/gcov/setup.html +244 -20
- data/site-local/plugins/gcov/tool-versions.html +292 -24
- data/site-local/plugins/gcov/troubleshooting.html +265 -42
- data/site-local/plugins/index.html +285 -41
- data/site-local/plugins/module-generator.html +770 -200
- data/site-local/plugins/report-build-warnings-log.html +569 -38
- data/site-local/plugins/report-tests-gtestlike-stdout.html +458 -89
- data/site-local/plugins/report-tests-ide-stdout.html +645 -56
- data/site-local/plugins/report-tests-log-factory.html +364 -111
- data/site-local/plugins/report-tests-pretty-stdout.html +243 -20
- data/site-local/plugins/report-tests-raw-output-log.html +242 -19
- data/site-local/plugins/report-tests-teamcity-stdout.html +252 -29
- data/site-local/plugins/sanitize.html +5322 -0
- data/site-local/plugins/valgrind.html +414 -34
- data/site-local/{plugins/bullseye.html → project/index.html} +288 -222
- data/site-local/project/release-history.html +242 -22
- data/site-local/project/sbom.html +4712 -0
- data/site-local/project/upgrade.html +241 -21
- data/site-local/reference/build-directives.html +248 -19
- data/site-local/reference/command-line.html +364 -21
- data/site-local/reference/environment-vars.html +239 -19
- data/site-local/reference/gcov-plugin.html +483 -23
- data/site-local/reference/global-collections.html +240 -20
- data/site-local/reference/index.html +239 -19
- data/site-local/reference/partials-macros.html +249 -19
- data/site-local/reference/project-configuration.html +239 -19
- data/site-local/sitemap.xml.gz +0 -0
- data/{docs/mkdocs/snapshot/assets → site-local/snapshot/assets/features}/project.yml +4 -1
- data/site-local/snapshot/examples/cipher_quest/index.html +249 -29
- data/site-local/snapshot/examples/temp_sensor/index.html +241 -21
- data/site-local/snapshot/examples/wondrous_forest/index.html +256 -30
- data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
- data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
- data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
- data/site-local/testing-guide/build-directives.html +331 -35
- data/site-local/testing-guide/conventions.html +671 -160
- data/site-local/testing-guide/frameworks.html +244 -24
- data/site-local/testing-guide/index.html +239 -26
- data/site-local/testing-guide/partials/configuration.html +241 -21
- data/site-local/testing-guide/partials/conventions.html +308 -23
- data/site-local/testing-guide/partials/directives.html +452 -58
- data/site-local/testing-guide/partials/example.html +247 -27
- data/site-local/testing-guide/partials/index.html +246 -19
- data/site-local/testing-guide/partials/overview.html +239 -19
- data/site-local/testing-guide/partials/variables.html +244 -24
- data/site-local/testing-guide/test-cases.html +246 -26
- data/site-local/testing-guide/test-sample.html +245 -25
- data/site-local/testing-guide/test-suite-anatomy.html +239 -19
- data/spec/integration/actionator_file_operations_spec.rb +287 -0
- data/spec/integration/analysis_tool_output_spec.rb +204 -0
- data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
- data/spec/integration/command_hooks_plugin_spec.rb +152 -0
- data/spec/integration/compile_commands_json_db_spec.rb +76 -0
- data/spec/integration/configurator_pipeline_spec.rb +190 -0
- data/spec/integration/configurator_plugins_spec.rb +122 -0
- data/spec/integration/configurator_validation_spec.rb +98 -0
- data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
- data/spec/integration/dependencies/dependency_tracker_core_spec.rb +284 -0
- data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
- data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
- data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
- data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
- data/spec/integration/dependencies_plugin_spec.rb +473 -0
- data/spec/integration/erb_dependency_removed_spec.rb +167 -0
- data/spec/integration/includes_extraction_spec.rb +612 -0
- data/spec/integration/mixin_loading_spec.rb +414 -0
- data/spec/integration/module_generator_spec.rb +436 -0
- data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
- data/spec/integration/partials_header_composition_spec.rb +889 -0
- data/spec/integration/partials_module_resolution_spec.rb +372 -0
- data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
- data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
- data/spec/integration/quote_include_isolator_spec.rb +167 -0
- data/spec/integration/rake_task_registry_plugins_spec.rb +95 -0
- data/spec/integration/report_build_warnings_log_spec.rb +170 -0
- data/spec/integration/report_tests_log_factory_spec.rb +100 -0
- data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
- data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
- data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
- data/spec/integration/test_executable_manifest_spec.rb +118 -0
- data/spec/integration/test_includes_extractinator_spec.rb +293 -0
- data/spec/integration/tool_executor_spec.rb +224 -0
- data/spec/integration/tool_validator_spec.rb +133 -0
- data/spec/integration/vendor_copy_transient_io_retry_spec.rb +178 -0
- data/spec/manual/stress_test.rb +1 -1
- data/spec/support/config_yaml_helper.rb +17 -0
- data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
- data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
- data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
- data/spec/support/fixtures/templates/ide__empty.txt +8 -0
- data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
- data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
- data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
- data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
- data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
- data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
- data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
- data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
- data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
- data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
- data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
- data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
- data/spec/support/include_guard_helper.rb +20 -0
- data/spec/support/integration/configurator_integration_helper.rb +162 -0
- data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
- data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
- data/spec/support/integration/spec_integration_helper.rb +285 -0
- data/spec/support/integration/test_includes_harness.rb +259 -0
- data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
- data/spec/support/spec_helper.rb +41 -0
- data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
- data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
- data/spec/support/system/simplecov_boot.rb +66 -0
- data/spec/support/system/spec_system_helper.rb +376 -16
- data/spec/support/system/system_context.rb +181 -59
- data/spec/support/template_render_cases.rb +166 -0
- data/spec/system/bracket_path_handling_spec.rb +175 -0
- data/spec/system/build_output_mirroring_spec.rb +89 -0
- data/spec/system/build_recovery_spec.rb +382 -0
- data/spec/system/bullseye_deployment_spec.rb +102 -0
- data/spec/system/cli_surface_spec.rb +245 -0
- data/spec/system/command_hooks_spec.rb +117 -0
- data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
- data/spec/system/conditional_mock_includes_spec.rb +181 -0
- data/spec/system/cppcheck_deployment_spec.rb +26 -8
- data/spec/system/delta_builds_spec.rb +751 -0
- data/spec/system/deployment_as_gem_spec.rb +7 -0
- data/spec/system/deployment_as_vendor_spec.rb +29 -145
- data/spec/system/dumpconfig_spec.rb +137 -0
- data/spec/system/encoding_stress_spec.rb +7 -4
- data/spec/system/example_cipher_quest_spec.rb +25 -100
- data/spec/system/example_temp_sensor_spec.rb +30 -172
- data/spec/system/example_wondrous_forest_spec.rb +25 -62
- data/spec/system/extension_multiple_values_spec.rb +75 -0
- data/spec/system/files_paths_reporting_spec.rb +154 -0
- data/spec/system/gcov_deployment_spec.rb +72 -3
- data/spec/system/header_include_path_validation_spec.rb +222 -0
- data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
- data/spec/system/include_path_reconciliation_spec.rb +64 -0
- data/spec/system/mixin_ordering_spec.rb +30 -415
- data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
- data/spec/system/parent_directory_reference_spec.rb +114 -0
- data/spec/system/partials_module_disambiguation_spec.rb +143 -0
- data/spec/system/pinned_thread_count_spec.rb +102 -0
- data/spec/system/plugin_delta_builds_spec.rb +179 -0
- data/spec/system/preprocessing_encoding_spec.rb +87 -4
- data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
- data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
- data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
- data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
- data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
- data/spec/system/ruby_replacement_spec.rb +1 -1
- data/spec/system/same_named_modules_spec.rb +115 -0
- data/spec/system/sanitize_deployment_spec.rb +64 -0
- data/spec/system/shuffle_tests_spec.rb +139 -0
- data/spec/system/sibling_header_collision_spec.rb +620 -0
- data/spec/system/subdir_include_preservation_spec.rb +63 -0
- data/spec/system/support/bullseye_common_test_cases.rb +369 -0
- data/spec/system/support/bullseye_helpers.rb +70 -0
- data/spec/system/support/common_test_cases.rb +167 -43
- data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
- data/spec/system/support/cppcheck_helpers.rb +10 -8
- data/spec/system/support/gcov_common_test_cases.rb +173 -37
- data/spec/system/support/gcov_helpers.rb +3 -3
- data/spec/system/support/gcov_partials_test_cases.rb +48 -2
- data/spec/system/support/sanitize_common_test_cases.rb +222 -0
- data/spec/system/support/sanitize_helpers.rb +27 -0
- data/spec/system/support/valgrind_common_test_cases.rb +116 -16
- data/spec/system/support/valgrind_helpers.rb +3 -4
- data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
- data/spec/system/test_runner_system_include_spec.rb +19 -41
- data/spec/system/test_source_file_directive_spec.rb +235 -0
- data/spec/system/upgrade_as_vendor_spec.rb +25 -46
- data/spec/system/valgrind_deployment_spec.rb +41 -0
- data/spec/units/batchinator_spec.rb +314 -0
- data/spec/units/bin/actionator_spec.rb +412 -0
- data/spec/units/bin/app_cfg_spec.rb +100 -0
- data/spec/units/bin/cli_handler_spec.rb +205 -0
- data/spec/units/bin/cli_helper_spec.rb +248 -10
- data/spec/units/bin/cli_options_transform_spec.rb +49 -0
- data/spec/units/bin/composinator_spec.rb +236 -0
- data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
- data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
- data/spec/units/bin/mixinator_spec.rb +58 -22
- data/spec/units/bin/path_validator_spec.rb +112 -0
- data/spec/units/bin/projectinator_spec.rb +223 -0
- data/spec/units/bin/rake_patches_spec.rb +52 -0
- data/spec/units/bin/recursive_merger_spec.rb +22 -0
- data/spec/units/bin/versionator_spec.rb +104 -0
- data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
- data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
- data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
- data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
- data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
- data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
- data/spec/units/ceedling/templateinator_spec.rb +188 -0
- data/spec/units/config/configurator_builder_spec.rb +444 -0
- data/spec/units/config/configurator_plugins_spec.rb +160 -0
- data/spec/units/config/configurator_setup_spec.rb +724 -6
- data/spec/units/config/configurator_spec.rb +961 -0
- data/spec/units/config/configurator_validator_spec.rb +259 -0
- data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
- data/spec/units/config_matchinator_spec.rb +103 -0
- data/spec/units/defineinator_spec.rb +158 -0
- data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
- data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
- data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
- data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
- data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
- data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
- data/spec/units/dependencies/dependinator_spec.rb +99 -0
- data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
- data/spec/units/encodinator_spec.rb +92 -0
- data/spec/units/file_finder_helper_spec.rb +99 -15
- data/spec/units/file_finder_spec.rb +495 -0
- data/spec/units/file_path_collection_utils_spec.rb +9 -0
- data/spec/units/file_path_utils_spec.rb +736 -0
- data/spec/units/file_wrapper_spec.rb +486 -0
- data/spec/units/filename_extension_spec.rb +120 -0
- data/spec/units/flaginator_spec.rb +114 -0
- data/spec/units/generators/generator_helper_spec.rb +113 -0
- data/spec/units/generators/generator_mocks_spec.rb +131 -0
- data/spec/units/generators/generator_partials_spec.rb +336 -160
- data/spec/units/generators/generator_spec.rb +317 -0
- data/spec/units/generators/generator_test_results_backtrace_spec.rb +169 -9
- data/spec/units/generators/generator_test_results_sanity_checker_spec.rb +14 -6
- data/spec/units/generators/generator_test_results_spec.rb +65 -8
- data/spec/units/generators/generator_test_runner_spec.rb +1 -1
- data/spec/units/includes/include_factory_spec.rb +53 -0
- data/spec/units/includes/include_pathinator_spec.rb +269 -0
- data/spec/units/includes/include_spec.rb +8 -4
- data/spec/units/includes/includes_spec.rb +326 -18
- data/spec/units/mock_locator_spec.rb +74 -0
- data/spec/units/parsing_parcels_spec.rb +65 -0
- data/spec/units/partials/partializer_config_spec.rb +284 -18
- data/spec/units/partials/partializer_helper_spec.rb +122 -0
- data/spec/units/partials/partializer_spec.rb +346 -71
- data/spec/units/partials/partializer_utils_spec.rb +4 -4
- data/spec/units/partials_manager_spec.rb +539 -0
- data/spec/units/path_matcher_spec.rb +193 -0
- data/spec/units/path_mirror_spec.rb +103 -0
- data/spec/units/plugin_manager_spec.rb +77 -0
- data/spec/units/plugin_reportinator_spec.rb +78 -3
- data/spec/units/plugins/bullseye_spec.rb +1068 -0
- data/spec/units/plugins/command_hooks_spec.rb +157 -0
- data/spec/units/plugins/compile_commands_json_db_spec.rb +145 -0
- data/spec/units/plugins/console_reportinator_spec.rb +370 -0
- data/spec/units/plugins/cppcheck_spec.rb +330 -4
- data/spec/units/plugins/cppunit_tests_reporter_spec.rb +118 -0
- data/spec/units/plugins/dependencies_spec.rb +295 -0
- data/spec/units/plugins/dependency_commands_spec.rb +83 -0
- data/spec/units/plugins/dependency_environment_spec.rb +64 -0
- data/spec/units/plugins/dependency_spec_spec.rb +170 -0
- data/spec/units/plugins/gcov_reportinator_spec.rb +272 -0
- data/spec/units/plugins/gcov_spec.rb +521 -0
- data/spec/units/plugins/gcovr_reportinator_spec.rb +795 -0
- data/spec/units/plugins/gtestlike_report_spec.rb +363 -0
- data/spec/units/plugins/html_tests_reporter_spec.rb +158 -0
- data/spec/units/plugins/ide_report_lines_spec.rb +229 -0
- data/spec/units/plugins/json_tests_reporter_spec.rb +87 -0
- data/spec/units/plugins/junit_tests_reporter_spec.rb +237 -0
- data/spec/units/plugins/module_generator_options_spec.rb +185 -0
- data/spec/units/plugins/module_generator_project_spec.rb +55 -0
- data/spec/units/plugins/module_generator_request_spec.rb +107 -0
- data/spec/units/plugins/module_generator_spec.rb +214 -0
- data/spec/units/plugins/module_generator_test_file_spec.rb +102 -0
- data/spec/units/plugins/module_generator_unity_spec.rb +37 -0
- data/spec/units/plugins/report_build_warnings_log_spec.rb +199 -0
- data/spec/units/plugins/report_log_writer_plugin_spec.rb +94 -0
- data/spec/units/plugins/report_tests_gtestlike_stdout_spec.rb +274 -0
- data/spec/units/plugins/report_tests_ide_stdout_spec.rb +140 -0
- data/spec/units/plugins/report_tests_log_factory_spec.rb +210 -0
- data/spec/units/plugins/report_tests_pretty_stdout_spec.rb +83 -0
- data/spec/units/plugins/report_tests_raw_output_log_spec.rb +98 -0
- data/spec/units/plugins/report_tests_stdout_plugin_spec.rb +145 -0
- data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +121 -0
- data/spec/units/plugins/reportgenerator_reportinator_spec.rb +410 -0
- data/spec/units/plugins/sanitize_config_spec.rb +119 -0
- data/spec/units/plugins/sanitize_findings_spec.rb +69 -0
- data/spec/units/plugins/sanitize_records_spec.rb +114 -0
- data/spec/units/plugins/sanitize_reports_spec.rb +84 -0
- data/spec/units/plugins/sanitize_spec.rb +300 -0
- data/spec/units/plugins/tests_reporter_spec.rb +89 -0
- data/spec/units/plugins/valgrind_spec.rb +560 -0
- data/spec/units/plugins/warning_collector_spec.rb +185 -0
- data/spec/units/plugins/warning_reports_spec.rb +150 -0
- data/spec/units/preprocess/c_comment_scanner_spec.rb +17 -17
- data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +94 -0
- data/spec/units/preprocess/preprocessinator_bare_includes_extractor_spec.rb +73 -0
- data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +35 -16
- data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +129 -48
- data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +292 -9
- data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +294 -16
- data/spec/units/preprocess/preprocessinator_line_marker_includes_extractor_spec.rb +356 -6
- data/spec/units/preprocess/preprocessinator_reconstructor_spec.rb +58 -4
- data/spec/units/preprocess/preprocessinator_spec.rb +693 -5
- data/spec/units/quote_include_isolator_spec.rb +176 -0
- data/spec/units/rake_app/rake_invocation_tracker_spec.rb +94 -0
- data/spec/units/rake_app/rake_task_registry_spec.rb +263 -0
- data/spec/units/rake_app/rake_utils_spec.rb +54 -0
- data/spec/units/rake_app/rake_wrapper_spec.rb +64 -0
- data/spec/units/rake_app/rakefile_component_resolver_spec.rb +182 -0
- data/spec/units/rake_app/test_task_name_spec.rb +47 -0
- data/spec/units/release_build_executor_spec.rb +404 -0
- data/spec/units/release_build_planner_spec.rb +144 -0
- data/spec/units/release_invoker_spec.rb +127 -0
- data/spec/units/reportinator_spec.rb +35 -0
- data/spec/units/ruby_expandinator_spec.rb +36 -0
- data/spec/units/standin_headerinator_spec.rb +168 -0
- data/spec/units/system_wrapper_spec.rb +16 -0
- data/spec/units/test_build_executor_spec.rb +1693 -8
- data/spec/units/test_build_planner_spec.rb +878 -0
- data/spec/units/test_build_setup_spec.rb +583 -0
- data/spec/units/test_context_extractor_spec.rb +51 -3
- data/spec/units/test_file_preprocessinator_spec.rb +206 -0
- data/spec/units/test_includes_extractinator_spec.rb +764 -0
- data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
- data/spec/units/test_invoker_spec.rb +147 -0
- data/spec/units/test_invoker_types_spec.rb +182 -0
- data/spec/units/test_pipeline_helpers_spec.rb +100 -0
- data/spec/units/test_pipeline_manager_spec.rb +415 -0
- data/spec/units/test_runner_generatinator_spec.rb +215 -0
- data/spec/units/test_runner_manager_spec.rb +70 -0
- data/spec/units/test_search_paths_spec.rb +84 -0
- data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
- data/spec/units/tool_executor_helper_spec.rb +1 -1
- data/spec/units/tool_executor_spec.rb +571 -2
- data/spec/units/tool_validator_spec.rb +303 -24
- data/spec/units/version_spec.rb +74 -0
- data/spec/units/yaml_wrapper_spec.rb +4 -1
- data/vendor/cmock/docs/CMock_Summary.md +11 -0
- data/vendor/cmock/lib/cmock_config.rb +1 -0
- data/vendor/cmock/lib/cmock_generator.rb +5 -1
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
- data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
- data/vendor/cmock/vendor/unity/test/Makefile +9 -2
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
- data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
- data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
- data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
- data/vendor/diy/lib/diy/factory.rb +5 -4
- data/vendor/diy/lib/diy.rb +5 -4
- data/vendor/diy/sample_code/car.rb +5 -4
- data/vendor/diy/sample_code/chassis.rb +5 -4
- data/vendor/diy/sample_code/diy_example.rb +5 -4
- data/vendor/diy/sample_code/engine.rb +5 -4
- data/vendor/diy/sample_code/objects.yml +5 -4
- data/vendor/diy/test/constructor.rb +5 -4
- data/vendor/diy/test/diy_test.rb +5 -4
- data/vendor/diy/test/factory_test.rb +5 -4
- data/vendor/diy/test/files/broken_construction.yml +5 -4
- data/vendor/diy/test/files/cat/cat.rb +5 -4
- data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
- data/vendor/diy/test/files/cat/heritage.rb +5 -4
- data/vendor/diy/test/files/cat/needs_input.yml +5 -4
- data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
- data/vendor/diy/test/files/dog/dog_model.rb +5 -4
- data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
- data/vendor/diy/test/files/dog/dog_view.rb +5 -4
- data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
- data/vendor/diy/test/files/dog/other_thing.rb +5 -4
- data/vendor/diy/test/files/dog/simple.yml +5 -4
- data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
- data/vendor/diy/test/files/donkey/foo.rb +5 -4
- data/vendor/diy/test/files/factory/beef.rb +5 -4
- data/vendor/diy/test/files/factory/dog.rb +5 -4
- data/vendor/diy/test/files/factory/factory.yml +5 -4
- data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
- data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
- data/vendor/diy/test/files/factory/kitten.rb +5 -4
- data/vendor/diy/test/files/fud/objects.yml +5 -4
- data/vendor/diy/test/files/fud/toy.rb +5 -4
- data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
- data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
- data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
- data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
- data/vendor/diy/test/files/functions/objects.yml +5 -4
- data/vendor/diy/test/files/functions/thing.rb +5 -4
- data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
- data/vendor/diy/test/files/functions/things_builder.rb +5 -4
- data/vendor/diy/test/files/gnu/objects.yml +5 -4
- data/vendor/diy/test/files/gnu/thinger.rb +5 -4
- data/vendor/diy/test/files/goat/base.rb +5 -4
- data/vendor/diy/test/files/goat/can.rb +5 -4
- data/vendor/diy/test/files/goat/goat.rb +5 -4
- data/vendor/diy/test/files/goat/objects.yml +5 -4
- data/vendor/diy/test/files/goat/paper.rb +5 -4
- data/vendor/diy/test/files/goat/plane.rb +5 -4
- data/vendor/diy/test/files/goat/shirt.rb +5 -4
- data/vendor/diy/test/files/goat/wings.rb +5 -4
- data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
- data/vendor/diy/test/files/horse/objects.yml +5 -4
- data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
- data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
- data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
- data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
- data/vendor/diy/test/files/namespace/objects.yml +5 -4
- data/vendor/diy/test/files/namespace/road.rb +5 -4
- data/vendor/diy/test/files/namespace/sky.rb +5 -4
- data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
- data/vendor/diy/test/files/non_singleton/air.rb +5 -4
- data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
- data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
- data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
- data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
- data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
- data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
- data/vendor/diy/test/files/yak/core_model.rb +5 -4
- data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
- data/vendor/diy/test/files/yak/core_view.rb +5 -4
- data/vendor/diy/test/files/yak/data_source.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
- data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
- data/vendor/diy/test/files/yak/krill.rb +5 -4
- data/vendor/diy/test/files/yak/my_objects.yml +5 -4
- data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
- data/vendor/diy/test/test_helper.rb +5 -4
- data/vendor/unity/auto/generate_module.rb +4 -4
- data/vendor/unity/auto/generate_test_runner.rb +5 -1
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
- data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
- data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
- data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
- data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
- metadata +783 -295
- data/assets/tests_with_fallback_conditionals/src/conditional_module.c +0 -18
- data/bin/actions_wrapper.rb +0 -51
- data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
- data/docs/mkdocs/assets/images/ceedling.svg +0 -90
- data/docs/mkdocs/assets/images/favicon.png +0 -0
- data/docs/mkdocs/assets/stylesheets/admonitions.css +0 -152
- data/docs/mkdocs/assets/stylesheets/fixes-local.css +0 -15
- data/docs/mkdocs/assets/stylesheets/styling.css +0 -102
- data/docs/mkdocs/configuration/environment-vars.md +0 -14
- data/docs/mkdocs/configuration/global-collections.md +0 -156
- data/docs/mkdocs/configuration/index.md +0 -75
- data/docs/mkdocs/configuration/loading.md +0 -89
- data/docs/mkdocs/configuration/mixins.md +0 -607
- data/docs/mkdocs/configuration/parallel-builds.md +0 -97
- data/docs/mkdocs/configuration/project-file.md +0 -216
- data/docs/mkdocs/configuration/reference/cexception.md +0 -35
- data/docs/mkdocs/configuration/reference/cmock.md +0 -106
- data/docs/mkdocs/configuration/reference/defines.md +0 -352
- data/docs/mkdocs/configuration/reference/environment.md +0 -55
- data/docs/mkdocs/configuration/reference/extension.md +0 -63
- data/docs/mkdocs/configuration/reference/files.md +0 -154
- data/docs/mkdocs/configuration/reference/flags.md +0 -296
- data/docs/mkdocs/configuration/reference/index.md +0 -176
- data/docs/mkdocs/configuration/reference/libraries.md +0 -82
- data/docs/mkdocs/configuration/reference/mixins.md +0 -24
- data/docs/mkdocs/configuration/reference/partials.md +0 -38
- data/docs/mkdocs/configuration/reference/paths.md +0 -276
- data/docs/mkdocs/configuration/reference/plugins.md +0 -60
- data/docs/mkdocs/configuration/reference/project.md +0 -333
- data/docs/mkdocs/configuration/reference/release-build.md +0 -62
- data/docs/mkdocs/configuration/reference/test-build.md +0 -55
- data/docs/mkdocs/configuration/reference/test-runner.md +0 -61
- data/docs/mkdocs/configuration/reference/tools.md +0 -457
- data/docs/mkdocs/configuration/reference/unity.md +0 -49
- data/docs/mkdocs/configuration/which-ceedling.md +0 -77
- data/docs/mkdocs/development/index.md +0 -61
- data/docs/mkdocs/development/plugins/configuration.md +0 -164
- data/docs/mkdocs/development/plugins/index.md +0 -84
- data/docs/mkdocs/development/plugins/plugin-subclass.md +0 -513
- data/docs/mkdocs/development/plugins/rake-tasks.md +0 -54
- data/docs/mkdocs/development/workflow.md +0 -284
- data/docs/mkdocs/getting-started/command-line.md +0 -477
- data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +0 -65
- data/docs/mkdocs/getting-started/example-projects/index.md +0 -49
- data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +0 -60
- data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +0 -45
- data/docs/mkdocs/getting-started/index.md +0 -41
- data/docs/mkdocs/getting-started/installation.md +0 -179
- data/docs/mkdocs/getting-started/quick-start.md +0 -86
- data/docs/mkdocs/help.md +0 -49
- data/docs/mkdocs/index.md +0 -222
- data/docs/mkdocs/overview/build-system.md +0 -115
- data/docs/mkdocs/overview/index.md +0 -29
- data/docs/mkdocs/overview/test-environments.md +0 -33
- data/docs/mkdocs/overview/tools-and-frameworks.md +0 -115
- data/docs/mkdocs/plugins/beep.md +0 -134
- data/docs/mkdocs/plugins/bullseye.md +0 -83
- data/docs/mkdocs/plugins/command-hooks.md +0 -268
- data/docs/mkdocs/plugins/compile-commands-json-db.md +0 -42
- data/docs/mkdocs/plugins/cppcheck.md +0 -377
- data/docs/mkdocs/plugins/dependencies.md +0 -310
- data/docs/mkdocs/plugins/fff.md +0 -247
- data/docs/mkdocs/plugins/gcov/examples.md +0 -92
- data/docs/mkdocs/plugins/gcov/gcovr.md +0 -526
- data/docs/mkdocs/plugins/gcov/index.md +0 -74
- data/docs/mkdocs/plugins/gcov/overview.md +0 -145
- data/docs/mkdocs/plugins/gcov/reportgenerator.md +0 -246
- data/docs/mkdocs/plugins/gcov/reporting.md +0 -147
- data/docs/mkdocs/plugins/gcov/setup.md +0 -232
- data/docs/mkdocs/plugins/gcov/tool-versions.md +0 -60
- data/docs/mkdocs/plugins/gcov/troubleshooting.md +0 -78
- data/docs/mkdocs/plugins/index.md +0 -261
- data/docs/mkdocs/plugins/module-generator.md +0 -267
- data/docs/mkdocs/plugins/report-build-warnings-log.md +0 -42
- data/docs/mkdocs/plugins/report-tests-gtestlike-stdout.md +0 -98
- data/docs/mkdocs/plugins/report-tests-ide-stdout.md +0 -63
- data/docs/mkdocs/plugins/report-tests-log-factory.md +0 -454
- data/docs/mkdocs/plugins/report-tests-pretty-stdout.md +0 -56
- data/docs/mkdocs/plugins/report-tests-raw-output-log.md +0 -52
- data/docs/mkdocs/plugins/report-tests-teamcity-stdout.md +0 -96
- data/docs/mkdocs/plugins/sample_html_report.png +0 -0
- data/docs/mkdocs/plugins/valgrind.md +0 -198
- data/docs/mkdocs/project/release-history.md +0 -61
- data/docs/mkdocs/project/upgrade.md +0 -85
- data/docs/mkdocs/reference/build-directives.md +0 -37
- data/docs/mkdocs/reference/command-line.md +0 -323
- data/docs/mkdocs/reference/environment-vars.md +0 -60
- data/docs/mkdocs/reference/gcov-plugin.md +0 -600
- data/docs/mkdocs/reference/global-collections.md +0 -160
- data/docs/mkdocs/reference/index.md +0 -65
- data/docs/mkdocs/reference/partials-macros.md +0 -79
- data/docs/mkdocs/reference/project-configuration.md +0 -46
- data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +0 -210
- data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +0 -283
- data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +0 -92
- data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +0 -32
- data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +0 -136
- data/docs/mkdocs/snapshot.yml +0 -20
- data/docs/mkdocs/testing-guide/build-directives.md +0 -153
- data/docs/mkdocs/testing-guide/conventions.md +0 -616
- data/docs/mkdocs/testing-guide/frameworks.md +0 -192
- data/docs/mkdocs/testing-guide/index.md +0 -80
- data/docs/mkdocs/testing-guide/partials/configuration.md +0 -67
- data/docs/mkdocs/testing-guide/partials/conventions.md +0 -68
- data/docs/mkdocs/testing-guide/partials/directives.md +0 -212
- data/docs/mkdocs/testing-guide/partials/example.md +0 -149
- data/docs/mkdocs/testing-guide/partials/index.md +0 -88
- data/docs/mkdocs/testing-guide/partials/overview.md +0 -81
- data/docs/mkdocs/testing-guide/partials/variables.md +0 -244
- data/docs/mkdocs/testing-guide/test-cases.md +0 -194
- data/docs/mkdocs/testing-guide/test-sample.md +0 -94
- data/docs/mkdocs/testing-guide/test-suite-anatomy.md +0 -58
- data/lib/ceedling/cacheinator.rb +0 -53
- data/lib/ceedling/cacheinator_helper.rb +0 -60
- data/lib/ceedling/dependinator.rb +0 -31
- data/lib/ceedling/makefile.rb +0 -52
- data/lib/ceedling/release_invoker.rb +0 -112
- data/lib/ceedling/rules_release.rake +0 -109
- data/lib/ceedling/tasks_release.rake +0 -36
- data/plugins/fff/vendor/fff/Makefile +0 -10
- data/plugins/fff/vendor/fff/buildandtest +0 -15
- data/plugins/fff/vendor/fff/examples/Makefile +0 -7
- data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
- data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
- data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
- data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
- data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
- data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
- data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
- data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
- data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
- data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
- data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
- data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
- data/plugins/fff/vendor/fff/test/Makefile +0 -81
- data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
- data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
- data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
- data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
- data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
- data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
- data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
- data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
- data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
- data/site-local/assets/stylesheets/main.ec1eaa64.min.css +0 -1
- data/site-local/assets/stylesheets/main.ec1eaa64.min.css.map +0 -1
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
- data/site-local/snapshot/assets/project.yml +0 -404
- data/spec/system/partials_types_header_spec.rb +0 -166
- data/spec/units/configurator_spec.rb +0 -232
- /data/assets/{ceedling → features/ceedling} +0 -0
- /data/assets/{ceedling.cmd → features/ceedling.cmd} +0 -0
- /data/assets/{default_gitignore → features/default_gitignore} +0 -0
- /data/assets/{broken_uncovered_file.c → fixtures/broken_uncovered_file.c} +0 -0
- /data/assets/{example_file.c → fixtures/example_file.c} +0 -0
- /data/assets/{example_file.h → fixtures/example_file.h} +0 -0
- /data/assets/{example_file_call.c → fixtures/example_file_call.c} +0 -0
- /data/assets/{example_file_call.h → fixtures/example_file_call.h} +0 -0
- /data/assets/{example_file_with_statics.c → fixtures/example_file_with_statics.c} +0 -0
- /data/assets/{example_file_with_stdio.c → fixtures/example_file_with_stdio.c} +0 -0
- /data/assets/{example_file_with_stdio.h → fixtures/example_file_with_stdio.h} +0 -0
- /data/assets/{fake_crash_test_fixture.rb → fixtures/fake_crash_test_fixture.rb} +0 -0
- /data/assets/{partial_all_module.h → fixtures/partial_all_module.h} +0 -0
- /data/assets/{run_with_ubsan.rb → fixtures/run_with_ubsan.rb} +0 -0
- /data/assets/{same_dir_pairing_module.c → fixtures/same_dir_pairing_module.c} +0 -0
- /data/assets/{same_dir_pairing_module.h → fixtures/same_dir_pairing_module.h} +0 -0
- /data/assets/{same_dir_pairing_module_func.h → fixtures/same_dir_pairing_module_func.h} +0 -0
- /data/assets/{same_dir_pairing_other.c → fixtures/same_dir_pairing_other.c} +0 -0
- /data/assets/{same_dir_pairing_other.h → fixtures/same_dir_pairing_other.h} +0 -0
- /data/assets/{test_example_file.c → fixtures/test_example_file.c} +0 -0
- /data/assets/{test_example_file_2.c → fixtures/test_example_file_2.c} +0 -0
- /data/assets/{test_example_file_source_include.c → fixtures/test_example_file_source_include.c} +0 -0
- /data/assets/{test_example_file_success.c → fixtures/test_example_file_success.c} +0 -0
- /data/assets/{test_example_file_unity_printf.c → fixtures/test_example_file_unity_printf.c} +0 -0
- /data/assets/{test_example_file_verbose.c → fixtures/test_example_file_verbose.c} +0 -0
- /data/assets/{test_example_file_with_mock.c → fixtures/test_example_file_with_mock.c} +0 -0
- /data/assets/{test_example_file_with_stdio.c → fixtures/test_example_file_with_stdio.c} +0 -0
- /data/assets/{test_example_with_parameterized_tests.c → fixtures/test_example_with_parameterized_tests.c} +0 -0
- /data/assets/{test_partial_all_module.c → fixtures/test_partial_all_module.c} +0 -0
- /data/assets/{test_same_dir_pairing.c → fixtures/test_same_dir_pairing.c} +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_config.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/local_flag_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_wrapper.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/project_flag_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.h +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.c +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.h +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.c +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.h +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware.c +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware_special.c +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.c +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.h +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder.c +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder_partial.c +0 -0
- /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/conditional_module.h +0 -0
- /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/optional_dep.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_blanks.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_counter.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_decorators.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorA.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorB.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorC.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareA.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareB.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareC.c +0 -0
- /data/assets/{uncovered_example_file.c → fixtures/uncovered_example_file.c} +0 -0
- /data/plugins/bullseye/assets/{template.erb → coverage.template} +0 -0
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
# Set up & Configuration
|
|
2
|
-
|
|
3
|
-
## Toolchain dependencies
|
|
4
|
-
|
|
5
|
-
### GNU Compiler Collection
|
|
6
|
-
|
|
7
|
-
This plugin relies on the GNU compiler collection. Coverage instrumentation
|
|
8
|
-
is enabled through `gcc` compiler flags. Coverage-insrumented executables
|
|
9
|
-
(i.e. test suites) output coverage result files to disk when run. `gcov`,
|
|
10
|
-
`gcovr`, and `reportgenerator` (the tools managed by this plugin) all produce
|
|
11
|
-
their coverage tallies from these files. `gcov` is part of the GNU compiler
|
|
12
|
-
collection. The other tools — detailed below — require separate installation.
|
|
13
|
-
|
|
14
|
-
Ceedling’s default toolchain is the same as needed by this plugin. If you
|
|
15
|
-
are already running Ceedling test suites with the GNU compiler toolchain,
|
|
16
|
-
you are good to go. If you are using another toolchain for test suite and/or
|
|
17
|
-
release builds you will need to install the GNU compiler collection to use
|
|
18
|
-
this plugin. Depending on your needs you may also need to install the reporting
|
|
19
|
-
utilities, `gcovr` and/or `reportgenerator`.
|
|
20
|
-
|
|
21
|
-
### `gcovr` and `reportgenerator`’s dependence on `gcov`
|
|
22
|
-
|
|
23
|
-
Both the `gcovr` and `reportgenerator` tools depend on the `gcov` tool. This
|
|
24
|
-
dependency plays out in two different ways. In both cases, the report
|
|
25
|
-
generation utilities ingest `gcov`’s output to produce their artifacts. As
|
|
26
|
-
such, `gcov` must be available in your environment if using report generation.
|
|
27
|
-
|
|
28
|
-
1. `gcovr` calls `gcov` directly.
|
|
29
|
-
|
|
30
|
-
Because it calls `gcov` directly, you are limited as to the
|
|
31
|
-
advanced Ceedling features you can employ to modify `gcov`’s execution.
|
|
32
|
-
However, with a configuration option (see below) you can instruct `gcovr`
|
|
33
|
-
to call something other than `gcov` (e.g. a script that intercepts and
|
|
34
|
-
modifies how `gcovr` calls out to `gcov`).
|
|
35
|
-
|
|
36
|
-
`gcovr` instructs `gcov` to generate `.gcov` files that it processes and
|
|
37
|
-
discards. A `gcovr` option documented below will retain the `.gcov` files.
|
|
38
|
-
|
|
39
|
-
2. `reportgenerator` expects the existence of `.gcov` files to do its work.
|
|
40
|
-
|
|
41
|
-
This Ceedling plugin calls `gcov` appropriately to generate the `.gcov`
|
|
42
|
-
files `reportgenerator` needs before then calling the report utility.
|
|
43
|
-
|
|
44
|
-
You can use Ceedling’s features to modify how `gcov` is run before
|
|
45
|
-
`reportgenerator`.
|
|
46
|
-
|
|
47
|
-
## Enable this plugin
|
|
48
|
-
|
|
49
|
-
To use this plugin it must be enabled in your Ceedling project file:
|
|
50
|
-
|
|
51
|
-
```yaml
|
|
52
|
-
:plugins:
|
|
53
|
-
:enabled:
|
|
54
|
-
- gcov
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
This simple configuration will create new `gcov:` command line tasks to run
|
|
58
|
-
tests with source coverage and output simple coverage summaries to the console
|
|
59
|
-
as above.
|
|
60
|
-
|
|
61
|
-
## Disabling automatic coverage summaries
|
|
62
|
-
|
|
63
|
-
To disable the coverage summaries generated immediately following `gcov:` tasks,
|
|
64
|
-
simply add the following to a top-level `:gcov:` section in your project
|
|
65
|
-
configuration file.
|
|
66
|
-
|
|
67
|
-
```yaml
|
|
68
|
-
:plugins:
|
|
69
|
-
:enabled:
|
|
70
|
-
- gcov
|
|
71
|
-
|
|
72
|
-
:gcov:
|
|
73
|
-
:summaries: FALSE
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
## Report generation
|
|
77
|
-
|
|
78
|
-
To generate reports:
|
|
79
|
-
|
|
80
|
-
1. GCovr and / or ReportGenerator must installed or otherwise ready to run in
|
|
81
|
-
Ceedling’s environment.
|
|
82
|
-
1. Reporting options must be configured in your project file beneath a `:gcov:`
|
|
83
|
-
entry.
|
|
84
|
-
|
|
85
|
-
The next sections explain each of these steps.
|
|
86
|
-
|
|
87
|
-
### Modified Condition / Decision Coverage
|
|
88
|
-
|
|
89
|
-
As of version 14, the GNU Compiler Collection supports MC/DC. If your environment
|
|
90
|
-
contains a minimum of GCC 14 you can enable MC/DC in coverage summaries.
|
|
91
|
-
|
|
92
|
-
If your environment contains a minimum of GCC 14 and GCovr 8, you can enable MC/DC
|
|
93
|
-
in your generated coverage reports.
|
|
94
|
-
|
|
95
|
-
NOTE: ReportGenerator does not support MC/DC reporting.
|
|
96
|
-
|
|
97
|
-
```yaml
|
|
98
|
-
:plugins:
|
|
99
|
-
:enabled:
|
|
100
|
-
- gcov
|
|
101
|
-
|
|
102
|
-
:gcov:
|
|
103
|
-
:mcdc: TRUE
|
|
104
|
-
```
|
|
105
|
-
**Default:** `FALSE`
|
|
106
|
-
|
|
107
|
-
### Coverage for untested sources
|
|
108
|
-
|
|
109
|
-
This setting controls how the GCov plugin handles project source files that
|
|
110
|
-
are not exercised by any test. It takes one of three values:
|
|
111
|
-
|
|
112
|
-
* `:ignore` — Untested source files are not processed at all. Nothing is
|
|
113
|
-
logged, nothing is compiled, and these files are simply absent from the
|
|
114
|
-
coverage report.
|
|
115
|
-
* `:list` — Untested source files are not compiled with coverage, but their
|
|
116
|
-
filepaths are logged as a warning so you know which files will not appear
|
|
117
|
-
in the coverage report.
|
|
118
|
-
* `:compile` — All untested source files are compiled with coverage so they
|
|
119
|
-
appear in the final report with 0% coverage (since no test exercises
|
|
120
|
-
them). This causes all source files to appear in any generated reporting.
|
|
121
|
-
If a source file fails to compile, Ceedling logs guidance at the console,
|
|
122
|
-
and the build fails.
|
|
123
|
-
|
|
124
|
-
```yaml
|
|
125
|
-
:plugins:
|
|
126
|
-
:enabled:
|
|
127
|
-
- gcov
|
|
128
|
-
|
|
129
|
-
:gcov:
|
|
130
|
-
:untested_sources: :list
|
|
131
|
-
```
|
|
132
|
-
**Default:** `:list`
|
|
133
|
-
|
|
134
|
-
!!! warning
|
|
135
|
-
**Compiling all untested sources for 0% coverage reporting (`:compile`) will likely require additional work.**
|
|
136
|
-
|
|
137
|
-
Successful compilation of untested source files may require certain symbols
|
|
138
|
-
to be defined, certain flags to be set, or entire stand-in shims for platform
|
|
139
|
-
headers and code.
|
|
140
|
-
|
|
141
|
-
Ceedling’s
|
|
142
|
-
[`:defines`](../../configuration/reference/defines.md)
|
|
143
|
-
and
|
|
144
|
-
[`:flags`](../../configuration/reference/flags.md)
|
|
145
|
-
matchers can provide these. For GCov tasks, symbols and flags are extracted from
|
|
146
|
-
the `:test` context beneath the `:defines` and `:flags` configuration sections
|
|
147
|
-
by default. If you need something special for coverage builds, use the `:gcov`
|
|
148
|
-
context for these matchers instead.
|
|
149
|
-
|
|
150
|
-
Notes:
|
|
151
|
-
|
|
152
|
-
* Versions of GCovr before 7.0 do not include the necessary options to produce
|
|
153
|
-
0% coverage results for source files only compiled (but never executed).
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
When `:untested_sources` is `:compile`, an additional `gcov:untested_sources`
|
|
158
|
-
build task becomes available:
|
|
159
|
-
|
|
160
|
-
```shell
|
|
161
|
-
> ceedling gcov:untested_sources
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
This task exists to let you work through the compilation problems described
|
|
165
|
-
in the warning above — missing symbols, flags, or platform header/code
|
|
166
|
-
stand-ins — by re-running just the untested-source compilation step
|
|
167
|
-
directly. No test suite build is needed while iterating on source compilation
|
|
168
|
-
fixes.
|
|
169
|
-
|
|
170
|
-
### Reporting utilities installation
|
|
171
|
-
|
|
172
|
-
!!! tip "Variants of the `madsciencelab` Docker images come with these tools preinstalled"
|
|
173
|
-
See [the Docker image options](../../getting-started/installation.md#madsciencelab-docker-images)
|
|
174
|
-
for running Ceedling.
|
|
175
|
-
|
|
176
|
-
[gcovr] is available on any platform supported by Python.
|
|
177
|
-
|
|
178
|
-
`gcovr` can be installed via pip like this:
|
|
179
|
-
|
|
180
|
-
```shell
|
|
181
|
-
> pip install gcovr
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
[ReportGenerator] is available on any platform supported by .Net.
|
|
185
|
-
|
|
186
|
-
`ReportGenerator` can be installed via .NET Core like so:
|
|
187
|
-
|
|
188
|
-
```shell
|
|
189
|
-
> dotnet tool install -g dotnet-reportgenerator-globaltool
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
Either or both of `gcovr` or `ReportGenerator` may be used. Only one must
|
|
193
|
-
be installed for advanced report generation.
|
|
194
|
-
|
|
195
|
-
[gcovr]: https://www.gcovr.com/
|
|
196
|
-
[ReportGenerator]: https://reportgenerator.io
|
|
197
|
-
|
|
198
|
-
### Enabling reporting utilities
|
|
199
|
-
|
|
200
|
-
If reports are configured (see next sections) but no `:utilities:` subsection
|
|
201
|
-
exists, this plugin defaults to using `gcovr` for report generation.
|
|
202
|
-
|
|
203
|
-
Otherwise, enable Gcovr and / or ReportGenerator to create coverage reports.
|
|
204
|
-
|
|
205
|
-
```yaml
|
|
206
|
-
:gcov:
|
|
207
|
-
:utilities:
|
|
208
|
-
- gcovr # Use `gcovr` to create reports (default if no :utilities set).
|
|
209
|
-
- ReportGenerator # Use `ReportGenerator` to create reports.
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
### Automatic and manual report generation
|
|
213
|
-
|
|
214
|
-
By default, if reports are specified, this plugin automatically generates
|
|
215
|
-
reports after any `gcov:` task is executed. To disable this behavior, add
|
|
216
|
-
`:report_task: TRUE` to your project file’s `:gcov:` configuration.
|
|
217
|
-
|
|
218
|
-
With this setting enabled, an additional Ceedling task `report:gcov` is enabled.
|
|
219
|
-
It may be executed after `gcov:` tasks to generate the configured reports.
|
|
220
|
-
|
|
221
|
-
For small projects, the default behavior is likely preferred. This alernative
|
|
222
|
-
setting allows large or complex projects to execute potentially time intensive
|
|
223
|
-
report generation only when desired.
|
|
224
|
-
|
|
225
|
-
Enabling the manual report generation task looks like this:
|
|
226
|
-
|
|
227
|
-
```yaml
|
|
228
|
-
:gcov:
|
|
229
|
-
:report_task: TRUE
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
<br/><br/>
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Supported tool versions
|
|
2
|
-
|
|
3
|
-
_**Last updated:**_ May 17, 2026
|
|
4
|
-
|
|
5
|
-
At the time of the last major updates to the Gcov plugin, the following notes
|
|
6
|
-
on version compatibility were known to be accurate.
|
|
7
|
-
|
|
8
|
-
Keep in mind that for proper functioning, you do not necessarily need to
|
|
9
|
-
install all the tooks the Gcov plugin works with. Depending on configuration
|
|
10
|
-
options documented in later sections, any of the following tool combinations
|
|
11
|
-
may be sufficient for your needs:
|
|
12
|
-
|
|
13
|
-
1. `gcov`
|
|
14
|
-
1. `gcov` + `gcovr`
|
|
15
|
-
1. `gcov` + `reportgenerator`
|
|
16
|
-
1. `gcov` + `gcovr` + `reportgenerator`
|
|
17
|
-
|
|
18
|
-
## `gcov`
|
|
19
|
-
|
|
20
|
-
The Gcov plugin is known to work with `gcov` packaged with GNU Compiler
|
|
21
|
-
Collection 12 through at least 15.
|
|
22
|
-
|
|
23
|
-
The maintainers of `gcov` introduced significant behavioral changes for
|
|
24
|
-
version 12. Previous versions of `gcov` had a simple exit code scheme with only a
|
|
25
|
-
single non-zero exit code upon fatal errors. Since version 12 `gcov` emits a
|
|
26
|
-
variety of exit codes even if the noted issue is a non-fatal error. The Gcov
|
|
27
|
-
plugin's logic assumes version 12 behavior and processes failure messages and
|
|
28
|
-
exit codes appropriately, taking into account plugin configuration options.
|
|
29
|
-
|
|
30
|
-
The Gcov plugin should be compatible with versions of `gcov` before version 12.
|
|
31
|
-
That is, its improved `gcov` exit handling should not be broken by the prior
|
|
32
|
-
simpler behavior. The Gcov plugin dependes on the `gcov` command line and has
|
|
33
|
-
been compatible with it as far back as `gcov` version 7.
|
|
34
|
-
|
|
35
|
-
Because long file paths are quite common in software development scenarios, by
|
|
36
|
-
default, the Gcov plugin depends on the `gcov` `-x` flag. This flag hashes long
|
|
37
|
-
file paths to ensure they are not a problem for certain platforms' file
|
|
38
|
-
systems. This flag became available with `gcov` version 7. We do not recommend
|
|
39
|
-
using `gcov` version 6 and earlier. And, in fact, because of the Gcov plugin's
|
|
40
|
-
dependence on the `gcov` `-x` flag, attempting to use it will fail.
|
|
41
|
-
|
|
42
|
-
GNU Compiler Collection 14 introduced changes in how coverage is instrumented.
|
|
43
|
-
The `gcov` plugin implemented a revised means of processing coverage that is
|
|
44
|
-
forward compatible with GCC 14+ and backwards compatible to the earliest
|
|
45
|
-
versions of the collection.
|
|
46
|
-
|
|
47
|
-
## `gcovr`
|
|
48
|
-
|
|
49
|
-
The Gcov plugin is known to work with `gcovr` 5.2 through `gcovr` 8.x. The
|
|
50
|
-
Gcov plugin supports `gcovr` command line conventions since version 4.2 and
|
|
51
|
-
attempts to support `gcovr` command lines before version 4.2. We recommend
|
|
52
|
-
using `gcovr` 5 and later.
|
|
53
|
-
|
|
54
|
-
## `reportgenerator`
|
|
55
|
-
|
|
56
|
-
The Gcov plugin is known to work with `reportgenerator` 5.2.4. The command line
|
|
57
|
-
for executing `reportgenerator` that the Gcov plugin relies on has largely been
|
|
58
|
-
stable since version 4. We recommend using `reportgenerator` 5.0 and later.
|
|
59
|
-
|
|
60
|
-
<br/><br/>
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Advanced & Troubleshooting
|
|
2
|
-
|
|
3
|
-
## Advanced usage
|
|
4
|
-
|
|
5
|
-
Details of interest for this plugin to be modified or made use of using
|
|
6
|
-
Ceedling’s advanced features are primarily contained in
|
|
7
|
-
[defaults_gcov.rb](../../snapshot/plugins/gcov/config/defaults_gcov.rb) and [defaults.yml](../../snapshot/plugins/gcov/config/defaults.yml).
|
|
8
|
-
|
|
9
|
-
## "gcovr not found"
|
|
10
|
-
|
|
11
|
-
`gcovr` is a Python-based application. Depending on the particulars of its
|
|
12
|
-
installation and your platform, you may encounter a "gcovr not found" error.
|
|
13
|
-
This is usually related to complications of running a Python script as an
|
|
14
|
-
executable.
|
|
15
|
-
|
|
16
|
-
### Check your `PATH`
|
|
17
|
-
|
|
18
|
-
The problem may be as simple to solve as ensuring your user or system path
|
|
19
|
-
include the path to `python` and/or the `gcovr` script. `gcovr` may be
|
|
20
|
-
successfully installed and findable by Python; this does not necessarily
|
|
21
|
-
mean that shell commands Ceedling spawns can find these tools.
|
|
22
|
-
|
|
23
|
-
Options:
|
|
24
|
-
|
|
25
|
-
1. Modify your user or system path to include your Python installation, `gcovr`
|
|
26
|
-
location, or both.
|
|
27
|
-
1. Use Ceedling’s `:environment` project configuration with its special
|
|
28
|
-
handling of `PATH` to modify the search path Ceedling accesses when it
|
|
29
|
-
executes shell commands. xample below.
|
|
30
|
-
|
|
31
|
-
```yaml
|
|
32
|
-
:environment:
|
|
33
|
-
- :path: # Concatenates the following with OS-specific path separator
|
|
34
|
-
- <path to add> # Add Python and/or `gcovr` path
|
|
35
|
-
- "#{ENV['PATH']}" # Fetch existing path entries
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Redefine `gcovr` to call Python directly
|
|
39
|
-
|
|
40
|
-
Another solution is simple in concept. Instead of calling `gcovr` directly, call
|
|
41
|
-
`python` with the `gcovr` script as a command line argument (followed by all of
|
|
42
|
-
the configured `gcovr` arguments).
|
|
43
|
-
|
|
44
|
-
To implement the solution, we make use of two features:
|
|
45
|
-
|
|
46
|
-
* `gcovr`’s tool `:executable` definition that looks up an environment variable.
|
|
47
|
-
* Ceedling’s `:environment` settings to redefine `gcovr`.
|
|
48
|
-
|
|
49
|
-
Gcovr’s tool defintion, like many of Ceedling’s tool defintions, defaults to an
|
|
50
|
-
environment variable (`GCOVR`) if it is defined. If we set that environment
|
|
51
|
-
variable to call Python with the path to the `gcovr` script, Ceedling will call
|
|
52
|
-
that instead of only `gcovr`. Ceedling enables you to set environment variables
|
|
53
|
-
that only exist while it runs.
|
|
54
|
-
|
|
55
|
-
In your project file:
|
|
56
|
-
|
|
57
|
-
```yaml
|
|
58
|
-
:environment:
|
|
59
|
-
# Fill in / omit paths on your system as appropritate to your circumstances
|
|
60
|
-
- :gcovr: <path>/python <path>/gcovr
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
Alternatively, a slightly more elegant approach may work in some cases:
|
|
64
|
-
|
|
65
|
-
```yaml
|
|
66
|
-
:environment:
|
|
67
|
-
- ":gcovr: python #{`which gcovr`}" # Shell out to look up the path to gcovr
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
A variation of this concept relies on Python’s knowledge of its runtime
|
|
71
|
-
environment and packages:
|
|
72
|
-
|
|
73
|
-
```yaml
|
|
74
|
-
:environment:
|
|
75
|
-
- :gcovr: python -m gcovr # Call the gcovr module
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
<br/><br/>
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
# Ceedling Plugins
|
|
2
|
-
|
|
3
|
-
Ceedling includes a number of built-in plugins. Each plugin linked below
|
|
4
|
-
includes full documentation of its capabilities and configuration options.
|
|
5
|
-
|
|
6
|
-
!!! tip "Need a CI test build report?"
|
|
7
|
-
[Test Suite Report Log Factory](report-tests-log-factory.md) provides
|
|
8
|
-
a handful of popular reports and the ability to create your own.
|
|
9
|
-
|
|
10
|
-
!!! tip "Have custom needs?"
|
|
11
|
-
Many find the handy-dandy [Command Hooks plugin](command-hooks.md)
|
|
12
|
-
is often enough as it allows you to connect your own scripts and tools
|
|
13
|
-
to Ceedling build steps. Alternatively, you can
|
|
14
|
-
[create your own plugins](../development/plugins/index.md).
|
|
15
|
-
|
|
16
|
-
See the [`:plugins` configuration reference](../configuration/reference/plugins.md)
|
|
17
|
-
for how to enable built-in plugins and load custom plugins in your project.
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Understanding plugin build duplication
|
|
22
|
-
|
|
23
|
-
!!! warning
|
|
24
|
-
Build-related plugins intentionally execute duplicated builds.
|
|
25
|
-
|
|
26
|
-
Plugins including [Gcov](gcov/index.md), [Bullseye](bullseye.md), and [Valgrind](valgrind.md)
|
|
27
|
-
recreate test build tasks. That is, the command line build task `test:foo` also exists
|
|
28
|
-
as `gcov:foo`, `bullseye:foo`, and/or `valgrind:foo` if these plugins are enabled.
|
|
29
|
-
Each of these triggers a full rebuild of the named test with instrumentation
|
|
30
|
-
activated. **This duplication is intentional and very necessary.**
|
|
31
|
-
|
|
32
|
-
These plugins modify executable code or the environment in which a test suite
|
|
33
|
-
executable runs. Duplicating and segregating the build tasks addresses several
|
|
34
|
-
important issues:
|
|
35
|
-
|
|
36
|
-
1. **Conflicting interactions**. Enabling multiple plugins without
|
|
37
|
-
duplicated tasks (i.e. integrated build tasks) can bring about conflicts and
|
|
38
|
-
undefined behavior. For instance, Gcov’s instrumentation does not
|
|
39
|
-
necessarily play nice with Valgrind’s memory-instrumented emulation
|
|
40
|
-
runtime, and the two should be kept entirely segregated.
|
|
41
|
-
2. **Unforeseen effects**. These plugins can directly alter the functioning of
|
|
42
|
-
the code under test. For instance, coverage instrumentation inserted into
|
|
43
|
-
your compiled code can alter its function or timing. As such, it is vital
|
|
44
|
-
to maintain distinct builds to compare them. Your vanilla test suite build
|
|
45
|
-
may function slightly differently than the coverage-instrumented build.
|
|
46
|
-
3. **Optional instrumentation**. The `<plugin>:` command line task convention
|
|
47
|
-
also provides a very simple opt-in scheme. Plugins automatically enabled
|
|
48
|
-
for every build drives the desire to optional disable them. Valgrind testing
|
|
49
|
-
can require 25-50x the execution time of a test suite, and you likely will
|
|
50
|
-
want the option to easily disable it. While Ceedling could certainly provide
|
|
51
|
-
that option at the command line for otherwise always-on plugins, this
|
|
52
|
-
plugin task namespacing scheme naturally accomplished this along with the
|
|
53
|
-
needs of (1) and (2).
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
## Directory
|
|
58
|
-
|
|
59
|
-
### Console Test Results
|
|
60
|
-
|
|
61
|
-
<div class="grid cards" markdown>
|
|
62
|
-
|
|
63
|
-
- :material-monitor-screenshot: **[`report_tests_pretty_stdout`](report-tests-pretty-stdout.md)**
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
The default plugin for printing test results to the console. Produces a
|
|
68
|
-
well-formatted list of summary statistics, ignored and failed tests, and
|
|
69
|
-
any extraneous output collected from test fixtures.
|
|
70
|
-
|
|
71
|
-
- :material-monitor-screenshot: **[`report_tests_ide_stdout`](report-tests-ide-stdout.md)**
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
Formats test results for the console such that an IDE executing Ceedling
|
|
76
|
-
tasks can recognize file paths and line numbers in test failures and link
|
|
77
|
-
them for direct file navigation.
|
|
78
|
-
|
|
79
|
-
- :material-monitor-screenshot: **[`report_tests_gtestlike_stdout`](report-tests-gtestlike-stdout.md)**
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
Prints test results to the console in a format that mimics
|
|
84
|
-
[Google Test's output][gtest-sample-output] — both human readable and
|
|
85
|
-
recognized by a variety of reporting tools, IDEs, and CI servers.
|
|
86
|
-
|
|
87
|
-
- :material-monitor-screenshot: **[`report_tests_teamcity_stdout`](report-tests-teamcity-stdout.md)**
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
Processes test results into [TeamCity] service messages printed to the
|
|
92
|
-
console, allowing the CI server to extract build steps and test results
|
|
93
|
-
from software builds.
|
|
94
|
-
|
|
95
|
-
</div>
|
|
96
|
-
|
|
97
|
-
### Test Results Reports
|
|
98
|
-
|
|
99
|
-
<div class="grid cards" markdown>
|
|
100
|
-
|
|
101
|
-
- :material-file-chart: **[`report_tests_log_factory`](report-tests-log-factory.md)**
|
|
102
|
-
|
|
103
|
-
---
|
|
104
|
-
|
|
105
|
-
Produces any or all of four useful test suite reports in JSON, JUnit XML,
|
|
106
|
-
CppUnit XML, or HTML format. Also provides a mechanism for custom reports
|
|
107
|
-
with a small amount of Ruby rather than a full plugin.
|
|
108
|
-
|
|
109
|
-
- :material-file-chart: **[`report_tests_raw_output_log`](report-tests-raw-output-log.md)**
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
Captures extraneous console output generated by test executables —
|
|
114
|
-
typically for debugging — to log files named after the test executables.
|
|
115
|
-
|
|
116
|
-
- :material-file-chart: **[`report_build_warnings_log`](report-build-warnings-log.md)**
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
Scans the output of build tools for console warning notices and produces
|
|
121
|
-
a simple text file that collects all such warning messages.
|
|
122
|
-
|
|
123
|
-
</div>
|
|
124
|
-
|
|
125
|
-
### Static & Dynamic Analysis
|
|
126
|
-
|
|
127
|
-
!!! tip "Ceedling includes integrated `gdb` support"
|
|
128
|
-
Tracking down weird test failures can require multiple approaches and tools.
|
|
129
|
-
Diagnosing a bug causing a test executable crash can benefit from either or
|
|
130
|
-
both of these plugins plus Ceedling’s
|
|
131
|
-
[backtrace feature](../configuration/reference/project.md#use_backtrace).
|
|
132
|
-
|
|
133
|
-
<div class="grid cards" markdown>
|
|
134
|
-
|
|
135
|
-
- :material-file-check: **[`cppcheck`](cppcheck.md)**
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
Adds Ceedling tasks to execute static analysis with [Cppcheck]. Cppcheck helps
|
|
140
|
-
find bugs related to undefined behavior, dangerous code patterns, and
|
|
141
|
-
coding style. Cppcheck is even able to analyze non-standard syntax C/C++ code,
|
|
142
|
-
as is common in embedded projects. The plugin can produce various reports.
|
|
143
|
-
|
|
144
|
-
- :material-memory: **[`valgrind`](valgrind.md)**
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
Adds Ceedling tasks to run test executables under [Valgrind] memory error
|
|
149
|
-
detection. Valgrind catches memory leaks, invalid accesses, and use-after-free
|
|
150
|
-
bugs. The plugin produces per-test log files in the build artifacts directory.
|
|
151
|
-
|
|
152
|
-
</div>
|
|
153
|
-
|
|
154
|
-
### Code Coverage
|
|
155
|
-
|
|
156
|
-
<div class="grid cards" markdown>
|
|
157
|
-
|
|
158
|
-
- :material-percent: **[`gcov`](gcov/index.md)**
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
Adds Ceedling tasks to execute tests with GNU code coverage
|
|
163
|
-
instrumentation. Manages use of [gcov], optional Python-based [GCovr],
|
|
164
|
-
and .Net-based [ReportGenerator] to produce coverage reports in a
|
|
165
|
-
variety of formats.
|
|
166
|
-
|
|
167
|
-
- :material-percent: **[`bullseye`](bullseye.md)**
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
Adds Ceedling tasks to execute tests with code coverage instrumentation
|
|
172
|
-
provided by the commercial [Bullseye] tool, which provides visualization
|
|
173
|
-
and report generation from the coverage results.
|
|
174
|
-
|
|
175
|
-
</div>
|
|
176
|
-
|
|
177
|
-
### Mocking & Test Doubles
|
|
178
|
-
|
|
179
|
-
<div class="grid cards" markdown>
|
|
180
|
-
|
|
181
|
-
- :material-ghost: **[`fff`](fff.md)**
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
Replaces Ceedling’s CMock-based mock generation with the
|
|
186
|
-
[Fake Function Framework][FFF] — an alternative approach to
|
|
187
|
-
[test doubles][test-doubles] using simple fake functions.
|
|
188
|
-
|
|
189
|
-
<!--Spacer so the single fff card does not stretch across multiple grid columns-->
|
|
190
|
-
<div style="visibility:hidden"></div>
|
|
191
|
-
|
|
192
|
-
</div>
|
|
193
|
-
|
|
194
|
-
### Build Integration
|
|
195
|
-
|
|
196
|
-
<div class="grid cards" markdown>
|
|
197
|
-
|
|
198
|
-
- :material-script-text-play: **[`command_hooks`](command-hooks.md)**
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
Connects Ceedling's build events to tool entries you define in your
|
|
203
|
-
project configuration. Easily attach your own scripts or command line
|
|
204
|
-
utilities to build steps without writing a full custom plugin.
|
|
205
|
-
|
|
206
|
-
- :material-database: **[`compile_commands_json_db`](compile-commands-json-db.md)**
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
Creates a [JSON Compilation Database][json-compilation-database] — a
|
|
211
|
-
`compile_commands.json` file useful to any editor or IDE that implements
|
|
212
|
-
[`clangd`][clangd] Language Server Protocol support.
|
|
213
|
-
|
|
214
|
-
- :material-bell-ring: **[`beep`](beep.md)**
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
Provides a simple audio notification when a test build completes suite
|
|
219
|
-
execution or fails due to a build error, intended to support developers
|
|
220
|
-
running time-consuming test suites locally in the background.
|
|
221
|
-
|
|
222
|
-
</div>
|
|
223
|
-
|
|
224
|
-
### Project & Release Builds
|
|
225
|
-
|
|
226
|
-
<div class="grid cards" markdown>
|
|
227
|
-
|
|
228
|
-
- :material-package-variant-closed: **[`module_generator`](module-generator.md)**
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
Saves time in Test-Driven Development by generating a templated triplet
|
|
233
|
-
of source file, header file, and test file — scaffolded such that they
|
|
234
|
-
refer to one another — with convenient command line tasks.
|
|
235
|
-
|
|
236
|
-
- :material-package-variant-closed: **[`dependencies`](dependencies.md)**
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
Manages release build dependencies (e.g. static libraries) including
|
|
241
|
-
fetching those dependencies and calling a given dependency‘s build
|
|
242
|
-
process to generate the components needed by your Ceedling release
|
|
243
|
-
build target.
|
|
244
|
-
|
|
245
|
-
</div>
|
|
246
|
-
|
|
247
|
-
[gtest-sample-output]: https://subscription.packtpub.com/book/programming/9781800208988/11/ch11lvl1sec31/controlling-output-with-google-test
|
|
248
|
-
[TeamCity]: https://jetbrains.com/teamcity
|
|
249
|
-
[Cppcheck]: https://cppcheck.sourceforge.io
|
|
250
|
-
[Valgrind]: https://valgrind.org
|
|
251
|
-
[gcov]: http://gcc.gnu.org/onlinedocs/gcc/Gcov.html
|
|
252
|
-
[GCovr]: https://www.gcovr.com/
|
|
253
|
-
[ReportGenerator]: https://reportgenerator.io
|
|
254
|
-
[Bullseye]: http://www.bullseye.com
|
|
255
|
-
[FFF]: https://github.com/meekrosoft/fff
|
|
256
|
-
[test-doubles]: https://blog.pragmatists.com/test-doubles-fakes-mocks-and-stubs-1a7491dfa3da
|
|
257
|
-
[json-compilation-database]: https://clang.llvm.org/docs/JSONCompilationDatabase.html
|
|
258
|
-
[clangd]: https://clangd.llvm.org
|
|
259
|
-
[IDEs]: https://www.throwtheswitch.org/ide
|
|
260
|
-
|
|
261
|
-
<br/><br/>
|