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
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<link rel="prev" href="index.html">
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
<link rel="next" href="
|
|
17
|
+
<link rel="next" href="releases.html">
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
@@ -89,10 +89,34 @@
|
|
|
89
89
|
</div>
|
|
90
90
|
<div data-md-component="announce">
|
|
91
91
|
|
|
92
|
+
<aside class="md-banner">
|
|
93
|
+
<div class="md-banner__inner md-grid md-typeset">
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
</aside>
|
|
101
|
+
|
|
92
102
|
</div>
|
|
93
103
|
|
|
94
104
|
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
|
|
95
105
|
|
|
106
|
+
<aside class="md-banner md-banner--warning">
|
|
107
|
+
<div class="md-banner__inner md-grid md-typeset">
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
You are not viewing the latest version.
|
|
111
|
+
<a href="../..">
|
|
112
|
+
<strong>Click here to go to latest.</strong>
|
|
113
|
+
</a>
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
</div>
|
|
117
|
+
<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL(".."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
|
|
118
|
+
</aside>
|
|
119
|
+
|
|
96
120
|
</div>
|
|
97
121
|
|
|
98
122
|
|
|
@@ -330,7 +354,7 @@
|
|
|
330
354
|
|
|
331
355
|
|
|
332
356
|
<li class="md-tabs__item">
|
|
333
|
-
<a href="../project/
|
|
357
|
+
<a href="../project/index.html" class="md-tabs__link">
|
|
334
358
|
|
|
335
359
|
|
|
336
360
|
|
|
@@ -641,6 +665,8 @@
|
|
|
641
665
|
|
|
642
666
|
|
|
643
667
|
|
|
668
|
+
|
|
669
|
+
|
|
644
670
|
|
|
645
671
|
|
|
646
672
|
|
|
@@ -788,6 +814,34 @@
|
|
|
788
814
|
|
|
789
815
|
|
|
790
816
|
|
|
817
|
+
<li class="md-nav__item">
|
|
818
|
+
<a href="../getting-started/builds.html" class="md-nav__link">
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
<span class="md-ellipsis">
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
Builds
|
|
826
|
+
|
|
827
|
+
|
|
828
|
+
|
|
829
|
+
</span>
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
</a>
|
|
834
|
+
</li>
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
|
|
791
845
|
|
|
792
846
|
|
|
793
847
|
|
|
@@ -814,7 +868,7 @@
|
|
|
814
868
|
|
|
815
869
|
|
|
816
870
|
|
|
817
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
871
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
|
|
818
872
|
|
|
819
873
|
|
|
820
874
|
<div class="md-nav__link md-nav__container">
|
|
@@ -836,14 +890,14 @@
|
|
|
836
890
|
</a>
|
|
837
891
|
|
|
838
892
|
|
|
839
|
-
<label class="md-nav__link " for="
|
|
893
|
+
<label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
|
|
840
894
|
<span class="md-nav__icon md-icon"></span>
|
|
841
895
|
</label>
|
|
842
896
|
|
|
843
897
|
</div>
|
|
844
898
|
|
|
845
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
846
|
-
<label class="md-nav__title" for="
|
|
899
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
|
|
900
|
+
<label class="md-nav__title" for="__nav_3_6">
|
|
847
901
|
<span class="md-nav__icon md-icon"></span>
|
|
848
902
|
|
|
849
903
|
|
|
@@ -2410,6 +2464,8 @@
|
|
|
2410
2464
|
|
|
2411
2465
|
|
|
2412
2466
|
|
|
2467
|
+
|
|
2468
|
+
|
|
2413
2469
|
|
|
2414
2470
|
|
|
2415
2471
|
|
|
@@ -3041,8 +3097,61 @@
|
|
|
3041
3097
|
|
|
3042
3098
|
|
|
3043
3099
|
<li class="md-nav__item">
|
|
3044
|
-
<a href="../plugins/
|
|
3100
|
+
<a href="../plugins/sanitize.html" class="md-nav__link">
|
|
3101
|
+
|
|
3102
|
+
|
|
3103
|
+
|
|
3104
|
+
<span class="md-ellipsis">
|
|
3105
|
+
|
|
3106
|
+
|
|
3107
|
+
Sanitize (ASan, UBSan & Leaks)
|
|
3108
|
+
|
|
3109
|
+
|
|
3110
|
+
|
|
3111
|
+
</span>
|
|
3112
|
+
|
|
3113
|
+
|
|
3114
|
+
|
|
3115
|
+
</a>
|
|
3116
|
+
</li>
|
|
3117
|
+
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
|
|
3132
|
+
|
|
3133
|
+
|
|
3134
|
+
|
|
3135
|
+
|
|
3136
|
+
|
|
3137
|
+
|
|
3138
|
+
|
|
3139
|
+
|
|
3140
|
+
|
|
3141
|
+
|
|
3142
|
+
|
|
3143
|
+
|
|
3144
|
+
|
|
3145
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
3146
|
+
|
|
3147
|
+
|
|
3045
3148
|
|
|
3149
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
|
|
3150
|
+
|
|
3151
|
+
|
|
3152
|
+
<div class="md-nav__link md-nav__container">
|
|
3153
|
+
<a href="../plugins/bullseye/index.html" class="md-nav__link ">
|
|
3154
|
+
|
|
3046
3155
|
|
|
3047
3156
|
|
|
3048
3157
|
<span class="md-ellipsis">
|
|
@@ -3052,6 +3161,50 @@
|
|
|
3052
3161
|
|
|
3053
3162
|
|
|
3054
3163
|
|
|
3164
|
+
</span>
|
|
3165
|
+
|
|
3166
|
+
|
|
3167
|
+
|
|
3168
|
+
</a>
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
<label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="0">
|
|
3172
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3173
|
+
</label>
|
|
3174
|
+
|
|
3175
|
+
</div>
|
|
3176
|
+
|
|
3177
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
|
|
3178
|
+
<label class="md-nav__title" for="__nav_6_13">
|
|
3179
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3180
|
+
|
|
3181
|
+
|
|
3182
|
+
Bullseye (Coverage)
|
|
3183
|
+
|
|
3184
|
+
|
|
3185
|
+
</label>
|
|
3186
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
3187
|
+
|
|
3188
|
+
|
|
3189
|
+
|
|
3190
|
+
|
|
3191
|
+
|
|
3192
|
+
|
|
3193
|
+
|
|
3194
|
+
|
|
3195
|
+
|
|
3196
|
+
<li class="md-nav__item">
|
|
3197
|
+
<a href="../plugins/bullseye/licensing.html" class="md-nav__link">
|
|
3198
|
+
|
|
3199
|
+
|
|
3200
|
+
|
|
3201
|
+
<span class="md-ellipsis">
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
Licensing
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
|
|
3055
3208
|
</span>
|
|
3056
3209
|
|
|
3057
3210
|
|
|
@@ -3062,6 +3215,14 @@
|
|
|
3062
3215
|
|
|
3063
3216
|
|
|
3064
3217
|
|
|
3218
|
+
</ul>
|
|
3219
|
+
</nav>
|
|
3220
|
+
|
|
3221
|
+
</li>
|
|
3222
|
+
|
|
3223
|
+
|
|
3224
|
+
|
|
3225
|
+
|
|
3065
3226
|
|
|
3066
3227
|
|
|
3067
3228
|
|
|
@@ -3531,6 +3692,12 @@
|
|
|
3531
3692
|
|
|
3532
3693
|
|
|
3533
3694
|
|
|
3695
|
+
|
|
3696
|
+
|
|
3697
|
+
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
|
|
3534
3701
|
|
|
3535
3702
|
|
|
3536
3703
|
|
|
@@ -3550,8 +3717,9 @@
|
|
|
3550
3717
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
|
|
3551
3718
|
|
|
3552
3719
|
|
|
3553
|
-
<
|
|
3554
|
-
|
|
3720
|
+
<div class="md-nav__link md-nav__container">
|
|
3721
|
+
<a href="../project/index.html" class="md-nav__link ">
|
|
3722
|
+
|
|
3555
3723
|
|
|
3556
3724
|
|
|
3557
3725
|
<span class="md-ellipsis">
|
|
@@ -3565,8 +3733,14 @@
|
|
|
3565
3733
|
|
|
3566
3734
|
|
|
3567
3735
|
|
|
3568
|
-
|
|
3569
|
-
|
|
3736
|
+
</a>
|
|
3737
|
+
|
|
3738
|
+
|
|
3739
|
+
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
|
|
3740
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3741
|
+
</label>
|
|
3742
|
+
|
|
3743
|
+
</div>
|
|
3570
3744
|
|
|
3571
3745
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
|
|
3572
3746
|
<label class="md-nav__title" for="__nav_8">
|
|
@@ -3580,6 +3754,8 @@
|
|
|
3580
3754
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
3581
3755
|
|
|
3582
3756
|
|
|
3757
|
+
|
|
3758
|
+
|
|
3583
3759
|
|
|
3584
3760
|
|
|
3585
3761
|
|
|
@@ -3613,6 +3789,34 @@
|
|
|
3613
3789
|
|
|
3614
3790
|
|
|
3615
3791
|
|
|
3792
|
+
<li class="md-nav__item">
|
|
3793
|
+
<a href="../project/sbom.html" class="md-nav__link">
|
|
3794
|
+
|
|
3795
|
+
|
|
3796
|
+
|
|
3797
|
+
<span class="md-ellipsis">
|
|
3798
|
+
|
|
3799
|
+
|
|
3800
|
+
Software Bill of Materials
|
|
3801
|
+
|
|
3802
|
+
|
|
3803
|
+
|
|
3804
|
+
</span>
|
|
3805
|
+
|
|
3806
|
+
|
|
3807
|
+
|
|
3808
|
+
</a>
|
|
3809
|
+
</li>
|
|
3810
|
+
|
|
3811
|
+
|
|
3812
|
+
|
|
3813
|
+
|
|
3814
|
+
|
|
3815
|
+
|
|
3816
|
+
|
|
3817
|
+
|
|
3818
|
+
|
|
3819
|
+
|
|
3616
3820
|
<li class="md-nav__item">
|
|
3617
3821
|
<a href="../project/upgrade.html" class="md-nav__link">
|
|
3618
3822
|
|
|
@@ -3685,6 +3889,8 @@
|
|
|
3685
3889
|
|
|
3686
3890
|
|
|
3687
3891
|
|
|
3892
|
+
|
|
3893
|
+
|
|
3688
3894
|
|
|
3689
3895
|
|
|
3690
3896
|
|
|
@@ -3811,6 +4017,17 @@
|
|
|
3811
4017
|
</label>
|
|
3812
4018
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
3813
4019
|
|
|
4020
|
+
<li class="md-nav__item">
|
|
4021
|
+
<a href="#code-organization" class="md-nav__link">
|
|
4022
|
+
<span class="md-ellipsis">
|
|
4023
|
+
|
|
4024
|
+
Code organization
|
|
4025
|
+
|
|
4026
|
+
</span>
|
|
4027
|
+
</a>
|
|
4028
|
+
|
|
4029
|
+
</li>
|
|
4030
|
+
|
|
3814
4031
|
<li class="md-nav__item">
|
|
3815
4032
|
<a href="#installation-options" class="md-nav__link">
|
|
3816
4033
|
<span class="md-ellipsis">
|
|
@@ -3915,6 +4132,28 @@
|
|
|
3915
4132
|
</span>
|
|
3916
4133
|
</a>
|
|
3917
4134
|
|
|
4135
|
+
</li>
|
|
4136
|
+
|
|
4137
|
+
<li class="md-nav__item">
|
|
4138
|
+
<a href="#recording-a-dependencys-license" class="md-nav__link">
|
|
4139
|
+
<span class="md-ellipsis">
|
|
4140
|
+
|
|
4141
|
+
Recording a dependency’s license
|
|
4142
|
+
|
|
4143
|
+
</span>
|
|
4144
|
+
</a>
|
|
4145
|
+
|
|
4146
|
+
</li>
|
|
4147
|
+
|
|
4148
|
+
<li class="md-nav__item">
|
|
4149
|
+
<a href="#updating-a-vendored-component" class="md-nav__link">
|
|
4150
|
+
<span class="md-ellipsis">
|
|
4151
|
+
|
|
4152
|
+
Updating a vendored component
|
|
4153
|
+
|
|
4154
|
+
</span>
|
|
4155
|
+
</a>
|
|
4156
|
+
|
|
3918
4157
|
</li>
|
|
3919
4158
|
|
|
3920
4159
|
</ul>
|
|
@@ -3934,54 +4173,266 @@
|
|
|
3934
4173
|
</li>
|
|
3935
4174
|
|
|
3936
4175
|
<li class="md-nav__item">
|
|
3937
|
-
<a href="#
|
|
4176
|
+
<a href="#troubleshooting-system-tests" class="md-nav__link">
|
|
3938
4177
|
<span class="md-ellipsis">
|
|
3939
4178
|
|
|
3940
|
-
|
|
4179
|
+
Troubleshooting system tests
|
|
3941
4180
|
|
|
3942
4181
|
</span>
|
|
3943
4182
|
</a>
|
|
3944
4183
|
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
4184
|
+
<nav class="md-nav" aria-label="Troubleshooting system tests">
|
|
4185
|
+
<ul class="md-nav__list">
|
|
4186
|
+
|
|
4187
|
+
<li class="md-nav__item">
|
|
4188
|
+
<a href="#retained-artifacts" class="md-nav__link">
|
|
3949
4189
|
<span class="md-ellipsis">
|
|
3950
4190
|
|
|
3951
|
-
|
|
4191
|
+
Retained artifacts
|
|
3952
4192
|
|
|
3953
4193
|
</span>
|
|
3954
4194
|
</a>
|
|
3955
4195
|
|
|
3956
4196
|
</li>
|
|
4197
|
+
|
|
4198
|
+
<li class="md-nav__item">
|
|
4199
|
+
<a href="#failure-output-at-the-console" class="md-nav__link">
|
|
4200
|
+
<span class="md-ellipsis">
|
|
3957
4201
|
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
</nav>
|
|
4202
|
+
Failure output at the console
|
|
3961
4203
|
|
|
3962
|
-
</
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
4204
|
+
</span>
|
|
4205
|
+
</a>
|
|
3972
4206
|
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
|
|
4207
|
+
</li>
|
|
3980
4208
|
|
|
4209
|
+
<li class="md-nav__item">
|
|
4210
|
+
<a href="#artifacts-from-a-failed-ci-run" class="md-nav__link">
|
|
4211
|
+
<span class="md-ellipsis">
|
|
3981
4212
|
|
|
3982
|
-
|
|
4213
|
+
Artifacts from a failed CI run
|
|
3983
4214
|
|
|
3984
|
-
|
|
4215
|
+
</span>
|
|
4216
|
+
</a>
|
|
4217
|
+
|
|
4218
|
+
</li>
|
|
4219
|
+
|
|
4220
|
+
</ul>
|
|
4221
|
+
</nav>
|
|
4222
|
+
|
|
4223
|
+
</li>
|
|
4224
|
+
|
|
4225
|
+
<li class="md-nav__item">
|
|
4226
|
+
<a href="#linting" class="md-nav__link">
|
|
4227
|
+
<span class="md-ellipsis">
|
|
4228
|
+
|
|
4229
|
+
Linting
|
|
4230
|
+
|
|
4231
|
+
</span>
|
|
4232
|
+
</a>
|
|
4233
|
+
|
|
4234
|
+
<nav class="md-nav" aria-label="Linting">
|
|
4235
|
+
<ul class="md-nav__list">
|
|
4236
|
+
|
|
4237
|
+
<li class="md-nav__item">
|
|
4238
|
+
<a href="#the-offense-backlog" class="md-nav__link">
|
|
4239
|
+
<span class="md-ellipsis">
|
|
4240
|
+
|
|
4241
|
+
The offense backlog
|
|
4242
|
+
|
|
4243
|
+
</span>
|
|
4244
|
+
</a>
|
|
4245
|
+
|
|
4246
|
+
</li>
|
|
4247
|
+
|
|
4248
|
+
<li class="md-nav__item">
|
|
4249
|
+
<a href="#linting-in-continuous-integration" class="md-nav__link">
|
|
4250
|
+
<span class="md-ellipsis">
|
|
4251
|
+
|
|
4252
|
+
Linting in continuous integration
|
|
4253
|
+
|
|
4254
|
+
</span>
|
|
4255
|
+
</a>
|
|
4256
|
+
|
|
4257
|
+
</li>
|
|
4258
|
+
|
|
4259
|
+
</ul>
|
|
4260
|
+
</nav>
|
|
4261
|
+
|
|
4262
|
+
</li>
|
|
4263
|
+
|
|
4264
|
+
<li class="md-nav__item">
|
|
4265
|
+
<a href="#profiling" class="md-nav__link">
|
|
4266
|
+
<span class="md-ellipsis">
|
|
4267
|
+
|
|
4268
|
+
Profiling
|
|
4269
|
+
|
|
4270
|
+
</span>
|
|
4271
|
+
</a>
|
|
4272
|
+
|
|
4273
|
+
<nav class="md-nav" aria-label="Profiling">
|
|
4274
|
+
<ul class="md-nav__list">
|
|
4275
|
+
|
|
4276
|
+
<li class="md-nav__item">
|
|
4277
|
+
<a href="#reports" class="md-nav__link">
|
|
4278
|
+
<span class="md-ellipsis">
|
|
4279
|
+
|
|
4280
|
+
Reports
|
|
4281
|
+
|
|
4282
|
+
</span>
|
|
4283
|
+
</a>
|
|
4284
|
+
|
|
4285
|
+
</li>
|
|
4286
|
+
|
|
4287
|
+
<li class="md-nav__item">
|
|
4288
|
+
<a href="#reading-a-report" class="md-nav__link">
|
|
4289
|
+
<span class="md-ellipsis">
|
|
4290
|
+
|
|
4291
|
+
Reading a report
|
|
4292
|
+
|
|
4293
|
+
</span>
|
|
4294
|
+
</a>
|
|
4295
|
+
|
|
4296
|
+
</li>
|
|
4297
|
+
|
|
4298
|
+
</ul>
|
|
4299
|
+
</nav>
|
|
4300
|
+
|
|
4301
|
+
</li>
|
|
4302
|
+
|
|
4303
|
+
<li class="md-nav__item">
|
|
4304
|
+
<a href="#building-the-gem" class="md-nav__link">
|
|
4305
|
+
<span class="md-ellipsis">
|
|
4306
|
+
|
|
4307
|
+
Building the gem
|
|
4308
|
+
|
|
4309
|
+
</span>
|
|
4310
|
+
</a>
|
|
4311
|
+
|
|
4312
|
+
<nav class="md-nav" aria-label="Building the gem">
|
|
4313
|
+
<ul class="md-nav__list">
|
|
4314
|
+
|
|
4315
|
+
<li class="md-nav__item">
|
|
4316
|
+
<a href="#generating-the-bill-of-materials" class="md-nav__link">
|
|
4317
|
+
<span class="md-ellipsis">
|
|
4318
|
+
|
|
4319
|
+
Generating the Bill of Materials
|
|
4320
|
+
|
|
4321
|
+
</span>
|
|
4322
|
+
</a>
|
|
4323
|
+
|
|
4324
|
+
</li>
|
|
4325
|
+
|
|
4326
|
+
</ul>
|
|
4327
|
+
</nav>
|
|
4328
|
+
|
|
4329
|
+
</li>
|
|
4330
|
+
|
|
4331
|
+
<li class="md-nav__item">
|
|
4332
|
+
<a href="#documentation" class="md-nav__link">
|
|
4333
|
+
<span class="md-ellipsis">
|
|
4334
|
+
|
|
4335
|
+
Documentation
|
|
4336
|
+
|
|
4337
|
+
</span>
|
|
4338
|
+
</a>
|
|
4339
|
+
|
|
4340
|
+
<nav class="md-nav" aria-label="Documentation">
|
|
4341
|
+
<ul class="md-nav__list">
|
|
4342
|
+
|
|
4343
|
+
<li class="md-nav__item">
|
|
4344
|
+
<a href="#developer-documentation" class="md-nav__link">
|
|
4345
|
+
<span class="md-ellipsis">
|
|
4346
|
+
|
|
4347
|
+
Developer documentation
|
|
4348
|
+
|
|
4349
|
+
</span>
|
|
4350
|
+
</a>
|
|
4351
|
+
|
|
4352
|
+
</li>
|
|
4353
|
+
|
|
4354
|
+
<li class="md-nav__item">
|
|
4355
|
+
<a href="#user-documentation" class="md-nav__link">
|
|
4356
|
+
<span class="md-ellipsis">
|
|
4357
|
+
|
|
4358
|
+
User documentation
|
|
4359
|
+
|
|
4360
|
+
</span>
|
|
4361
|
+
</a>
|
|
4362
|
+
|
|
4363
|
+
</li>
|
|
4364
|
+
|
|
4365
|
+
</ul>
|
|
4366
|
+
</nav>
|
|
4367
|
+
|
|
4368
|
+
</li>
|
|
4369
|
+
|
|
4370
|
+
<li class="md-nav__item">
|
|
4371
|
+
<a href="#bin-vs-lib" class="md-nav__link">
|
|
4372
|
+
<span class="md-ellipsis">
|
|
4373
|
+
|
|
4374
|
+
bin/ vs. lib/
|
|
4375
|
+
|
|
4376
|
+
</span>
|
|
4377
|
+
</a>
|
|
4378
|
+
|
|
4379
|
+
</li>
|
|
4380
|
+
|
|
4381
|
+
</ul>
|
|
4382
|
+
|
|
4383
|
+
</nav>
|
|
4384
|
+
|
|
4385
|
+
</li>
|
|
4386
|
+
|
|
4387
|
+
|
|
4388
|
+
|
|
4389
|
+
|
|
4390
|
+
|
|
4391
|
+
|
|
4392
|
+
|
|
4393
|
+
|
|
4394
|
+
|
|
4395
|
+
|
|
4396
|
+
<li class="md-nav__item">
|
|
4397
|
+
<a href="releases.html" class="md-nav__link">
|
|
4398
|
+
|
|
4399
|
+
|
|
4400
|
+
|
|
4401
|
+
<span class="md-ellipsis">
|
|
4402
|
+
|
|
4403
|
+
|
|
4404
|
+
Branching & Releases
|
|
4405
|
+
|
|
4406
|
+
|
|
4407
|
+
|
|
4408
|
+
</span>
|
|
4409
|
+
|
|
4410
|
+
|
|
4411
|
+
|
|
4412
|
+
</a>
|
|
4413
|
+
</li>
|
|
4414
|
+
|
|
4415
|
+
|
|
4416
|
+
|
|
4417
|
+
|
|
4418
|
+
|
|
4419
|
+
|
|
4420
|
+
|
|
4421
|
+
|
|
4422
|
+
|
|
4423
|
+
|
|
4424
|
+
|
|
4425
|
+
|
|
4426
|
+
|
|
4427
|
+
|
|
4428
|
+
|
|
4429
|
+
|
|
4430
|
+
|
|
4431
|
+
|
|
4432
|
+
|
|
4433
|
+
|
|
4434
|
+
|
|
4435
|
+
|
|
3985
4436
|
|
|
3986
4437
|
|
|
3987
4438
|
|
|
@@ -3999,7 +4450,7 @@
|
|
|
3999
4450
|
|
|
4000
4451
|
|
|
4001
4452
|
|
|
4002
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
4453
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
|
|
4003
4454
|
|
|
4004
4455
|
|
|
4005
4456
|
<div class="md-nav__link md-nav__container">
|
|
@@ -4021,14 +4472,14 @@
|
|
|
4021
4472
|
</a>
|
|
4022
4473
|
|
|
4023
4474
|
|
|
4024
|
-
<label class="md-nav__link " for="
|
|
4475
|
+
<label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="">
|
|
4025
4476
|
<span class="md-nav__icon md-icon"></span>
|
|
4026
4477
|
</label>
|
|
4027
4478
|
|
|
4028
4479
|
</div>
|
|
4029
4480
|
|
|
4030
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
4031
|
-
<label class="md-nav__title" for="
|
|
4481
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
|
|
4482
|
+
<label class="md-nav__title" for="__nav_10_4">
|
|
4032
4483
|
<span class="md-nav__icon md-icon"></span>
|
|
4033
4484
|
|
|
4034
4485
|
|
|
@@ -4165,6 +4616,17 @@
|
|
|
4165
4616
|
</label>
|
|
4166
4617
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
4167
4618
|
|
|
4619
|
+
<li class="md-nav__item">
|
|
4620
|
+
<a href="#code-organization" class="md-nav__link">
|
|
4621
|
+
<span class="md-ellipsis">
|
|
4622
|
+
|
|
4623
|
+
Code organization
|
|
4624
|
+
|
|
4625
|
+
</span>
|
|
4626
|
+
</a>
|
|
4627
|
+
|
|
4628
|
+
</li>
|
|
4629
|
+
|
|
4168
4630
|
<li class="md-nav__item">
|
|
4169
4631
|
<a href="#installation-options" class="md-nav__link">
|
|
4170
4632
|
<span class="md-ellipsis">
|
|
@@ -4269,6 +4731,28 @@
|
|
|
4269
4731
|
</span>
|
|
4270
4732
|
</a>
|
|
4271
4733
|
|
|
4734
|
+
</li>
|
|
4735
|
+
|
|
4736
|
+
<li class="md-nav__item">
|
|
4737
|
+
<a href="#recording-a-dependencys-license" class="md-nav__link">
|
|
4738
|
+
<span class="md-ellipsis">
|
|
4739
|
+
|
|
4740
|
+
Recording a dependency’s license
|
|
4741
|
+
|
|
4742
|
+
</span>
|
|
4743
|
+
</a>
|
|
4744
|
+
|
|
4745
|
+
</li>
|
|
4746
|
+
|
|
4747
|
+
<li class="md-nav__item">
|
|
4748
|
+
<a href="#updating-a-vendored-component" class="md-nav__link">
|
|
4749
|
+
<span class="md-ellipsis">
|
|
4750
|
+
|
|
4751
|
+
Updating a vendored component
|
|
4752
|
+
|
|
4753
|
+
</span>
|
|
4754
|
+
</a>
|
|
4755
|
+
|
|
4272
4756
|
</li>
|
|
4273
4757
|
|
|
4274
4758
|
</ul>
|
|
@@ -4285,6 +4769,162 @@
|
|
|
4285
4769
|
</span>
|
|
4286
4770
|
</a>
|
|
4287
4771
|
|
|
4772
|
+
</li>
|
|
4773
|
+
|
|
4774
|
+
<li class="md-nav__item">
|
|
4775
|
+
<a href="#troubleshooting-system-tests" class="md-nav__link">
|
|
4776
|
+
<span class="md-ellipsis">
|
|
4777
|
+
|
|
4778
|
+
Troubleshooting system tests
|
|
4779
|
+
|
|
4780
|
+
</span>
|
|
4781
|
+
</a>
|
|
4782
|
+
|
|
4783
|
+
<nav class="md-nav" aria-label="Troubleshooting system tests">
|
|
4784
|
+
<ul class="md-nav__list">
|
|
4785
|
+
|
|
4786
|
+
<li class="md-nav__item">
|
|
4787
|
+
<a href="#retained-artifacts" class="md-nav__link">
|
|
4788
|
+
<span class="md-ellipsis">
|
|
4789
|
+
|
|
4790
|
+
Retained artifacts
|
|
4791
|
+
|
|
4792
|
+
</span>
|
|
4793
|
+
</a>
|
|
4794
|
+
|
|
4795
|
+
</li>
|
|
4796
|
+
|
|
4797
|
+
<li class="md-nav__item">
|
|
4798
|
+
<a href="#failure-output-at-the-console" class="md-nav__link">
|
|
4799
|
+
<span class="md-ellipsis">
|
|
4800
|
+
|
|
4801
|
+
Failure output at the console
|
|
4802
|
+
|
|
4803
|
+
</span>
|
|
4804
|
+
</a>
|
|
4805
|
+
|
|
4806
|
+
</li>
|
|
4807
|
+
|
|
4808
|
+
<li class="md-nav__item">
|
|
4809
|
+
<a href="#artifacts-from-a-failed-ci-run" class="md-nav__link">
|
|
4810
|
+
<span class="md-ellipsis">
|
|
4811
|
+
|
|
4812
|
+
Artifacts from a failed CI run
|
|
4813
|
+
|
|
4814
|
+
</span>
|
|
4815
|
+
</a>
|
|
4816
|
+
|
|
4817
|
+
</li>
|
|
4818
|
+
|
|
4819
|
+
</ul>
|
|
4820
|
+
</nav>
|
|
4821
|
+
|
|
4822
|
+
</li>
|
|
4823
|
+
|
|
4824
|
+
<li class="md-nav__item">
|
|
4825
|
+
<a href="#linting" class="md-nav__link">
|
|
4826
|
+
<span class="md-ellipsis">
|
|
4827
|
+
|
|
4828
|
+
Linting
|
|
4829
|
+
|
|
4830
|
+
</span>
|
|
4831
|
+
</a>
|
|
4832
|
+
|
|
4833
|
+
<nav class="md-nav" aria-label="Linting">
|
|
4834
|
+
<ul class="md-nav__list">
|
|
4835
|
+
|
|
4836
|
+
<li class="md-nav__item">
|
|
4837
|
+
<a href="#the-offense-backlog" class="md-nav__link">
|
|
4838
|
+
<span class="md-ellipsis">
|
|
4839
|
+
|
|
4840
|
+
The offense backlog
|
|
4841
|
+
|
|
4842
|
+
</span>
|
|
4843
|
+
</a>
|
|
4844
|
+
|
|
4845
|
+
</li>
|
|
4846
|
+
|
|
4847
|
+
<li class="md-nav__item">
|
|
4848
|
+
<a href="#linting-in-continuous-integration" class="md-nav__link">
|
|
4849
|
+
<span class="md-ellipsis">
|
|
4850
|
+
|
|
4851
|
+
Linting in continuous integration
|
|
4852
|
+
|
|
4853
|
+
</span>
|
|
4854
|
+
</a>
|
|
4855
|
+
|
|
4856
|
+
</li>
|
|
4857
|
+
|
|
4858
|
+
</ul>
|
|
4859
|
+
</nav>
|
|
4860
|
+
|
|
4861
|
+
</li>
|
|
4862
|
+
|
|
4863
|
+
<li class="md-nav__item">
|
|
4864
|
+
<a href="#profiling" class="md-nav__link">
|
|
4865
|
+
<span class="md-ellipsis">
|
|
4866
|
+
|
|
4867
|
+
Profiling
|
|
4868
|
+
|
|
4869
|
+
</span>
|
|
4870
|
+
</a>
|
|
4871
|
+
|
|
4872
|
+
<nav class="md-nav" aria-label="Profiling">
|
|
4873
|
+
<ul class="md-nav__list">
|
|
4874
|
+
|
|
4875
|
+
<li class="md-nav__item">
|
|
4876
|
+
<a href="#reports" class="md-nav__link">
|
|
4877
|
+
<span class="md-ellipsis">
|
|
4878
|
+
|
|
4879
|
+
Reports
|
|
4880
|
+
|
|
4881
|
+
</span>
|
|
4882
|
+
</a>
|
|
4883
|
+
|
|
4884
|
+
</li>
|
|
4885
|
+
|
|
4886
|
+
<li class="md-nav__item">
|
|
4887
|
+
<a href="#reading-a-report" class="md-nav__link">
|
|
4888
|
+
<span class="md-ellipsis">
|
|
4889
|
+
|
|
4890
|
+
Reading a report
|
|
4891
|
+
|
|
4892
|
+
</span>
|
|
4893
|
+
</a>
|
|
4894
|
+
|
|
4895
|
+
</li>
|
|
4896
|
+
|
|
4897
|
+
</ul>
|
|
4898
|
+
</nav>
|
|
4899
|
+
|
|
4900
|
+
</li>
|
|
4901
|
+
|
|
4902
|
+
<li class="md-nav__item">
|
|
4903
|
+
<a href="#building-the-gem" class="md-nav__link">
|
|
4904
|
+
<span class="md-ellipsis">
|
|
4905
|
+
|
|
4906
|
+
Building the gem
|
|
4907
|
+
|
|
4908
|
+
</span>
|
|
4909
|
+
</a>
|
|
4910
|
+
|
|
4911
|
+
<nav class="md-nav" aria-label="Building the gem">
|
|
4912
|
+
<ul class="md-nav__list">
|
|
4913
|
+
|
|
4914
|
+
<li class="md-nav__item">
|
|
4915
|
+
<a href="#generating-the-bill-of-materials" class="md-nav__link">
|
|
4916
|
+
<span class="md-ellipsis">
|
|
4917
|
+
|
|
4918
|
+
Generating the Bill of Materials
|
|
4919
|
+
|
|
4920
|
+
</span>
|
|
4921
|
+
</a>
|
|
4922
|
+
|
|
4923
|
+
</li>
|
|
4924
|
+
|
|
4925
|
+
</ul>
|
|
4926
|
+
</nav>
|
|
4927
|
+
|
|
4288
4928
|
</li>
|
|
4289
4929
|
|
|
4290
4930
|
<li class="md-nav__item">
|
|
@@ -4296,6 +4936,34 @@
|
|
|
4296
4936
|
</span>
|
|
4297
4937
|
</a>
|
|
4298
4938
|
|
|
4939
|
+
<nav class="md-nav" aria-label="Documentation">
|
|
4940
|
+
<ul class="md-nav__list">
|
|
4941
|
+
|
|
4942
|
+
<li class="md-nav__item">
|
|
4943
|
+
<a href="#developer-documentation" class="md-nav__link">
|
|
4944
|
+
<span class="md-ellipsis">
|
|
4945
|
+
|
|
4946
|
+
Developer documentation
|
|
4947
|
+
|
|
4948
|
+
</span>
|
|
4949
|
+
</a>
|
|
4950
|
+
|
|
4951
|
+
</li>
|
|
4952
|
+
|
|
4953
|
+
<li class="md-nav__item">
|
|
4954
|
+
<a href="#user-documentation" class="md-nav__link">
|
|
4955
|
+
<span class="md-ellipsis">
|
|
4956
|
+
|
|
4957
|
+
User documentation
|
|
4958
|
+
|
|
4959
|
+
</span>
|
|
4960
|
+
</a>
|
|
4961
|
+
|
|
4962
|
+
</li>
|
|
4963
|
+
|
|
4964
|
+
</ul>
|
|
4965
|
+
</nav>
|
|
4966
|
+
|
|
4299
4967
|
</li>
|
|
4300
4968
|
|
|
4301
4969
|
<li class="md-nav__item">
|
|
@@ -4378,6 +5046,23 @@
|
|
|
4378
5046
|
|
|
4379
5047
|
|
|
4380
5048
|
<h1 id="ceedling-development">Ceedling development</h1>
|
|
5049
|
+
<h2 id="code-organization">Code organization</h2>
|
|
5050
|
+
<p>There are two top-level code directories:</p>
|
|
5051
|
+
<ol>
|
|
5052
|
+
<li><code>bin/</code> This is the “bootloader” that encompasses the command line
|
|
5053
|
+
handler and loading the project configuration including merging
|
|
5054
|
+
Mixins. All applications commands are executed from within this
|
|
5055
|
+
code (<a href="../getting-started/command-line.html">application commands are distinct from build/plugin tasks</a>).</li>
|
|
5056
|
+
<li><code>lib/ceedling/</code> This is the application itself. Major subsystems
|
|
5057
|
+
are organized in subdirectories. Configuration processing happens
|
|
5058
|
+
in the main application.</li>
|
|
5059
|
+
</ol>
|
|
5060
|
+
<p>The handoff from (1) to (2) involves:</p>
|
|
5061
|
+
<ol>
|
|
5062
|
+
<li>Triggering the loaded and merged configuration to undergo
|
|
5063
|
+
processing, validation, and plugin loading.</li>
|
|
5064
|
+
<li>Triggering the build/plugin task named at the command line.</li>
|
|
5065
|
+
</ol>
|
|
4381
5066
|
<h2 id="installation-options">Installation options</h2>
|
|
4382
5067
|
<h3 id="local-installation">Local installation</h3>
|
|
4383
5068
|
<p>After installing Ruby…</p>
|
|
@@ -4536,25 +5221,303 @@ automatically; if you ever invoke an RSpec or Ruby command directly
|
|
|
4536
5221
|
instead of through a Rake task, prefix it with <code>bundle exec</code>:</p>
|
|
4537
5222
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="w"> </span>><span class="w"> </span>bundle<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>rspec<span class="w"> </span>spec/some_spec.rb
|
|
4538
5223
|
</code></pre></div>
|
|
5224
|
+
<h3 id="recording-a-dependencys-license">Recording a dependency’s license</h3>
|
|
5225
|
+
<p>Changing a runtime dependency means recording its license. The generated
|
|
5226
|
+
<a href="../project/sbom.html">Software Bill of Materials</a> carries a license for every gem a user
|
|
5227
|
+
installs, and that comes from a curated list in <code>tools/sbom/gem_licenses.rb</code>
|
|
5228
|
+
rather than from <code>Gemfile.lock</code>.</p>
|
|
5229
|
+
<p>The list is curated because nothing else is accurate. <code>Gemfile.lock</code> records
|
|
5230
|
+
no license at all. A gem’s own gemspec is unreliable, and project license
|
|
5231
|
+
statements and conventions are often messy.</p>
|
|
5232
|
+
<p>Each curated entry records three things. The license is an SPDX identifier
|
|
5233
|
+
or expression. <code>verified_for</code> is the version the license was read against.
|
|
5234
|
+
<code>source</code> names where it was read.</p>
|
|
5235
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="s1">'rake'</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5236
|
+
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="ss">license</span><span class="p">:</span><span class="w"> </span><span class="s1">'MIT'</span><span class="p">,</span>
|
|
5237
|
+
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="ss">verified_for</span><span class="p">:</span><span class="w"> </span><span class="s1">'13.2.1'</span><span class="p">,</span>
|
|
5238
|
+
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="ss">source</span><span class="p">:</span><span class="w"> </span><span class="s2">"the gem's own gemspec"</span>
|
|
5239
|
+
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="p">},</span>
|
|
5240
|
+
</code></pre></div>
|
|
5241
|
+
<p><code>rake sbom:build</code> refuses to run when the list and the resolved dependencies
|
|
5242
|
+
disagree. It reports three kinds of disagreement and names the remedy for each.</p>
|
|
5243
|
+
<ul>
|
|
5244
|
+
<li>A dependency arrived with no entry. Read its license and add one.</li>
|
|
5245
|
+
<li>An entry outlived its dependency. Remove it.</li>
|
|
5246
|
+
<li>A version moved away from the one its entry was verified against. Read the
|
|
5247
|
+
license again, then update <code>license</code> and <code>verified_for</code> together.</li>
|
|
5248
|
+
</ul>
|
|
5249
|
+
<p>That third check is why <code>verified_for</code> exists. A license cannot be re-read
|
|
5250
|
+
without reaching the network, so a version change stands in for “worth reading
|
|
5251
|
+
again”. Because <code>Gemfile.lock</code> is generally curated by hand in this project,
|
|
5252
|
+
a version change is already a deliberate act, and this failure lands while
|
|
5253
|
+
you are editing dependencies.</p>
|
|
5254
|
+
<p>One kind of drift escapes all three checks. A gem may change its license
|
|
5255
|
+
without changing version. <code>rake sbom:licenses:audit</code> compares the list against
|
|
5256
|
+
gems installed locally and reports anything that disagrees. It reads your
|
|
5257
|
+
machine rather than the repository, so it is advisory and deliberately outside
|
|
5258
|
+
<code>sbom:build</code>.</p>
|
|
5259
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>sbom:licenses:audit
|
|
5260
|
+
</code></pre></div>
|
|
5261
|
+
<h3 id="updating-a-vendored-component">Updating a vendored component</h3>
|
|
5262
|
+
<p>Updating Unity, CMock, or CException needs no bookkeeping beyond the submodule
|
|
5263
|
+
itself. Each is identified in the SBOM by the commit it is pinned at, read from
|
|
5264
|
+
<code>git submodule status --recursive</code> at generation time.</p>
|
|
5265
|
+
<p>Vendored DIY and vendored fff are different, being plain directories rather than
|
|
5266
|
+
submodules. DIY’s version is read from its source. fff has no version of any
|
|
5267
|
+
kind upstream, and its lineage is recorded as constants in
|
|
5268
|
+
<code>tools/sbom/inventory.rb</code>. Changing either means updating those.</p>
|
|
4539
5269
|
<h2 id="running-self-tests">Running self-tests</h2>
|
|
4540
5270
|
<p>Ceedling uses <a href="https://rspec.info">RSpec</a> for its tests.</p>
|
|
4541
5271
|
<p>To execute tests you may run the following from the root of your local
|
|
4542
5272
|
Ceedling repository. This test suite build option balances test coverage
|
|
4543
5273
|
with suite execution time.</p>
|
|
4544
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
5274
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>spec
|
|
4545
5275
|
</code></pre></div>
|
|
4546
5276
|
<p>To run individual test files (Ceedling’s Ruby-based tests, that is) and
|
|
4547
5277
|
perform other tasks, use the available Rake tasks. From the root of your
|
|
4548
5278
|
local Ceedling repo, list those task like this:</p>
|
|
4549
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
5279
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>-T
|
|
4550
5280
|
</code></pre></div>
|
|
5281
|
+
<h2 id="troubleshooting-system-tests">Troubleshooting system tests</h2>
|
|
5282
|
+
<p>System test failures are diagnosed from retained artifacts rather than from spec
|
|
5283
|
+
output alone. Each system spec deploys a real Ceedling installation into a
|
|
5284
|
+
temporary directory and runs real builds there. The RSpec failure reports which
|
|
5285
|
+
expectation failed. It does not report what the build under test actually did.</p>
|
|
5286
|
+
<p>Nothing is retained by default. A normal run deletes every temporary directory as
|
|
5287
|
+
it finishes, so a failure leaves no evidence behind.</p>
|
|
5288
|
+
<p>Two Rake tasks turn retention on.</p>
|
|
5289
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>specs:system:debug
|
|
5290
|
+
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>spec:system:debug:cli_surface
|
|
5291
|
+
</code></pre></div>
|
|
5292
|
+
<p><code>specs:system:debug</code> runs the whole suite and keeps failures only. Passing project
|
|
5293
|
+
directories are deleted as they finish, and passing logs are never written. This
|
|
5294
|
+
is the mode CI uses.</p>
|
|
5295
|
+
<p><code>spec:system:debug:<name></code> runs one spec and keeps everything, pass and fail
|
|
5296
|
+
alike. Reach for it while working on a single spec.</p>
|
|
5297
|
+
<div class="admonition tip">
|
|
5298
|
+
<p class="admonition-title">Tip</p>
|
|
5299
|
+
<p><code>rake -T</code> advertises the family as <code>spec:system:debug:*</code>. Replace the wildcard
|
|
5300
|
+
with a spec name. <code>rake -AT spec:system:debug</code> lists every name it accepts.</p>
|
|
5301
|
+
</div>
|
|
5302
|
+
<p>Both tasks set <code>CEEDLING_SYSTEM_TEST_KEEP</code> on your behalf. Set it to <code>all</code> or
|
|
5303
|
+
<code>failures</code> yourself when driving RSpec directly.</p>
|
|
5304
|
+
<h3 id="retained-artifacts">Retained artifacts</h3>
|
|
5305
|
+
<p>Everything retained lands under <code>specout/</code> in the repository root.</p>
|
|
5306
|
+
<table>
|
|
5307
|
+
<thead>
|
|
5308
|
+
<tr>
|
|
5309
|
+
<th>Path</th>
|
|
5310
|
+
<th>Contents</th>
|
|
5311
|
+
</tr>
|
|
5312
|
+
</thead>
|
|
5313
|
+
<tbody>
|
|
5314
|
+
<tr>
|
|
5315
|
+
<td><code>specout/proj/fail/</code></td>
|
|
5316
|
+
<td>Deployed project directory for each failing spec</td>
|
|
5317
|
+
</tr>
|
|
5318
|
+
<tr>
|
|
5319
|
+
<td><code>specout/proj/pass/</code></td>
|
|
5320
|
+
<td>The same for passing specs, in <code>all</code> mode only</td>
|
|
5321
|
+
</tr>
|
|
5322
|
+
<tr>
|
|
5323
|
+
<td><code>specout/fail.<description>.<pid>-<timestamp>.log</code></td>
|
|
5324
|
+
<td>Captured console output of a failing spec</td>
|
|
5325
|
+
</tr>
|
|
5326
|
+
<tr>
|
|
5327
|
+
<td><code>specout/pass.<description>.<pid>-<timestamp>.log</code></td>
|
|
5328
|
+
<td>The same for passing specs, in <code>all</code> mode only</td>
|
|
5329
|
+
</tr>
|
|
5330
|
+
</tbody>
|
|
5331
|
+
</table>
|
|
5332
|
+
<p>Each log opens with the command that produced it, followed by that command's
|
|
5333
|
+
combined stdout and stderr.</p>
|
|
5334
|
+
<p>Each retained project directory is a complete deployment, including the vendored
|
|
5335
|
+
Ceedling the spec installed. This is where to reproduce a failure by hand. Change
|
|
5336
|
+
into it and run the same <code>ceedling</code> command the log names.</p>
|
|
5337
|
+
<h3 id="failure-output-at-the-console">Failure output at the console</h3>
|
|
5338
|
+
<p>A failing spec prints a diagnostic block to stderr before the suite continues. The
|
|
5339
|
+
block names the temporary directory, names the log file, and summarizes the
|
|
5340
|
+
captured output.</p>
|
|
5341
|
+
<p>The summary carries only what is worth reading first. It collects every line
|
|
5342
|
+
containing <code>ERROR</code> or <code>EXCEPTION</code>, the whole of stderr, any debug backtrace, and
|
|
5343
|
+
the failed and overall test summaries. Full output stays in the log file.</p>
|
|
5344
|
+
<h3 id="artifacts-from-a-failed-ci-run">Artifacts from a failed CI run</h3>
|
|
5345
|
+
<p>CI uploads the same directory whenever a test job fails. Download it from the
|
|
5346
|
+
workflow run's summary page.</p>
|
|
5347
|
+
<p>Artifacts are named <code>specout-failures-<os>-ruby-<version></code>. The two specialized
|
|
5348
|
+
jobs add <code>specout-failures-locale-ruby-3.3</code> and
|
|
5349
|
+
<code>specout-failures-encoding-stress-ruby-3.3</code>.</p>
|
|
5350
|
+
<p>CI runs in <code>failures</code> mode, so an artifact holds only failure data.</p>
|
|
5351
|
+
<h2 id="linting">Linting</h2>
|
|
5352
|
+
<p>Ceedling lints its own Ruby with <a href="https://rubocop.org">RuboCop</a>. Four departments are enforced. Lint
|
|
5353
|
+
and Security catch defects. Metrics tracks complexity. Performance flags
|
|
5354
|
+
avoidable allocations and slower idioms.</p>
|
|
5355
|
+
<p>Style, Layout, and Naming are deliberately not enforced. Those departments encode
|
|
5356
|
+
taste rather than defects, and applying them would rewrite nearly every call site
|
|
5357
|
+
in the project to no benefit. ThrowTheSwitch's house style is described in prose
|
|
5358
|
+
in the coding standard instead.</p>
|
|
5359
|
+
<p>Configuration lives in <code>.rubocop.yml</code> at the root of the repository. Every
|
|
5360
|
+
decision in that file is commented, including the cops deliberately turned down
|
|
5361
|
+
and the reasoning for each.</p>
|
|
5362
|
+
<p>The linting gems are not installed by an ordinary <code>bundle install</code>. Install them
|
|
5363
|
+
once with the setup task.</p>
|
|
5364
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>lint:setup
|
|
5365
|
+
</code></pre></div>
|
|
5366
|
+
<p>Then lint the whole project, or only the files your branch changed.</p>
|
|
5367
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>lint
|
|
5368
|
+
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>lint:changed
|
|
5369
|
+
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span><span class="s2">"lint:changed[master]"</span>
|
|
5370
|
+
</code></pre></div>
|
|
5371
|
+
<p><code>lint:changed</code> is the faster loop while working on a branch. It compares against
|
|
5372
|
+
<code>next_version</code> unless you name another branch or revision. Quote the task name so
|
|
5373
|
+
your shell does not interpret the brackets.</p>
|
|
5374
|
+
<p>Changed files include both commits on your branch and uncommitted work in your
|
|
5375
|
+
tree. Naming a branch that does not exist is an error rather than an empty
|
|
5376
|
+
result.</p>
|
|
5377
|
+
<p>RuboCop can correct some offenses itself. Only safe corrections are applied.
|
|
5378
|
+
Review the resulting diff before keeping it.</p>
|
|
5379
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>lint:fix
|
|
5380
|
+
</code></pre></div>
|
|
5381
|
+
<p>Metrics offenses are never autocorrectable, so this task mostly touches
|
|
5382
|
+
Performance cops.</p>
|
|
5383
|
+
<h3 id="the-offense-backlog">The offense backlog</h3>
|
|
5384
|
+
<p>A passing <code>rake lint</code> means no <em>new</em> offenses rather than zero offenses.</p>
|
|
5385
|
+
<p><code>.rubocop_todo.yml</code> records the offenses that already existed when RuboCop was
|
|
5386
|
+
adopted. Without that file every run would report all of them and bury anything
|
|
5387
|
+
newly introduced.</p>
|
|
5388
|
+
<p>The file is generated, and it is meant to shrink. Removing records as the
|
|
5389
|
+
underlying code improves is the entire point of baselining. Regenerate the file
|
|
5390
|
+
after an improvement rather than editing it by hand.</p>
|
|
5391
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>lint:todo
|
|
5392
|
+
</code></pre></div>
|
|
5393
|
+
<p>A decision to live with a cop permanently does not belong in the backlog. Those
|
|
5394
|
+
belong in <code>.rubocop.yml</code>, with a comment explaining why the cop is wrong for this
|
|
5395
|
+
project.</p>
|
|
5396
|
+
<h3 id="linting-in-continuous-integration">Linting in continuous integration</h3>
|
|
5397
|
+
<p>CI runs <code>rake lint</code> on every pull request. Findings appear as annotations
|
|
5398
|
+
directly on the changed lines of the diff.</p>
|
|
5399
|
+
<p>The job is advisory. It reports findings without failing the build.</p>
|
|
5400
|
+
<p>That is a starting position rather than the intent. The backlog is still large
|
|
5401
|
+
enough that a new offense is unremarkable, so blocking would obstruct more than
|
|
5402
|
+
it would protect. The job becomes blocking once the backlog has shrunk far enough
|
|
5403
|
+
that any finding is a genuine surprise.</p>
|
|
5404
|
+
<h2 id="profiling">Profiling</h2>
|
|
5405
|
+
<p>Profiling answers where a Ceedling build spends its time. It samples a real build
|
|
5406
|
+
of a real example project with <a href="https://github.com/tmm1/stackprof">StackProf</a> and renders a flame graph.</p>
|
|
5407
|
+
<p>The profiling gem is not installed by an ordinary <code>bundle install</code>. Install it
|
|
5408
|
+
once with the setup task.</p>
|
|
5409
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>profile:setup
|
|
5410
|
+
</code></pre></div>
|
|
5411
|
+
<p>Then profile any example project against any Ceedling build task.</p>
|
|
5412
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span><span class="s2">"profile:run[temp_sensor,test:all]"</span>
|
|
5413
|
+
<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span><span class="s2">"profile:run[temp_sensor,clobber test:all]"</span>
|
|
5414
|
+
</code></pre></div>
|
|
5415
|
+
<p>The first argument names a project under <code>examples/</code>. The choices are
|
|
5416
|
+
<code>cipher_quest</code>, <code>temp_sensor</code>, and <code>wondrous_forest</code>. The second argument is
|
|
5417
|
+
whatever you would type after <code>ceedling</code>. Quote the task name so your shell does
|
|
5418
|
+
not interpret the brackets.</p>
|
|
5419
|
+
<h3 id="reports">Reports</h3>
|
|
5420
|
+
<p>Three files land in <code>tmp/profiling/<project>/reports/</code>, each named by timestamp.</p>
|
|
5421
|
+
<table>
|
|
5422
|
+
<thead>
|
|
5423
|
+
<tr>
|
|
5424
|
+
<th>Extension</th>
|
|
5425
|
+
<th>Contents</th>
|
|
5426
|
+
</tr>
|
|
5427
|
+
</thead>
|
|
5428
|
+
<tbody>
|
|
5429
|
+
<tr>
|
|
5430
|
+
<td><code>.txt</code></td>
|
|
5431
|
+
<td>Ranked list of the hottest frames</td>
|
|
5432
|
+
</tr>
|
|
5433
|
+
<tr>
|
|
5434
|
+
<td><code>.html</code></td>
|
|
5435
|
+
<td>Interactive flame graph</td>
|
|
5436
|
+
</tr>
|
|
5437
|
+
<tr>
|
|
5438
|
+
<td><code>.dump</code></td>
|
|
5439
|
+
<td>Raw StackProf data, for your own queries</td>
|
|
5440
|
+
</tr>
|
|
5441
|
+
</tbody>
|
|
5442
|
+
</table>
|
|
5443
|
+
<p>Timestamps keep successive runs from overwriting one another. A full build followed
|
|
5444
|
+
by a no-op rebuild produces two comparable sets.</p>
|
|
5445
|
+
<h3 id="reading-a-report">Reading a report</h3>
|
|
5446
|
+
<p>Profiling runs single threaded, and that is deliberate. The task pins both thread
|
|
5447
|
+
counts to 1 so the work stays on the thread StackProf samples. A multi-threaded run
|
|
5448
|
+
would hide most of the build in worker threads the profiler never sees. No flame
|
|
5449
|
+
graph this task produces says anything about thread contention.</p>
|
|
5450
|
+
<p>Expect <code>Kernel#sleep</code> and <code>Thread#value</code> to dominate every report. They represent
|
|
5451
|
+
time spent waiting on child processes rather than work done in Ruby. Read past
|
|
5452
|
+
them to the frames underneath.</p>
|
|
5453
|
+
<p>The scaffolded project persists between runs. <code>profile:run</code> copies the example into
|
|
5454
|
+
<code>tmp/profiling/<project>/</code> on first use and leaves it there, build directory and
|
|
5455
|
+
dependency cache included. A second run against the same project therefore
|
|
5456
|
+
profiles a real incremental build. Delete <code>tmp/profiling/<project>/</code> to start from
|
|
5457
|
+
a clean scaffold.</p>
|
|
5458
|
+
<div class="admonition note">
|
|
5459
|
+
<p class="admonition-title">Note</p>
|
|
5460
|
+
<p>Profiling is unavailable on Windows. StackProf builds a native extension that
|
|
5461
|
+
does not compile there, so <code>profile:setup</code> declines with a message rather than
|
|
5462
|
+
attempting it.</p>
|
|
5463
|
+
</div>
|
|
5464
|
+
<h2 id="building-the-gem">Building the gem</h2>
|
|
5465
|
+
<p>Building the gem locally shows what a release would actually contain. The gemspec
|
|
5466
|
+
assembles its file list by sweeping the working tree, so a local build reflects
|
|
5467
|
+
whatever happens to be lying around.</p>
|
|
5468
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>gem:build
|
|
5469
|
+
<a id="__codelineno-21-2" name="__codelineno-21-2" href="#__codelineno-21-2"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>gem:clean
|
|
5470
|
+
</code></pre></div>
|
|
5471
|
+
<p><code>gem:build</code> runs the same <code>gem build ceedling.gemspec</code> that CI runs and leaves
|
|
5472
|
+
<code>ceedling-<version>.gem</code> in the repository root. <code>gem:clean</code> removes built gems.</p>
|
|
5473
|
+
<p>The version carries a <code>.dev</code> suffix, so a local build is named
|
|
5474
|
+
<code>ceedling-<version>.dev.gem</code>. <code>lib/version.rb</code> appends that marker to every build
|
|
5475
|
+
the release pipeline did not produce, which is also why <code>ceedling version</code> reports
|
|
5476
|
+
it. See <a href="releases.html">Branching & Releases</a> for how a release build clears it.</p>
|
|
5477
|
+
<p><code>gem:build</code> depends on <code>gem:clean</code>, which matters more than it appears to. The
|
|
5478
|
+
gemspec has no exclusion for <code>.gem</code> files, so a gem left from an earlier build
|
|
5479
|
+
would be packaged inside the next one.</p>
|
|
5480
|
+
<div class="admonition note">
|
|
5481
|
+
<p class="admonition-title">Note</p>
|
|
5482
|
+
<p>A local build omits the offline documentation bundle unless <code>site-local/</code>
|
|
5483
|
+
already exists. CI builds that bundle first. Run <code>rake docs:build:local</code> to
|
|
5484
|
+
match it.</p>
|
|
5485
|
+
</div>
|
|
5486
|
+
<h3 id="generating-the-bill-of-materials">Generating the Bill of Materials</h3>
|
|
5487
|
+
<p><code>rake sbom:build</code> writes both <a href="../project/sbom.html">Software Bill of Materials</a> documents into
|
|
5488
|
+
the repository root. A release generates them the same way.</p>
|
|
5489
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>sbom:build
|
|
5490
|
+
<a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>sbom:specs
|
|
5491
|
+
</code></pre></div>
|
|
5492
|
+
<p>The documents are never committed, and two mechanisms keep them out. <code>.gitignore</code>
|
|
5493
|
+
covers them, and the gemspec rejects them so a local build cannot package one
|
|
5494
|
+
into the gem it describes.</p>
|
|
5495
|
+
<p>A local document names a development version, for the same reason a locally built
|
|
5496
|
+
gem does. The release version is stamped during the release build.</p>
|
|
5497
|
+
<p>Unpack the result to inspect it.</p>
|
|
5498
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a><span class="w"> </span>><span class="w"> </span>gem<span class="w"> </span>unpack<span class="w"> </span>ceedling-1.2.0.gem
|
|
5499
|
+
</code></pre></div>
|
|
5500
|
+
<p>The packaged gem deliberately carries <code>spec/</code>, <code>Gemfile</code>, <code>Gemfile.lock</code>, and
|
|
5501
|
+
<code>.rspec</code>. External tooling runs Ceedling's own suites against the released gem
|
|
5502
|
+
as part of validating installations and environments. These files make that
|
|
5503
|
+
possible.</p>
|
|
5504
|
+
<p>Development-only tasks refuse to run from an unpacked gem. Profiling, linting, and
|
|
5505
|
+
the gem tasks each need repository files the gem does not carry, so they report
|
|
5506
|
+
that rather than failing on a missing file. The <code>specs:*</code> tasks and
|
|
5507
|
+
<code>coverage:report</code> work as normal.</p>
|
|
4551
5508
|
<h2 id="documentation">Documentation</h2>
|
|
4552
|
-
<
|
|
5509
|
+
<h3 id="developer-documentation">Developer documentation</h3>
|
|
5510
|
+
<p>The Ceedling codebase is <a href="#code-organization">organized in directories</a>.</p>
|
|
5511
|
+
<p>Major subsystems are organized in directories. Most directories include detailed
|
|
5512
|
+
Markdown documents that provide both high-level overviews and detailed breakdowns
|
|
5513
|
+
of the subsystem.</p>
|
|
5514
|
+
<h3 id="user-documentation">User documentation</h3>
|
|
5515
|
+
<p>Ceedling’s user documentation is built with <a href="https://www.mkdocs.org">MkDocs</a> + <a href="https://squidfunk.github.io/mkdocs-material/">Material theme</a> and versioned
|
|
4553
5516
|
with <a href="https://github.com/jimporter/mike">mike</a>. All Markdown source lives under <code>docs/mkdocs/</code>. The public site
|
|
4554
5517
|
configuration is in <code>mkdocs.yml</code> while the local site bundle configuration is in
|
|
4555
5518
|
<code>mkdocs.local.yml</code>.</p>
|
|
4556
5519
|
<p><strong>First-time setup</strong> (installs MkDocs, Material, and mike into the container):</p>
|
|
4557
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
5520
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a><span class="w"> </span>><span class="w"> </span>rake<span class="w"> </span>docs:install
|
|
4558
5521
|
</code></pre></div>
|
|
4559
5522
|
<p><strong>Available Rake tasks:</strong></p>
|
|
4560
5523
|
<table>
|
|
@@ -4578,12 +5541,28 @@ configuration is in <code>mkdocs.yml</code> while the local site bundle configur
|
|
|
4578
5541
|
<td>Build the site to be served in strict mode — fails on broken links or warnings</td>
|
|
4579
5542
|
</tr>
|
|
4580
5543
|
<tr>
|
|
5544
|
+
<td><code>rake docs:build:prerelease</code></td>
|
|
5545
|
+
<td>Build the prerelease site in strict mode, for local validation</td>
|
|
5546
|
+
</tr>
|
|
5547
|
+
<tr>
|
|
4581
5548
|
<td><code>rake docs:serve</code></td>
|
|
4582
5549
|
<td>Serve plain MkDocs site locally on port 8000</td>
|
|
4583
5550
|
</tr>
|
|
4584
5551
|
<tr>
|
|
4585
|
-
<td><code>rake docs:
|
|
4586
|
-
<td>
|
|
5552
|
+
<td><code>rake docs:serve:prerelease</code></td>
|
|
5553
|
+
<td>Serve the prerelease site locally on port 8000, for docs development</td>
|
|
5554
|
+
</tr>
|
|
5555
|
+
<tr>
|
|
5556
|
+
<td><code>rake docs:deploy:prerelease[version]</code></td>
|
|
5557
|
+
<td>Deploy a prerelease build to Github Pages under <code>version</code> (usage: <code>rake docs:deploy:prerelease[1.2.0]</code>)</td>
|
|
5558
|
+
</tr>
|
|
5559
|
+
<tr>
|
|
5560
|
+
<td><code>rake docs:deploy:release[version]</code></td>
|
|
5561
|
+
<td>Deploy a release build to Github Pages under <code>version</code>, without changing <code>latest</code> (usage: <code>rake docs:deploy:release[1.1.0]</code>)</td>
|
|
5562
|
+
</tr>
|
|
5563
|
+
<tr>
|
|
5564
|
+
<td><code>rake docs:deploy:release:latest[version]</code></td>
|
|
5565
|
+
<td>Deploy a release build to Github Pages under <code>version</code> and set it as <code>latest</code> (usage: <code>rake docs:deploy:release:latest[1.2.0]</code>)</td>
|
|
4587
5566
|
</tr>
|
|
4588
5567
|
<tr>
|
|
4589
5568
|
<td><code>rake docs:preview</code></td>
|
|
@@ -4594,7 +5573,7 @@ configuration is in <code>mkdocs.yml</code> while the local site bundle configur
|
|
|
4594
5573
|
<p><strong>Browser preview in VS Code:</strong> When <code>mkdocs serve</code> or <code>mike serve</code> binds to
|
|
4595
5574
|
port 8000, VS Code detects it and shows a notification. The <strong>Ports</strong> panel also
|
|
4596
5575
|
provides an <strong>Open in Browser</strong> button.</p>
|
|
4597
|
-
<p><strong>Hosted site:</strong> <a href="https://throwtheswitch.
|
|
5576
|
+
<p><strong>Hosted site:</strong> <a href="https://docs.throwtheswitch.org/Ceedling/">https://docs.throwtheswitch.org/Ceedling/</a></p>
|
|
4598
5577
|
<h2 id="bin-vs-lib"><code>bin/</code> vs. <code>lib/</code></h2>
|
|
4599
5578
|
<p>Most of Ceedling’s functionality is contained in the application code residing
|
|
4600
5579
|
in <code>lib/</code>. Ceedling’s command line handling, startup configuration, project
|