ceedling 1.1.9 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +53 -30
- data/Rakefile +768 -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 +7 -0
- data/bin/cli.rb +78 -47
- data/bin/cli_handler.rb +89 -57
- data/bin/cli_helper.rb +90 -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 +39 -4
- data/docs/ReleaseNotes.md +288 -12
- data/docs/SECURITY.md +86 -4
- data/docs/ThrowTheSwitchCodingStandard.md +21 -3
- data/docs/overrides/main.html +32 -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 +366 -530
- 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 +343 -610
- 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 +245 -8
- data/lib/ceedling/filename_extension.rb +91 -0
- data/lib/ceedling/flaginator.rb +6 -2
- data/lib/ceedling/generators/generator.rb +202 -75
- 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 +93 -25
- 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 +218 -33
- data/lib/ceedling/parsing_parcels.rb +39 -13
- data/lib/ceedling/partials/README.md +53 -0
- data/lib/ceedling/partials/partializer.rb +272 -117
- 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/rakefile.rb +2 -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/rakefiles/tests/rules_tests.rake +43 -0
- data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +80 -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 +9 -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 +783 -415
- 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 +70 -107
- 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 +12 -8
- 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 +33 -11
- data/site-local/404.html +248 -14
- data/site-local/configuration/environment-vars.html +248 -14
- data/site-local/configuration/global-collections.html +248 -19
- data/site-local/configuration/index.html +249 -15
- data/site-local/configuration/loading.html +260 -22
- data/site-local/configuration/mixins.html +252 -17
- data/site-local/configuration/parallel-builds.html +248 -14
- data/site-local/configuration/project-file.html +275 -30
- data/site-local/configuration/reference/cexception.html +255 -20
- data/site-local/configuration/reference/cmock.html +281 -14
- data/site-local/configuration/reference/defines.html +262 -19
- data/site-local/configuration/reference/environment.html +251 -17
- data/site-local/configuration/reference/extension.html +361 -16
- data/site-local/configuration/reference/files.html +262 -14
- data/site-local/configuration/reference/flags.html +270 -19
- data/site-local/configuration/reference/index.html +248 -14
- data/site-local/configuration/reference/libraries.html +248 -14
- data/site-local/configuration/reference/mixins.html +248 -14
- data/site-local/configuration/reference/partials.html +249 -19
- data/site-local/configuration/reference/paths.html +275 -15
- data/site-local/configuration/reference/plugins.html +248 -14
- data/site-local/configuration/reference/project.html +291 -14
- data/site-local/configuration/reference/release-build.html +256 -14
- data/site-local/configuration/reference/test-build.html +290 -24
- data/site-local/configuration/reference/test-runner.html +288 -17
- data/site-local/configuration/reference/tools.html +254 -14
- data/site-local/configuration/reference/unity.html +280 -15
- data/site-local/configuration/which-ceedling.html +248 -14
- data/site-local/development/index.html +261 -14
- data/site-local/development/plugins/configuration.html +269 -17
- data/site-local/development/plugins/index.html +267 -15
- data/site-local/development/plugins/plugin-subclass.html +906 -154
- data/site-local/development/plugins/rake-tasks.html +276 -14
- data/site-local/development/releases.html +4708 -0
- data/site-local/development/workflow.html +1030 -51
- data/site-local/getting-started/builds.html +4607 -0
- data/site-local/getting-started/command-line.html +418 -34
- data/site-local/getting-started/example-projects/cipher-quest.html +248 -14
- data/site-local/getting-started/example-projects/index.html +249 -15
- data/site-local/getting-started/example-projects/temp-sensor.html +248 -14
- data/site-local/getting-started/example-projects/wondrous-forest.html +248 -14
- data/site-local/getting-started/index.html +255 -14
- data/site-local/getting-started/installation.html +258 -22
- data/site-local/getting-started/quick-start.html +251 -15
- data/site-local/help.html +255 -14
- data/site-local/index.html +292 -22
- data/site-local/overview/build-system.html +249 -15
- data/site-local/overview/index.html +248 -14
- data/site-local/overview/test-environments.html +257 -14
- data/site-local/overview/tools-and-frameworks.html +248 -14
- data/site-local/plugins/beep.html +251 -14
- data/site-local/plugins/bullseye/index.html +5079 -0
- data/site-local/plugins/bullseye/licensing.html +4840 -0
- data/site-local/plugins/command-hooks.html +265 -27
- data/site-local/plugins/compile-commands-json-db.html +256 -17
- data/site-local/plugins/cppcheck.html +1081 -262
- data/site-local/plugins/dependencies.html +934 -242
- data/site-local/plugins/fff.html +297 -16
- data/site-local/plugins/gcov/examples.html +251 -14
- data/site-local/plugins/gcov/gcovr.html +686 -31
- data/site-local/plugins/gcov/index.html +251 -14
- data/site-local/plugins/gcov/overview.html +259 -18
- data/site-local/plugins/gcov/reportgenerator.html +563 -28
- data/site-local/plugins/gcov/reporting.html +348 -100
- data/site-local/plugins/gcov/setup.html +253 -15
- data/site-local/plugins/gcov/tool-versions.html +301 -19
- data/site-local/plugins/gcov/troubleshooting.html +273 -36
- data/site-local/plugins/index.html +294 -36
- data/site-local/plugins/module-generator.html +779 -195
- data/site-local/plugins/report-build-warnings-log.html +578 -33
- data/site-local/plugins/report-tests-gtestlike-stdout.html +467 -84
- data/site-local/plugins/report-tests-ide-stdout.html +654 -51
- data/site-local/plugins/report-tests-log-factory.html +337 -70
- data/site-local/plugins/report-tests-pretty-stdout.html +251 -14
- data/site-local/plugins/report-tests-raw-output-log.html +251 -14
- data/site-local/plugins/report-tests-teamcity-stdout.html +251 -14
- data/site-local/plugins/sanitize.html +5332 -0
- data/site-local/plugins/valgrind.html +416 -26
- data/site-local/{plugins/bullseye.html → project/index.html} +297 -217
- data/site-local/project/release-history.html +251 -17
- data/site-local/project/sbom.html +4726 -0
- data/site-local/project/upgrade.html +250 -16
- data/site-local/reference/build-directives.html +257 -14
- data/site-local/reference/command-line.html +373 -16
- data/site-local/reference/environment-vars.html +248 -14
- data/site-local/reference/gcov-plugin.html +492 -18
- data/site-local/reference/global-collections.html +249 -15
- data/site-local/reference/index.html +248 -14
- data/site-local/reference/partials-macros.html +258 -14
- data/site-local/reference/project-configuration.html +248 -14
- data/site-local/sitemap.xml.gz +0 -0
- data/site-local/snapshot/assets/{project.yml → features/project.yml} +4 -1
- data/site-local/snapshot/examples/cipher_quest/index.html +248 -14
- data/site-local/snapshot/examples/temp_sensor/index.html +248 -14
- data/site-local/snapshot/examples/wondrous_forest/index.html +265 -25
- 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 +332 -22
- data/site-local/testing-guide/conventions.html +678 -153
- data/site-local/testing-guide/frameworks.html +248 -14
- data/site-local/testing-guide/index.html +248 -21
- data/site-local/testing-guide/partials/configuration.html +248 -14
- data/site-local/testing-guide/partials/conventions.html +316 -17
- data/site-local/testing-guide/partials/directives.html +456 -48
- data/site-local/testing-guide/partials/example.html +248 -14
- data/site-local/testing-guide/partials/index.html +255 -14
- data/site-local/testing-guide/partials/overview.html +248 -14
- data/site-local/testing-guide/partials/variables.html +248 -14
- data/site-local/testing-guide/test-cases.html +248 -14
- data/site-local/testing-guide/test-sample.html +248 -14
- data/site-local/testing-guide/test-suite-anatomy.html +248 -14
- 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 +180 -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 +244 -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/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 +130 -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 +159 -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 +90 -0
- data/spec/units/bin/cli_handler_spec.rb +204 -0
- data/spec/units/bin/cli_helper_spec.rb +238 -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 +706 -6
- data/spec/units/config/configurator_spec.rb +952 -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 +447 -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 +366 -77
- 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 +474 -36
- 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/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 +1653 -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 +770 -285
- 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 -50
- 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 -412
- 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 -140
- 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/assets/project.yml +0 -404
- 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/rules_tests.rake +0 -40
- 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/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,310 +0,0 @@
|
|
|
1
|
-
# Dependencies
|
|
2
|
-
|
|
3
|
-
Plugin for supporting release dependencies. It’s rare for an embedded project to
|
|
4
|
-
be built completely free of other libraries and modules. Some of these may be
|
|
5
|
-
standard internal libraries. Some of these may be 3rd party libraries. In either
|
|
6
|
-
case, they become part of the project’s ecosystem.
|
|
7
|
-
|
|
8
|
-
This plugin is intended to make that relationship easier. It allows you to specify
|
|
9
|
-
a source for dependencies. If required, it will automatically grab the appropriate
|
|
10
|
-
version of that dependency.
|
|
11
|
-
|
|
12
|
-
Most 3rd party libraries have a method of building already in place. While we’d
|
|
13
|
-
love to convert the world to a place where everything downloads with a test suite
|
|
14
|
-
in Ceedling, that’s not likely to happen anytime soon. Until then, this plugin
|
|
15
|
-
will allow the developer to specify what calls Ceedling should make to oversee
|
|
16
|
-
the build process of those third party utilities. Are they using Make? CMake? A
|
|
17
|
-
custom series of scripts that only a mad scientist could possibly understand? No
|
|
18
|
-
matter. Ceedling has you covered. Just specify what should be called, and Ceedling
|
|
19
|
-
will make it happen whenever it notices that the output artifacts are missing.
|
|
20
|
-
|
|
21
|
-
Output artifacts? Sure! Things like static and dynamic libraries, or folders
|
|
22
|
-
containing header files that might want to be included by your release project.
|
|
23
|
-
|
|
24
|
-
## So how does all this magic work?
|
|
25
|
-
|
|
26
|
-
First, you need to add the Dependencies plugin to your list of enabled plugins. Then, we'll
|
|
27
|
-
add a new comfiguration section called `:dependencies`. There, you can list as many
|
|
28
|
-
dependencies as you desire. Each has a series of fields that help Ceedling to understand
|
|
29
|
-
your needs. Many of them are optional. If you don't need that feature, just don't include
|
|
30
|
-
it! In the end, it'll look something like this:
|
|
31
|
-
|
|
32
|
-
```yaml
|
|
33
|
-
:plugins:
|
|
34
|
-
:enabled:
|
|
35
|
-
- dependencies
|
|
36
|
-
|
|
37
|
-
:dependencies:
|
|
38
|
-
:deps:
|
|
39
|
-
- :name: WolfSSL
|
|
40
|
-
:paths:
|
|
41
|
-
:fetch: third_party/wolfssl/source
|
|
42
|
-
:source: third_party/wolfssl/source
|
|
43
|
-
:build: third_party/wolfssl/build
|
|
44
|
-
:artifact_lib: third_party/wolfssl/install
|
|
45
|
-
:artifact_inc: third_party/wolfssl/install
|
|
46
|
-
:fetch:
|
|
47
|
-
:method: :zip
|
|
48
|
-
:source: \\shared_drive\third_party_libs\wolfssl\wolfssl-4.2.0.zip
|
|
49
|
-
:environment:
|
|
50
|
-
- CFLAGS+=-DWOLFSSL_DTLS_ALLOW_FUTURE
|
|
51
|
-
:build:
|
|
52
|
-
- "autoreconf -i"
|
|
53
|
-
- "./configure --enable-tls13 --enable-singlethreaded"
|
|
54
|
-
- make
|
|
55
|
-
- make install
|
|
56
|
-
:artifacts:
|
|
57
|
-
:static_libraries:
|
|
58
|
-
- lib/wolfssl.a
|
|
59
|
-
:dynamic_libraries:
|
|
60
|
-
- lib/wolfssl.so
|
|
61
|
-
:includes:
|
|
62
|
-
- include/**
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Starting Dash & Name
|
|
66
|
-
|
|
67
|
-
Yes, that opening dash tells the dependencies plugin that the rest of these fields
|
|
68
|
-
belong to our first dependency. If we had a second dependency, we’d have another
|
|
69
|
-
dash, lined up with the first, and followed by all the fields indented again.
|
|
70
|
-
|
|
71
|
-
By convention, we use the `:name` field as the first field for each tool. Ceedling
|
|
72
|
-
honestly doesn't care which order the fields are given... but as humans, it makes
|
|
73
|
-
it easier for us to see the name of each dependency with starting dash.
|
|
74
|
-
|
|
75
|
-
The name field is only used to print progress while we're running Ceedling. You may
|
|
76
|
-
call the name of the field whatever you wish.
|
|
77
|
-
|
|
78
|
-
## Working Paths
|
|
79
|
-
|
|
80
|
-
All paths are collected under `:dependencies` ↳ `:paths`. The `:source` field allows us
|
|
81
|
-
to specify where the source code for each of our dependencies is stored. By default, it’s
|
|
82
|
-
the same as the `:fetch` path, which is where source will be fetched TO when fetching the
|
|
83
|
-
dependency from elsewhere. All commands to build this dependency will be executed from
|
|
84
|
-
the `:source` location. Temporary data will be placed in the `:build` location. Unless you're
|
|
85
|
-
using one of Ceedling’s built-in builders, you'll need to learn where the tool you're using to
|
|
86
|
-
build places it’s built artifacts , and list that here. Finally, the output
|
|
87
|
-
artifacts will be referenced to this location. You override this by specifying a `:artifact`
|
|
88
|
-
path. In summary:
|
|
89
|
-
|
|
90
|
-
- `:paths`
|
|
91
|
-
- `:fetch` -- where things are fetched to (defaults to `build/deps/depname/`)
|
|
92
|
-
- `:source` -- where we trigger builds (defaults to `:fetch`)
|
|
93
|
-
- `:build` -- where we have the produced build files (defaults to `<:fetch>/build`)
|
|
94
|
-
- `:deploy` -- where any produced library files should be copied (defaults to same as release executable)
|
|
95
|
-
- `:artifact` -- where output libraries can be found (defaults to `:build`)
|
|
96
|
-
|
|
97
|
-
If the dependency is directly included in your project (you've specified `:none` as the
|
|
98
|
-
`:method` for fetching), then `:source` should be where your Ceedling can find the
|
|
99
|
-
source for your dependency in you repo.
|
|
100
|
-
|
|
101
|
-
All artifacts are relative to the appropriate `:artifact` path. So if there are multiple
|
|
102
|
-
include dirs, choose the highest level and make the rest relative from there.
|
|
103
|
-
|
|
104
|
-
## Fetching Dependencies
|
|
105
|
-
|
|
106
|
-
The `:dependencies` plugin supports the ability to automatically fetch your dependencies
|
|
107
|
-
for you... using some common methods of fetching source. This section contains only a
|
|
108
|
-
couple of fields:
|
|
109
|
-
|
|
110
|
-
- `:method` -- This is the method that this dependency is fetched.
|
|
111
|
-
- `:none` -- This tells Ceedling that the code is already included in the project.
|
|
112
|
-
- `:zip` -- This tells Ceedling that we want to unpack a zip file to our source path.
|
|
113
|
-
- `:gzip` -- This tells Ceedling that we want to unpack a gzip file to our source path.
|
|
114
|
-
- `:git` -- This tells Ceedling that we want to clone a git repo to our source path.
|
|
115
|
-
- `:svn` -- This tells Ceedling that we want to checkout a subversion repo to our source path.
|
|
116
|
-
- `:custom` -- This tells Ceedling that we want to use a custom command or commands to fetch the code.
|
|
117
|
-
- `:source` -- This is the path or url to fetch code when using the `:zip`, `:gzip` or `:git` method.
|
|
118
|
-
- `:tag`/`:branch` -- This is the specific tag or branch that you wish to retrieve (`:git` only, optional).
|
|
119
|
-
- `:hash` -- This is the specific SHA1 hash you want to fetch (`:git` only, optional and triggers a deep clone).
|
|
120
|
-
- `:revision` -- This is the specific revision you want to fetch (`:svn` only, optional).
|
|
121
|
-
- `:executable` -- This is a YAML list of commands to execute when using the `:custom` method
|
|
122
|
-
|
|
123
|
-
Some notes:
|
|
124
|
-
|
|
125
|
-
* The `:source` location for fetching a `:zip` or `:gzip` file is relative to the `:paths` ↳ `:source`
|
|
126
|
-
folder.
|
|
127
|
-
|
|
128
|
-
## Environment Variables
|
|
129
|
-
|
|
130
|
-
Many build systems support customization through environment variables. By specifying
|
|
131
|
-
an array of environment variables, the Dependencies plugin will customize the shell environment
|
|
132
|
-
before calling the build process.
|
|
133
|
-
|
|
134
|
-
Note that Ceedling’s project configuration includes a top-level `:environment` sections itself.
|
|
135
|
-
The top-level `:environment` section is for all of Ceedling. The `:environment` section nested
|
|
136
|
-
within a specific dependency’s configuration is only for the shell environment used to process
|
|
137
|
-
that dependency. The format and abilities of the two `:environment` configuration sections are
|
|
138
|
-
also different.
|
|
139
|
-
|
|
140
|
-
Environment variables may be specified in three ways. Let’s look at one of each:
|
|
141
|
-
|
|
142
|
-
```yaml
|
|
143
|
-
:dependencies:
|
|
144
|
-
<a dependency configuration>:
|
|
145
|
-
:environment:
|
|
146
|
-
- ARCHITECTURE=ARM9
|
|
147
|
-
- CFLAGS+=-DADD_AWESOMENESS
|
|
148
|
-
- CFLAGS-=-DWASTE
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
In the first example, you see the most straightforward method. The environment variable
|
|
152
|
-
`ARCHITECTURE` is set to the value `ARM9`. That’s it. Simple.
|
|
153
|
-
|
|
154
|
-
The next two options modify an existing symbol. In the first one, we use `+=`, which tells
|
|
155
|
-
Ceedling to add the define `ADD_AWESOMENESS` to the environment variable `CFLAGS`. The second
|
|
156
|
-
tells Ceedling to remove the define `WASTE` from the same environment variable.
|
|
157
|
-
|
|
158
|
-
There are a couple of things to note here.
|
|
159
|
-
|
|
160
|
-
First, when adding to a variable, Ceedling has no way of knowing
|
|
161
|
-
what delimiter you are expecting. In this example you can see we manually added some whitespace.
|
|
162
|
-
If we had been modifying `PATH` instead, we might have had to use a `:` on a unux or `;` on
|
|
163
|
-
Windows.
|
|
164
|
-
|
|
165
|
-
Second, removing an argument will have no effect on the argument if that argument isn't found
|
|
166
|
-
precisely. It’s case sensitive and the entire string must match. If symbol doesn't already exist,
|
|
167
|
-
it WILL after executing this command... however it will be assigned to nothing.
|
|
168
|
-
|
|
169
|
-
## Building Dependencies
|
|
170
|
-
|
|
171
|
-
The heart of the `:dependencies` plugin is the ability for you, the developer, to specify the
|
|
172
|
-
build process for each of your dependencies. You will need to have any required tools installed
|
|
173
|
-
before using this feature.
|
|
174
|
-
|
|
175
|
-
The steps are specified as an array of strings. Ceedling will execute those steps in the order
|
|
176
|
-
specified, moving from step to step unless an error is encountered. By the end of the process,
|
|
177
|
-
the artifacts should have been created by your process... otherwise an error will be produced.
|
|
178
|
-
|
|
179
|
-
## Artifacts
|
|
180
|
-
|
|
181
|
-
These are the outputs of the build process. There are there types of artifacts. Any dependency
|
|
182
|
-
may have none or some of these. Calling out these files tells Ceedling that they are important.
|
|
183
|
-
Your dependency’s build process may produce many other files... but these are the files that
|
|
184
|
-
Ceedling understands it needs to act on.
|
|
185
|
-
|
|
186
|
-
### `static_libraries`
|
|
187
|
-
|
|
188
|
-
Specifying one or more static libraries will tell Ceedling where it should find static libraries
|
|
189
|
-
output by your build process. These libraries are automatically added to the list of dependencies
|
|
190
|
-
and will be linked with the rest of your code to produce the final release.
|
|
191
|
-
|
|
192
|
-
If any of these libraries don't exist, Ceedling will trigger your build process in order for it
|
|
193
|
-
to produce them.
|
|
194
|
-
|
|
195
|
-
### `dynamic_libraries`
|
|
196
|
-
|
|
197
|
-
Specifying one or more dynamic libraries will tell Ceedling where it should find dynamic libraries
|
|
198
|
-
output by your build process. These libraries are automatically copied to the same folder as your
|
|
199
|
-
final release binary.
|
|
200
|
-
|
|
201
|
-
If any of these libraries don't exist, Ceedling will trigger your build process in order for it
|
|
202
|
-
to produce them.
|
|
203
|
-
|
|
204
|
-
### `includes`
|
|
205
|
-
|
|
206
|
-
Often when libraries are built, the same process will output a collection of includes so that
|
|
207
|
-
your release code knows how to interact with that library. It’s the public API for that library.
|
|
208
|
-
By specifying the directories that will contain these includes (don't specify the files themselves,
|
|
209
|
-
Ceedling only needs the directories), Ceedling is able to automatically add these to its internal
|
|
210
|
-
include list. This allows these files to be used while building your release code, as well we making
|
|
211
|
-
them mockable during unit testing.
|
|
212
|
-
|
|
213
|
-
### `source`
|
|
214
|
-
|
|
215
|
-
It’s possible that your external dependency will just produce additional C files as its output.
|
|
216
|
-
In this case, Ceedling is able to automatically add these to its internal source list. This allows
|
|
217
|
-
these files to be used while building your release code.
|
|
218
|
-
|
|
219
|
-
## Tasks
|
|
220
|
-
|
|
221
|
-
Once configured correctly, the `:dependencies` plugin should integrate seamlessly into your
|
|
222
|
-
workflow and you shouldn't have to think about it. In the real world, that doesn't always happen.
|
|
223
|
-
Here are a number of tasks that are added or modified by this plugin.
|
|
224
|
-
|
|
225
|
-
### `ceedling dependencies:clean`
|
|
226
|
-
|
|
227
|
-
This can be issued in order to completely remove the dependency from its source path. On the
|
|
228
|
-
next build, it will be refetched and rebuilt from scratch. This can also apply to a particular
|
|
229
|
-
dependency. For example, by specifying `dependencies:clean:DepName`.
|
|
230
|
-
|
|
231
|
-
### `ceedling dependencies:fetch`
|
|
232
|
-
|
|
233
|
-
This can be issued in order to fetch each dependency from its origin. This will have no effect on
|
|
234
|
-
dependencies that don't have fetch instructions specified. This can also apply to a particular
|
|
235
|
-
dependency. For example, by specifying `dependencies:fetch:DepName`.
|
|
236
|
-
|
|
237
|
-
### `ceedling dependencies:make`
|
|
238
|
-
|
|
239
|
-
This will force the dependencies to all build. This should happen automatically when a release
|
|
240
|
-
has been triggered... but if you're just getting your dependency configured at this moment, you
|
|
241
|
-
may want to just use this feature instead. A single dependency can also be built by specifying its
|
|
242
|
-
name, like `dependencies:make:MyTunaBoat`.
|
|
243
|
-
|
|
244
|
-
### `ceedling dependencies:deploy`
|
|
245
|
-
|
|
246
|
-
This will force any dynamic libraries produced by your dependencies to be copied to your release
|
|
247
|
-
build directory... just in case you clobbered them.
|
|
248
|
-
|
|
249
|
-
### `paths:include`
|
|
250
|
-
|
|
251
|
-
Maybe you want to verify that all the include paths are correct. If you query Ceedling with this
|
|
252
|
-
request, it will list all the header file paths that it’s found, including those produced by
|
|
253
|
-
dependencies.
|
|
254
|
-
|
|
255
|
-
### `files:include`
|
|
256
|
-
|
|
257
|
-
Maybe you want to take that query further and actually get a list of ALL the header files
|
|
258
|
-
Ceedling has found, including those belonging to your dependencies.
|
|
259
|
-
|
|
260
|
-
## Custom Tools
|
|
261
|
-
|
|
262
|
-
You can optionally specify a compiler, assembler, and linker, just as you would a release build:
|
|
263
|
-
|
|
264
|
-
```yaml
|
|
265
|
-
:tools:
|
|
266
|
-
:deps_compiler:
|
|
267
|
-
:executable: gcc
|
|
268
|
-
:arguments:
|
|
269
|
-
- -g
|
|
270
|
-
- -I"$": COLLECTION_PATHS_SUBPROJECTS
|
|
271
|
-
- -D$: COLLECTION_DEFINES_SUBPROJECTS
|
|
272
|
-
- -c "${1}"
|
|
273
|
-
- -o "${2}"
|
|
274
|
-
:deps_linker:
|
|
275
|
-
:executable: ar
|
|
276
|
-
:arguments:
|
|
277
|
-
- rcs
|
|
278
|
-
- ${2}
|
|
279
|
-
- ${1}
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
Then, once created, you can reference these tools in your build steps by using the `:build_lib` symbol instead
|
|
283
|
-
of a series of strings to explain all the steps. Ceedling will understand that it should build all the specified
|
|
284
|
-
source and/or assembly files into the specified library:
|
|
285
|
-
|
|
286
|
-
```yaml
|
|
287
|
-
:dependencies:
|
|
288
|
-
:deps:
|
|
289
|
-
- :name: CaptainCrunch
|
|
290
|
-
:paths:
|
|
291
|
-
:fetch: ../cc/
|
|
292
|
-
:source: ../cc/
|
|
293
|
-
:build: ../cc/build
|
|
294
|
-
:artifact: ../cc/build
|
|
295
|
-
:fetch:
|
|
296
|
-
:method: :none
|
|
297
|
-
:environment: []
|
|
298
|
-
:build:
|
|
299
|
-
- :build_lib
|
|
300
|
-
:artifacts:
|
|
301
|
-
:static_libraries:
|
|
302
|
-
- release/cc.a
|
|
303
|
-
:dynamic_libraries: []
|
|
304
|
-
:includes:
|
|
305
|
-
- ./cc.h
|
|
306
|
-
:defines:
|
|
307
|
-
- THESE_GET_USED_DURING_COMPILATION
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
<br/><br/>
|
data/docs/mkdocs/plugins/fff.md
DELETED
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
# Fake Function Framework for Ceedling
|
|
2
|
-
|
|
3
|
-
This plugin causes Ceedling to use the [Fake Function Framework](https://github.com/meekrosoft/fff) for mocking instead of CMock, the default mocking framework packaged with Ceedling.
|
|
4
|
-
|
|
5
|
-
Using _FFF_ provides less strict mocking than CMock and affords more loosely-coupled tests.
|
|
6
|
-
|
|
7
|
-
This Ceedling 1.x plugin incorporates a snapshot of _FFF_ version 0.1.1 and supersedes a separately available [FFF Ceedling plugin project](https://github.com/ElectronVector/fake_function_framework). The built-in _FFF_ plugin that now comes with Ceedling was derived from the ElectronVector project and is now maintained along with Ceedling and tracks its updates.
|
|
8
|
-
|
|
9
|
-
!!! note "Special thanks to Matt Chernosky"
|
|
10
|
-
[Matt Chernosky](http://www.electronvector.com) originally developed this plugin
|
|
11
|
-
as an adapter for _FFF_. It's a well-loved piece of the Ceedling ecosystem,
|
|
12
|
-
and we really appreciate his support through the years.
|
|
13
|
-
|
|
14
|
-
## Enable the plugin
|
|
15
|
-
|
|
16
|
-
The plugin is enabled from within your project.yml file.
|
|
17
|
-
|
|
18
|
-
In the `:plugins` configuration, add `fff` to the list of enabled plugins:
|
|
19
|
-
|
|
20
|
-
```yaml
|
|
21
|
-
:plugins:
|
|
22
|
-
:enabled:
|
|
23
|
-
- fff
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## How to use
|
|
27
|
-
|
|
28
|
-
You use fff with Ceedling the same way you used to use CMock.
|
|
29
|
-
|
|
30
|
-
If you want to "mock" `some_module.h` in your tests, just `#include "mock_some_module.h"`.
|
|
31
|
-
This creates a fake function for each of the functions defined in `some_module.h`.
|
|
32
|
-
|
|
33
|
-
The name of each fake is the original function name with an appended `_fake`.
|
|
34
|
-
For example, if we're generating fakes for a stack module with `push` and `pop` functions, we would have the fakes `push_fake` and `pop_fake`.
|
|
35
|
-
These fakes are linked into our test executable so that any time our unit under test calls `push` or `pop` our fakes are called instead.
|
|
36
|
-
|
|
37
|
-
Each of these fakes is actually a structure containing information about how the function was called, and what it might return.
|
|
38
|
-
We can use Unity to inspect these fakes in our tests, and verify the interactions of our units.
|
|
39
|
-
There is also a global structure named `fff` which we can use to check the sequence of calls.
|
|
40
|
-
|
|
41
|
-
The fakes can also be configured to return particular values, so you can exercise the unit under test however you want.
|
|
42
|
-
|
|
43
|
-
The examples below explain how to use fff to test a variety of module interactions.
|
|
44
|
-
Each example uses fakes for a "display" module, created from a display.h file with `#include "mock_display.h"`. The `display.h` file must exist and must contain the prototypes for the functions to be faked.
|
|
45
|
-
|
|
46
|
-
### Test that a function was called once
|
|
47
|
-
|
|
48
|
-
```c
|
|
49
|
-
void
|
|
50
|
-
test_whenTheDeviceIsReset_thenTheStatusLedIsTurnedOff()
|
|
51
|
-
{
|
|
52
|
-
// When
|
|
53
|
-
event_deviceReset();
|
|
54
|
-
|
|
55
|
-
// Then
|
|
56
|
-
TEST_ASSERT_EQUAL(1, display_turnOffStatusLed_fake.call_count);
|
|
57
|
-
}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Test that a function was NOT called
|
|
61
|
-
|
|
62
|
-
```c
|
|
63
|
-
void
|
|
64
|
-
test_whenThePowerReadingIsLessThan5_thenTheStatusLedIsNotTurnedOn(void)
|
|
65
|
-
{
|
|
66
|
-
// When
|
|
67
|
-
event_powerReadingUpdate(4);
|
|
68
|
-
|
|
69
|
-
// Then
|
|
70
|
-
TEST_ASSERT_EQUAL(0, display_turnOnStatusLed_fake.call_count);
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Test that a single function was called with the correct argument
|
|
75
|
-
|
|
76
|
-
```c
|
|
77
|
-
void
|
|
78
|
-
test_whenTheVolumeKnobIsMaxed_thenVolumeDisplayIsSetTo11(void)
|
|
79
|
-
{
|
|
80
|
-
// When
|
|
81
|
-
event_volumeKnobMaxed();
|
|
82
|
-
|
|
83
|
-
// Then
|
|
84
|
-
TEST_ASSERT_EQUAL(1, display_setVolume_fake.call_count);
|
|
85
|
-
TEST_ASSERT_EQUAL(11, display_setVolume_fake.arg0_val);
|
|
86
|
-
}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Test that calls are made in a particular sequence
|
|
90
|
-
|
|
91
|
-
```c
|
|
92
|
-
void
|
|
93
|
-
test_whenTheModeSelectButtonIsPressed_thenTheDisplayModeIsCycled(void)
|
|
94
|
-
{
|
|
95
|
-
// When
|
|
96
|
-
event_modeSelectButtonPressed();
|
|
97
|
-
event_modeSelectButtonPressed();
|
|
98
|
-
event_modeSelectButtonPressed();
|
|
99
|
-
|
|
100
|
-
// Then
|
|
101
|
-
TEST_ASSERT_EQUAL_PTR((void*)display_setModeToMinimum, fff.call_history[0]);
|
|
102
|
-
TEST_ASSERT_EQUAL_PTR((void*)display_setModeToMaximum, fff.call_history[1]);
|
|
103
|
-
TEST_ASSERT_EQUAL_PTR((void*)display_setModeToAverage, fff.call_history[2]);
|
|
104
|
-
}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Fake a return value from a function
|
|
108
|
-
|
|
109
|
-
```c
|
|
110
|
-
void
|
|
111
|
-
test_givenTheDisplayHasAnError_whenTheDeviceIsPoweredOn_thenTheDisplayIsPoweredDown(void)
|
|
112
|
-
{
|
|
113
|
-
// Given
|
|
114
|
-
display_isError_fake.return_val = true;
|
|
115
|
-
|
|
116
|
-
// When
|
|
117
|
-
event_devicePoweredOn();
|
|
118
|
-
|
|
119
|
-
// Then
|
|
120
|
-
TEST_ASSERT_EQUAL(1, display_powerDown_fake.call_count);
|
|
121
|
-
}
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
### Fake a function with a value returned by reference
|
|
125
|
-
|
|
126
|
-
```c
|
|
127
|
-
void
|
|
128
|
-
test_givenTheUserHasTypedSleep_whenItIsTimeToCheckTheKeyboard_theDisplayIsPoweredDown(void)
|
|
129
|
-
{
|
|
130
|
-
// Given
|
|
131
|
-
char mockedEntry[] = "sleep";
|
|
132
|
-
void return_mock_value(char * entry, int length)
|
|
133
|
-
{
|
|
134
|
-
if (length > strlen(mockedEntry))
|
|
135
|
-
{
|
|
136
|
-
strncpy(entry, mockedEntry, length);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
display_getKeyboardEntry_fake.custom_fake = return_mock_value;
|
|
140
|
-
|
|
141
|
-
// When
|
|
142
|
-
event_keyboardCheckTimerExpired();
|
|
143
|
-
|
|
144
|
-
// Then
|
|
145
|
-
TEST_ASSERT_EQUAL(1, display_powerDown_fake.call_count);
|
|
146
|
-
}
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### Fake a function with a function pointer parameter
|
|
150
|
-
|
|
151
|
-
```c
|
|
152
|
-
void
|
|
153
|
-
test_givenNewDataIsAvailable_whenTheDisplayHasUpdated_thenTheEventIsComplete(void)
|
|
154
|
-
{
|
|
155
|
-
// A mock function for capturing the callback handler function pointer.
|
|
156
|
-
void(*registeredCallback)(void) = 0;
|
|
157
|
-
void mock_display_updateData(int data, void(*callback)(void))
|
|
158
|
-
{
|
|
159
|
-
//Save the callback function.
|
|
160
|
-
registeredCallback = callback;
|
|
161
|
-
}
|
|
162
|
-
display_updateData_fake.custom_fake = mock_display_updateData;
|
|
163
|
-
|
|
164
|
-
// Given
|
|
165
|
-
event_newDataAvailable(10);
|
|
166
|
-
|
|
167
|
-
// When
|
|
168
|
-
if (registeredCallback != 0)
|
|
169
|
-
{
|
|
170
|
-
registeredCallback();
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// Then
|
|
174
|
-
TEST_ASSERT_EQUAL(true, eventProcessor_isLastEventComplete());
|
|
175
|
-
}
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Helper macros
|
|
179
|
-
|
|
180
|
-
For convenience, there are also some helper macros that create new Unity-style asserts:
|
|
181
|
-
|
|
182
|
-
- `TEST_ASSERT_CALLED(function)`: Asserts that a function was called once.
|
|
183
|
-
- `TEST_ASSERT_NOT_CALLED(function)`: Asserts that a function was never called.
|
|
184
|
-
- `TEST_ASSERT_CALLED_TIMES(times, function)`: Asserts that a function was called a particular number of times.
|
|
185
|
-
- `TEST_ASSERT_CALLED_IN_ORDER(order, function)`: Asserts that a function was called in a particular order.
|
|
186
|
-
|
|
187
|
-
Here's how you might use one of these instead of simply checking the call_count value:
|
|
188
|
-
|
|
189
|
-
```c
|
|
190
|
-
void
|
|
191
|
-
test_whenTheDeviceIsReset_thenTheStatusLedIsTurnedOff()
|
|
192
|
-
{
|
|
193
|
-
// When
|
|
194
|
-
event_deviceReset();
|
|
195
|
-
|
|
196
|
-
// Then
|
|
197
|
-
// This how to directly use fff...
|
|
198
|
-
TEST_ASSERT_EQUAL(1, display_turnOffStatusLed_fake.call_count);
|
|
199
|
-
// ...and this is how to use the helper macro.
|
|
200
|
-
TEST_ASSERT_CALLED(display_turnOffStatusLed);
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## Test setup
|
|
205
|
-
|
|
206
|
-
All of the fake functions and any fff global state are all reset automatically between each test.
|
|
207
|
-
|
|
208
|
-
## CMock configuration
|
|
209
|
-
|
|
210
|
-
We still use some CMock configuration options for setting things like the mock prefix and for including additional header files in the mock files.
|
|
211
|
-
|
|
212
|
-
```yaml
|
|
213
|
-
:cmock:
|
|
214
|
-
:mock_prefix: mock_
|
|
215
|
-
:includes:
|
|
216
|
-
- ...
|
|
217
|
-
:includes_h_pre_orig_header:
|
|
218
|
-
- ...
|
|
219
|
-
:includes_h_post_orig_header:
|
|
220
|
-
- ...
|
|
221
|
-
:includes_c_pre_header:
|
|
222
|
-
- ...
|
|
223
|
-
:includes_c_post_header:
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
## FFF examples
|
|
227
|
-
|
|
228
|
-
See the [FFF example project][fff-example-project]. This project illustrates how to use the plugin with full-size examples.
|
|
229
|
-
|
|
230
|
-
!!! warning "Versioning"
|
|
231
|
-
The example project link is to the latest in the repository.
|
|
232
|
-
It is not explicitly versioned to correspond to this documentation.
|
|
233
|
-
That said, FFF and the plugin are relatively stable.
|
|
234
|
-
|
|
235
|
-
### Running example tests
|
|
236
|
-
|
|
237
|
-
Unit and integration tests exist for the plugin itself.
|
|
238
|
-
|
|
239
|
-
These tests are run with the default `rake` task packaged in the [FFF plugin][fff-plugin].
|
|
240
|
-
|
|
241
|
-
The integration test runs the FFF-based unit tests within the [example project][fff-example-project].
|
|
242
|
-
That is, the FFF examples are executed as part of Ceedling continuous integration.
|
|
243
|
-
|
|
244
|
-
[fff-example-project]: https://github.com/ThrowTheSwitch/Ceedling/tree/master/plugins/fff/examples/fff_example
|
|
245
|
-
[fff-plugin]: https://github.com/ThrowTheSwitch/Ceedling/tree/master/plugins/fff
|
|
246
|
-
|
|
247
|
-
<br/><br/>
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# Example Usage
|
|
2
|
-
|
|
3
|
-
!!! note
|
|
4
|
-
Unless disabled, basic coverage summaries are always printed to the
|
|
5
|
-
console regardless of report generation options.
|
|
6
|
-
|
|
7
|
-
## Automatic report generation (default)
|
|
8
|
-
|
|
9
|
-
If coverage report generation is configured, the plugin defaults to running
|
|
10
|
-
reports after any `gcov:` task.
|
|
11
|
-
|
|
12
|
-
```yaml
|
|
13
|
-
:plugins:
|
|
14
|
-
:enabled:
|
|
15
|
-
- gcov
|
|
16
|
-
|
|
17
|
-
:gcov:
|
|
18
|
-
:utilities:
|
|
19
|
-
- gcovr # Enabled by default -- shown for completeness
|
|
20
|
-
:report_task: FALSE # Disabled by default -- shown for completeness
|
|
21
|
-
:reports: # See later section for report configuration
|
|
22
|
-
- HtmlBasic
|
|
23
|
-
|
|
24
|
-
... # Further configuration for reporting (not shown)
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
```shell
|
|
29
|
-
> ceedling gcov:all
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Report generation manual task
|
|
33
|
-
|
|
34
|
-
If the `:report_task:` configuration option is enabled, reports are not
|
|
35
|
-
automatically generaed after test suite coverage builds. Instead, report
|
|
36
|
-
generation is triggered by the `report:gcov` task.
|
|
37
|
-
|
|
38
|
-
```yaml
|
|
39
|
-
:plugins:
|
|
40
|
-
:enabled:
|
|
41
|
-
- gcov
|
|
42
|
-
|
|
43
|
-
:gcov:
|
|
44
|
-
:utilities:
|
|
45
|
-
- gcovr # Enabled by default -- shown for completeness
|
|
46
|
-
:report_task: TRUE
|
|
47
|
-
:reports: # See later section for report configuration
|
|
48
|
-
- HtmlBasic # Enabled by default -- shown for completeness
|
|
49
|
-
|
|
50
|
-
... # Further configuration for reporting (not shown)
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
With the separate reporting task enabled, it can be used like any other Ceedling task.
|
|
55
|
-
|
|
56
|
-
```shell
|
|
57
|
-
> ceedling gcov:all report:gcov
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
or
|
|
61
|
-
|
|
62
|
-
```shell
|
|
63
|
-
> ceedling gcov:all
|
|
64
|
-
|
|
65
|
-
> ceedling report:gcov
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Full report generation
|
|
69
|
-
|
|
70
|
-
```yaml
|
|
71
|
-
:plugins:
|
|
72
|
-
:enabled:
|
|
73
|
-
- gcov
|
|
74
|
-
|
|
75
|
-
:gcov:
|
|
76
|
-
:summaries: FALSE # Simple coverage summaries to console disabled
|
|
77
|
-
:reports: # `gcovr` tool enabled by default
|
|
78
|
-
- HtmlDetailed
|
|
79
|
-
- Text
|
|
80
|
-
- Cobertura
|
|
81
|
-
:gcovr: # `gcovr` common and report-specific options
|
|
82
|
-
:report_root: "../../" # Atypical layout -- project.yml is inside a subdirectoy below <build root>
|
|
83
|
-
:sort_percentage: TRUE
|
|
84
|
-
:sort_uncovered: FALSE
|
|
85
|
-
:html_medium_threshold: 60
|
|
86
|
-
:html_high_threshold: 85
|
|
87
|
-
:print_summary: TRUE
|
|
88
|
-
:threads: 4
|
|
89
|
-
:keep: FALSE
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
<br/><br/>
|