ceedling 1.1.10 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec +3 -0
- data/.simplecov +73 -0
- data/GIT_COMMIT_SHA +1 -1
- data/Gemfile +84 -8
- data/Gemfile.lock +38 -8
- data/README.md +64 -45
- data/Rakefile +769 -16
- data/assets/{project.yml → features/project.yml} +4 -1
- data/assets/fixtures/bullseye_branch_coverage/src/branchy.c +24 -0
- data/assets/fixtures/bullseye_branch_coverage/src/branchy.h +14 -0
- data/assets/fixtures/bullseye_branch_coverage/test/test_branchy.c +18 -0
- data/assets/fixtures/cppcheck_findings/findings.c +23 -0
- data/assets/fixtures/cppcheck_findings/findings.h +13 -0
- data/assets/fixtures/header_include_path_validation/alt_drivers/foo.h +6 -0
- data/assets/fixtures/header_include_path_validation/bar.h +6 -0
- data/assets/fixtures/header_include_path_validation/drivers/foo.h +6 -0
- data/assets/fixtures/header_include_path_validation/dup.h +6 -0
- data/assets/fixtures/header_include_path_validation/other_inc/dup.h +6 -0
- data/assets/fixtures/header_include_path_validation/test_ambiguous_mock.c +15 -0
- data/assets/fixtures/header_include_path_validation/test_bare_mock.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_bogus_mock_path.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_bogus_vanilla_path.c +10 -0
- data/assets/fixtures/header_include_path_validation/test_include_outranks_test_include_path.c +16 -0
- data/assets/fixtures/header_include_path_validation/test_pathed_mock.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_pathed_mock_ambiguous.c +14 -0
- data/assets/fixtures/header_include_path_validation/test_test_include_path_outranks_include.c +17 -0
- data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.h +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/beta/dup.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/beta/dup.h +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/gamma/dup_gamma.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_alpha.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_bare.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_beta.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_override.c +19 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive.c +19 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive_noop.c +16 -0
- data/assets/fixtures/parent_directory_references/alpha/extra.c +4 -0
- data/assets/fixtures/parent_directory_references/common/helper.c +6 -0
- data/assets/fixtures/parent_directory_references/common/helper.h +6 -0
- data/assets/fixtures/parent_directory_references/unit/test_dotdot_include.c +10 -0
- data/assets/fixtures/parent_directory_references/unit/test_dotdot_source.c +16 -0
- data/assets/fixtures/plain_inline_module.h +9 -0
- data/assets/fixtures/same_named_modules/include/drivers/spi/config.h +6 -0
- data/assets/fixtures/same_named_modules/include/drivers/uart/config.h +6 -0
- data/assets/fixtures/same_named_modules/src/drivers/spi/config.c +8 -0
- data/assets/fixtures/same_named_modules/src/drivers/uart/config.c +10 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs.c +26 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs_mocked.c +20 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs_mocked_traditional.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_both_modules.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_uart_config_bare.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_uart_config_partial_only.c +20 -0
- data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.c +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.h +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.c +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.h +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/main.c +11 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_baz_bar.c +10 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_both_bars.c +12 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_foo_bar.c +10 -0
- data/assets/{test_example_file_boom.c → fixtures/test_nosanitize_boom.c} +9 -0
- data/assets/{test_example_file_crash_assert.c → fixtures/test_nosanitize_crash_assert.c} +8 -0
- data/assets/{test_example_file_crash_sigsegv.c → fixtures/test_nosanitize_crash_sigsegv.c} +8 -0
- data/assets/{test_example_file_crash_sigsegv_with_param.c → fixtures/test_nosanitize_crash_sigsegv_with_param.c} +8 -0
- data/assets/fixtures/test_nosanitize_heap_buffer_overflow.c +31 -0
- data/assets/fixtures/test_nosanitize_leak.c +34 -0
- data/assets/fixtures/test_nosanitize_two_findings.c +36 -0
- data/assets/{test_example_file_ub_shift_overflow.c → fixtures/test_nosanitize_ub_shift_overflow.c} +9 -0
- data/assets/fixtures/test_plain_inline_module.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/alpha/calc.c +4 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/beta/calc.c +4 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_alpha.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_ambiguous.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_beta.c +15 -0
- data/assets/fixtures/tests_with_conditional_includes/src/feature_extra2.h +13 -0
- data/assets/fixtures/tests_with_conditional_includes/src/macro_target_extra.h +13 -0
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.c +19 -3
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.h +1 -0
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.c +17 -1
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget.c +12 -4
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget_feature.c +8 -5
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.c +7 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.c +16 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/FeatureConfig.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Gpt.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModuleConfig.h +17 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart1.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart2.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/drivers/widget.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/reader.c +7 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/reader.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01.c +21 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01_legacy.c +16 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_02.c +31 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_FeatureConfig.c +15 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_reader.c +13 -0
- data/assets/fixtures/tests_with_duplicate_test_names/integration/test_foo.c +21 -0
- data/assets/fixtures/tests_with_duplicate_test_names/unit/test_foo.c +21 -0
- data/assets/fixtures/tests_with_fallback_conditionals/src/conditional_module.c +28 -0
- data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/test/test_conditionals.c +8 -1
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_lower.s +2 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_upper.S +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.c +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.h +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/test/test_counter_module.c +27 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/app/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/drivers/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.c +30 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/shared/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/test/test_sensor.c +32 -0
- data/bin/actionator.rb +234 -0
- data/bin/app_cfg.rb +28 -0
- data/bin/cli.rb +78 -47
- data/bin/cli_handler.rb +96 -58
- data/bin/cli_helper.rb +95 -49
- data/bin/cli_options_transform.rb +22 -0
- data/bin/{configinator.rb → composinator.rb} +39 -32
- data/bin/mixin_resolvinator.rb +124 -0
- data/bin/mixin_standardizer.rb +31 -61
- data/bin/mixinator.rb +27 -29
- data/bin/mixins.rb +0 -5
- data/bin/objects.yml +20 -7
- data/bin/path_validator.rb +6 -5
- data/bin/projectinator.rb +51 -142
- data/bin/rake_patches.rb +36 -2
- data/bin/recursive_merger.rb +7 -1
- data/bin/versionator.rb +2 -3
- data/ceedling.gemspec +83 -12
- data/docs/BreakingChanges.md +46 -2
- data/docs/CONTRIBUTING.md +45 -29
- data/docs/CeedlingPullRequestChecklist.md +10 -9
- data/docs/Changelog.md +337 -37
- data/docs/KnownIssues.md +30 -4
- data/docs/ReleaseNotes.md +288 -12
- data/docs/SECURITY.md +46 -2
- data/docs/ThrowTheSwitchCodingStandard.md +21 -3
- data/docs/overrides/main.html +35 -0
- data/examples/temp_sensor/mixin/add_bullseye.yml +19 -0
- data/examples/wondrous_forest/README.md +3 -0
- data/examples/wondrous_forest/src/sensors/light/Calibration.c +21 -0
- data/examples/wondrous_forest/src/sensors/light/Calibration.h +14 -0
- data/examples/wondrous_forest/src/sensors/soil/Calibration.c +23 -0
- data/examples/wondrous_forest/src/sensors/soil/Calibration.h +14 -0
- data/examples/wondrous_forest/test/TestCalibration.c +39 -0
- data/lib/ceedling/batchinator.rb +81 -22
- data/lib/ceedling/c_extractor/README.md +61 -0
- data/lib/ceedling/c_extractor/c_extractor.rb +33 -2
- data/lib/ceedling/c_extractor/c_extractor_code_text.rb +18 -10
- data/lib/ceedling/c_extractor/c_extractor_constants.rb +10 -10
- data/lib/ceedling/c_extractor/c_extractor_declarations.rb +14 -14
- data/lib/ceedling/c_extractor/c_extractor_functions.rb +10 -13
- data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +77 -0
- data/lib/ceedling/c_extractor/c_extractor_types.rb +8 -5
- data/lib/ceedling/ceedling.h +33 -0
- data/lib/ceedling/config/config_matchinator.rb +36 -13
- data/lib/ceedling/config/configurator.rb +370 -531
- data/lib/ceedling/config/configurator_builder.rb +253 -365
- data/lib/ceedling/config/configurator_plugins.rb +68 -102
- data/lib/ceedling/config/configurator_setup.rb +360 -616
- data/lib/ceedling/config/configurator_validator.rb +114 -142
- data/lib/ceedling/config/line_marker_suppressors.rb +67 -0
- data/lib/ceedling/constants.rb +60 -6
- data/lib/ceedling/defaults.rb +28 -14
- data/lib/ceedling/defineinator.rb +9 -4
- data/lib/ceedling/dependencies/README.md +69 -0
- data/lib/ceedling/dependencies/dependency_cache_store.rb +160 -0
- data/lib/ceedling/dependencies/dependency_debug_tree.rb +129 -0
- data/lib/ceedling/dependencies/dependency_differ.rb +127 -0
- data/lib/ceedling/dependencies/dependency_hasher.rb +94 -0
- data/lib/ceedling/dependencies/dependency_path_normalizer.rb +80 -0
- data/lib/ceedling/dependencies/dependency_tracker.rb +405 -0
- data/lib/ceedling/dependencies/dependinator.rb +65 -0
- data/lib/ceedling/dependencies/gcc_dependency_parser.rb +86 -0
- data/lib/ceedling/encodinator.rb +23 -11
- data/lib/ceedling/file_finder.rb +373 -89
- data/lib/ceedling/file_finder_helper.rb +44 -33
- data/lib/ceedling/file_path_collection_utils.rb +17 -4
- data/lib/ceedling/file_path_utils.rb +310 -52
- data/lib/ceedling/file_wrapper.rb +275 -8
- data/lib/ceedling/filename_extension.rb +91 -0
- data/lib/ceedling/flaginator.rb +6 -2
- data/lib/ceedling/generators/generator.rb +192 -70
- data/lib/ceedling/generators/generator_helper.rb +116 -69
- data/lib/ceedling/generators/generator_mocks.rb +13 -8
- data/lib/ceedling/generators/generator_partials.rb +47 -15
- data/lib/ceedling/generators/generator_test_results.rb +29 -17
- data/lib/ceedling/generators/generator_test_results_backtrace.rb +199 -107
- data/lib/ceedling/generators/generator_test_results_sanity_checker.rb +1 -1
- data/lib/ceedling/includes/include_factory.rb +21 -6
- data/lib/ceedling/includes/include_pathinator.rb +40 -4
- data/lib/ceedling/includes/includes.rb +215 -61
- data/lib/ceedling/loginator.rb +13 -4
- data/lib/ceedling/objects.yml +216 -33
- data/lib/ceedling/parsing_parcels.rb +39 -13
- data/lib/ceedling/partials/README.md +53 -0
- data/lib/ceedling/partials/partializer.rb +118 -26
- data/lib/ceedling/partials/partializer_config.rb +141 -8
- data/lib/ceedling/partials/partializer_helper.rb +88 -2
- data/lib/ceedling/partials/partializer_utils.rb +1 -1
- data/lib/ceedling/partials/partials.rb +4 -4
- data/lib/ceedling/path_matcher.rb +163 -0
- data/lib/ceedling/path_mirror.rb +73 -0
- data/lib/ceedling/plugins/plugin.rb +1 -1
- data/lib/ceedling/plugins/plugin_manager.rb +31 -15
- data/lib/ceedling/plugins/plugin_manager_helper.rb +5 -1
- data/lib/ceedling/plugins/plugin_reportinator.rb +36 -7
- data/lib/ceedling/plugins/plugin_reportinator_helper.rb +3 -3
- data/lib/ceedling/plugins/report_log_writer_plugin.rb +66 -0
- data/lib/ceedling/plugins/report_tests_stdout_plugin.rb +18 -5
- data/lib/ceedling/preprocess/README.md +135 -120
- data/lib/ceedling/preprocess/c_comment_scanner.rb +9 -7
- data/lib/ceedling/preprocess/c_preprocessor_conditionals.rb +27 -10
- data/lib/ceedling/preprocess/preprocessinator.rb +253 -217
- data/lib/ceedling/preprocess/preprocessinator_bare_includes_extractor.rb +7 -10
- data/lib/ceedling/preprocess/preprocessinator_code_finder.rb +8 -6
- data/lib/ceedling/preprocess/preprocessinator_comment_stripper.rb +5 -3
- data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +86 -82
- data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +182 -163
- data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +174 -8
- data/lib/ceedling/preprocess/preprocessinator_reconstructor.rb +41 -20
- data/lib/ceedling/quote_include_isolator.rb +129 -0
- data/lib/ceedling/rake_app/rake_task_registry.rb +9 -9
- data/lib/ceedling/rake_app/rake_wrapper.rb +0 -13
- data/lib/ceedling/rake_app/rakefile_component_resolver.rb +24 -12
- data/lib/ceedling/rake_app/test_task_name.rb +29 -0
- data/lib/ceedling/rakefile.rb +3 -1
- data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
- data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
- data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
- data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
- data/lib/ceedling/{rules_tests.rake → rakefiles/tests/rules_tests.rake} +4 -18
- data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +54 -0
- data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
- data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
- data/lib/ceedling/release_invoker/README.md +35 -0
- data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
- data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
- data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
- data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
- data/lib/ceedling/reportinator.rb +18 -2
- data/lib/ceedling/ruby_expandinator.rb +40 -1
- data/lib/ceedling/setupinator.rb +13 -3
- data/lib/ceedling/system_wrapper.rb +17 -0
- data/lib/ceedling/templateinator.rb +146 -0
- data/lib/ceedling/test_context_extractor.rb +59 -28
- data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
- data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
- data/lib/ceedling/test_invoker/README.md +6 -0
- data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
- data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
- data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
- data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
- data/lib/ceedling/test_invoker/test_build_executor.rb +800 -429
- data/lib/ceedling/test_invoker/test_build_planner.rb +175 -70
- data/lib/ceedling/test_invoker/test_build_setup.rb +132 -241
- data/lib/ceedling/test_invoker/test_build_validations.rb +102 -0
- data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +148 -0
- data/lib/ceedling/test_invoker/test_includes_extractinator.rb +34 -0
- data/lib/ceedling/test_invoker/test_includes_preprocessinator.rb +118 -0
- data/lib/ceedling/test_invoker/test_includes_reconcilinator.rb +149 -0
- data/lib/ceedling/test_invoker/test_invoker.rb +16 -183
- data/lib/ceedling/test_invoker/test_invoker_types.rb +85 -16
- data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +121 -0
- data/lib/ceedling/test_invoker/test_pipeline_manager.rb +303 -0
- data/lib/ceedling/test_invoker/test_runner_generatinator.rb +105 -0
- data/lib/ceedling/test_invoker/test_search_paths.rb +73 -0
- data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +78 -0
- data/lib/ceedling/tool_executor.rb +42 -13
- data/lib/ceedling/tool_executor_helper.rb +1 -1
- data/lib/ceedling/tool_validator.rb +124 -123
- data/lib/ceedling/yaml_wrapper.rb +5 -3
- data/lib/version.rb +19 -2
- data/mkdocs.prerelease.yml +42 -0
- data/mkdocs.yml +10 -2
- data/plugins/bullseye/bullseye.rake +71 -111
- data/plugins/bullseye/config/defaults.yml +12 -54
- data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
- data/plugins/bullseye/lib/bullseye.rb +511 -120
- data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
- data/plugins/command_hooks/lib/command_hooks.rb +117 -199
- data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
- data/plugins/cppcheck/config/defaults.yml +6 -1
- data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
- data/plugins/cppcheck/cppcheck.rake +7 -1
- data/plugins/cppcheck/lib/cppcheck.rb +175 -26
- data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
- data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
- data/plugins/dependencies/Rakefile +14 -2
- data/plugins/dependencies/config/defaults.yml +9 -6
- data/plugins/dependencies/dependencies.rake +46 -76
- data/plugins/dependencies/example/boss/project.yml +1 -1
- data/plugins/dependencies/example/supervisor/project.yml +1 -1
- data/plugins/dependencies/example/version.tar.gzip +0 -0
- data/plugins/dependencies/lib/dependencies.rb +232 -427
- data/plugins/dependencies/lib/dependency_commands.rb +72 -0
- data/plugins/dependencies/lib/dependency_environment.rb +57 -0
- data/plugins/dependencies/lib/dependency_spec.rb +145 -0
- data/plugins/fff/.rspec +1 -0
- data/plugins/fff/Rakefile +14 -2
- data/plugins/fff/examples/fff_example/project.yml +1 -1
- data/plugins/fff/lib/fff.rb +30 -9
- data/plugins/fff/lib/fff_mock_generator.rb +142 -128
- data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
- data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
- data/plugins/fff/spec/spec_helper.rb +45 -0
- data/plugins/fff/src/fff_unity_helper.h +5 -0
- data/plugins/fff/vendor/fff/fakegen.rb +5 -4
- data/plugins/fff/vendor/fff/fff.h +4 -4
- data/plugins/gcov/config/defaults.yml +5 -0
- data/plugins/gcov/gcov.rake +16 -15
- data/plugins/gcov/lib/console_reportinator.rb +140 -20
- data/plugins/gcov/lib/gcov.rb +155 -60
- data/plugins/gcov/lib/gcov_constants.rb +4 -7
- data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
- data/plugins/gcov/lib/gcov_types.rb +62 -1
- data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
- data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
- data/plugins/module_generator/Rakefile +4 -4
- data/plugins/module_generator/config/module_generator.yml +0 -1
- data/plugins/module_generator/example/project.yml +1 -1
- data/plugins/module_generator/lib/module_generator.rb +117 -87
- data/plugins/module_generator/lib/module_generator_options.rb +150 -0
- data/plugins/module_generator/lib/module_generator_project.rb +45 -0
- data/plugins/module_generator/lib/module_generator_request.rb +83 -0
- data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
- data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
- data/plugins/module_generator/module_generator.rake +24 -46
- data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
- data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
- data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
- data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
- data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
- data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
- data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
- data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
- data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
- data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
- data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
- data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
- data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
- data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
- data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
- data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
- data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
- data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
- data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
- data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
- data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
- data/plugins/sanitize/config/defaults.yml +44 -0
- data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
- data/plugins/sanitize/lib/sanitize.rb +174 -0
- data/plugins/sanitize/lib/sanitize_config.rb +110 -0
- data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
- data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
- data/plugins/sanitize/lib/sanitize_records.rb +115 -0
- data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
- data/plugins/sanitize/sanitize.rake +108 -0
- data/plugins/valgrind/config/defaults.yml +7 -1
- data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
- data/plugins/valgrind/lib/valgrind.rb +202 -39
- data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
- data/plugins/valgrind/lib/valgrind_report.rb +52 -0
- data/plugins/valgrind/valgrind.rake +37 -15
- data/site-local/404.html +239 -19
- data/site-local/assets/javascripts/{bundle.d7400e89.min.js → bundle.c21346df.min.js} +3 -3
- data/site-local/assets/javascripts/{bundle.d7400e89.min.js.map → bundle.c21346df.min.js.map} +2 -2
- data/site-local/assets/javascripts/workers/{search.2c215733.min.js → search.a7633da7.min.js} +2 -2
- data/site-local/assets/javascripts/workers/{search.2c215733.min.js.map → search.a7633da7.min.js.map} +1 -1
- data/site-local/assets/stylesheets/main.57a0d79d.min.css +6 -0
- data/site-local/assets/stylesheets/main.57a0d79d.min.css.map +1 -0
- data/site-local/assets/stylesheets/palette.fb2fffe2.min.css +4 -0
- data/site-local/assets/stylesheets/palette.fb2fffe2.min.css.map +1 -0
- data/site-local/configuration/environment-vars.html +239 -19
- data/site-local/configuration/global-collections.html +239 -24
- data/site-local/configuration/index.html +240 -20
- data/site-local/configuration/loading.html +251 -27
- data/site-local/configuration/mixins.html +247 -26
- data/site-local/configuration/parallel-builds.html +239 -19
- data/site-local/configuration/project-file.html +268 -37
- data/site-local/configuration/reference/cexception.html +246 -25
- data/site-local/configuration/reference/cmock.html +272 -19
- data/site-local/configuration/reference/defines.html +263 -34
- data/site-local/configuration/reference/environment.html +246 -26
- data/site-local/configuration/reference/extension.html +352 -21
- data/site-local/configuration/reference/files.html +258 -24
- data/site-local/configuration/reference/flags.html +268 -31
- data/site-local/configuration/reference/index.html +239 -19
- data/site-local/configuration/reference/libraries.html +239 -19
- data/site-local/configuration/reference/mixins.html +239 -19
- data/site-local/configuration/reference/partials.html +240 -24
- data/site-local/configuration/reference/paths.html +269 -23
- data/site-local/configuration/reference/plugins.html +239 -19
- data/site-local/configuration/reference/project.html +292 -29
- data/site-local/configuration/reference/release-build.html +247 -19
- data/site-local/configuration/reference/test-build.html +281 -29
- data/site-local/configuration/reference/test-runner.html +279 -22
- data/site-local/configuration/reference/tools.html +257 -31
- data/site-local/configuration/reference/unity.html +271 -20
- data/site-local/configuration/which-ceedling.html +239 -19
- data/site-local/development/index.html +245 -19
- data/site-local/development/plugins/configuration.html +260 -22
- data/site-local/development/plugins/index.html +258 -20
- data/site-local/development/plugins/plugin-subclass.html +912 -174
- data/site-local/development/plugins/rake-tasks.html +269 -21
- data/site-local/development/releases.html +4759 -0
- data/site-local/development/workflow.html +1023 -58
- data/site-local/getting-started/builds.html +4593 -0
- data/site-local/getting-started/command-line.html +409 -39
- data/site-local/getting-started/example-projects/cipher-quest.html +239 -19
- data/site-local/getting-started/example-projects/index.html +240 -20
- data/site-local/getting-started/example-projects/temp-sensor.html +239 -19
- data/site-local/getting-started/example-projects/wondrous-forest.html +239 -19
- data/site-local/getting-started/index.html +246 -19
- data/site-local/getting-started/installation.html +249 -27
- data/site-local/getting-started/quick-start.html +242 -20
- data/site-local/help.html +246 -19
- data/site-local/index.html +284 -27
- data/site-local/overview/build-system.html +240 -20
- data/site-local/overview/index.html +239 -19
- data/site-local/overview/test-environments.html +248 -19
- data/site-local/overview/tools-and-frameworks.html +239 -19
- data/site-local/plugins/beep.html +242 -19
- data/site-local/plugins/bullseye/index.html +5068 -0
- data/site-local/plugins/bullseye/licensing.html +4826 -0
- data/site-local/plugins/command-hooks.html +258 -34
- data/site-local/plugins/compile-commands-json-db.html +247 -22
- data/site-local/plugins/cppcheck.html +1073 -268
- data/site-local/plugins/dependencies.html +927 -249
- data/site-local/plugins/fff.html +288 -21
- data/site-local/plugins/gcov/examples.html +243 -20
- data/site-local/plugins/gcov/gcovr.html +559 -71
- data/site-local/plugins/gcov/index.html +242 -19
- data/site-local/plugins/gcov/overview.html +253 -23
- data/site-local/plugins/gcov/reportgenerator.html +380 -46
- data/site-local/plugins/gcov/reporting.html +339 -105
- data/site-local/plugins/gcov/setup.html +244 -20
- data/site-local/plugins/gcov/tool-versions.html +292 -24
- data/site-local/plugins/gcov/troubleshooting.html +265 -42
- data/site-local/plugins/index.html +285 -41
- data/site-local/plugins/module-generator.html +770 -200
- data/site-local/plugins/report-build-warnings-log.html +569 -38
- data/site-local/plugins/report-tests-gtestlike-stdout.html +458 -89
- data/site-local/plugins/report-tests-ide-stdout.html +645 -56
- data/site-local/plugins/report-tests-log-factory.html +364 -111
- data/site-local/plugins/report-tests-pretty-stdout.html +243 -20
- data/site-local/plugins/report-tests-raw-output-log.html +242 -19
- data/site-local/plugins/report-tests-teamcity-stdout.html +252 -29
- data/site-local/plugins/sanitize.html +5322 -0
- data/site-local/plugins/valgrind.html +414 -34
- data/site-local/{plugins/bullseye.html → project/index.html} +288 -222
- data/site-local/project/release-history.html +242 -22
- data/site-local/project/sbom.html +4712 -0
- data/site-local/project/upgrade.html +241 -21
- data/site-local/reference/build-directives.html +248 -19
- data/site-local/reference/command-line.html +364 -21
- data/site-local/reference/environment-vars.html +239 -19
- data/site-local/reference/gcov-plugin.html +483 -23
- data/site-local/reference/global-collections.html +240 -20
- data/site-local/reference/index.html +239 -19
- data/site-local/reference/partials-macros.html +249 -19
- data/site-local/reference/project-configuration.html +239 -19
- data/site-local/sitemap.xml.gz +0 -0
- data/{docs/mkdocs/snapshot/assets → site-local/snapshot/assets/features}/project.yml +4 -1
- data/site-local/snapshot/examples/cipher_quest/index.html +249 -29
- data/site-local/snapshot/examples/temp_sensor/index.html +241 -21
- data/site-local/snapshot/examples/wondrous_forest/index.html +256 -30
- data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
- data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
- data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
- data/site-local/testing-guide/build-directives.html +331 -35
- data/site-local/testing-guide/conventions.html +671 -160
- data/site-local/testing-guide/frameworks.html +244 -24
- data/site-local/testing-guide/index.html +239 -26
- data/site-local/testing-guide/partials/configuration.html +241 -21
- data/site-local/testing-guide/partials/conventions.html +308 -23
- data/site-local/testing-guide/partials/directives.html +452 -58
- data/site-local/testing-guide/partials/example.html +247 -27
- data/site-local/testing-guide/partials/index.html +246 -19
- data/site-local/testing-guide/partials/overview.html +239 -19
- data/site-local/testing-guide/partials/variables.html +244 -24
- data/site-local/testing-guide/test-cases.html +246 -26
- data/site-local/testing-guide/test-sample.html +245 -25
- data/site-local/testing-guide/test-suite-anatomy.html +239 -19
- data/spec/integration/actionator_file_operations_spec.rb +287 -0
- data/spec/integration/analysis_tool_output_spec.rb +204 -0
- data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
- data/spec/integration/command_hooks_plugin_spec.rb +152 -0
- data/spec/integration/compile_commands_json_db_spec.rb +76 -0
- data/spec/integration/configurator_pipeline_spec.rb +190 -0
- data/spec/integration/configurator_plugins_spec.rb +122 -0
- data/spec/integration/configurator_validation_spec.rb +98 -0
- data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
- data/spec/integration/dependencies/dependency_tracker_core_spec.rb +284 -0
- data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
- data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
- data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
- data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
- data/spec/integration/dependencies_plugin_spec.rb +473 -0
- data/spec/integration/erb_dependency_removed_spec.rb +167 -0
- data/spec/integration/includes_extraction_spec.rb +612 -0
- data/spec/integration/mixin_loading_spec.rb +414 -0
- data/spec/integration/module_generator_spec.rb +436 -0
- data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
- data/spec/integration/partials_header_composition_spec.rb +889 -0
- data/spec/integration/partials_module_resolution_spec.rb +372 -0
- data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
- data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
- data/spec/integration/quote_include_isolator_spec.rb +167 -0
- data/spec/integration/rake_task_registry_plugins_spec.rb +95 -0
- data/spec/integration/report_build_warnings_log_spec.rb +170 -0
- data/spec/integration/report_tests_log_factory_spec.rb +100 -0
- data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
- data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
- data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
- data/spec/integration/test_executable_manifest_spec.rb +118 -0
- data/spec/integration/test_includes_extractinator_spec.rb +293 -0
- data/spec/integration/tool_executor_spec.rb +224 -0
- data/spec/integration/tool_validator_spec.rb +133 -0
- data/spec/integration/vendor_copy_transient_io_retry_spec.rb +178 -0
- data/spec/manual/stress_test.rb +1 -1
- data/spec/support/config_yaml_helper.rb +17 -0
- data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
- data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
- data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
- data/spec/support/fixtures/templates/ide__empty.txt +8 -0
- data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
- data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
- data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
- data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
- data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
- data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
- data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
- data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
- data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
- data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
- data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
- data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
- data/spec/support/include_guard_helper.rb +20 -0
- data/spec/support/integration/configurator_integration_helper.rb +162 -0
- data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
- data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
- data/spec/support/integration/spec_integration_helper.rb +285 -0
- data/spec/support/integration/test_includes_harness.rb +259 -0
- data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
- data/spec/support/spec_helper.rb +41 -0
- data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
- data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
- data/spec/support/system/simplecov_boot.rb +66 -0
- data/spec/support/system/spec_system_helper.rb +376 -16
- data/spec/support/system/system_context.rb +181 -59
- data/spec/support/template_render_cases.rb +166 -0
- data/spec/system/bracket_path_handling_spec.rb +175 -0
- data/spec/system/build_output_mirroring_spec.rb +89 -0
- data/spec/system/build_recovery_spec.rb +382 -0
- data/spec/system/bullseye_deployment_spec.rb +102 -0
- data/spec/system/cli_surface_spec.rb +245 -0
- data/spec/system/command_hooks_spec.rb +117 -0
- data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
- data/spec/system/conditional_mock_includes_spec.rb +181 -0
- data/spec/system/cppcheck_deployment_spec.rb +26 -8
- data/spec/system/delta_builds_spec.rb +751 -0
- data/spec/system/deployment_as_gem_spec.rb +7 -0
- data/spec/system/deployment_as_vendor_spec.rb +29 -145
- data/spec/system/dumpconfig_spec.rb +137 -0
- data/spec/system/encoding_stress_spec.rb +7 -4
- data/spec/system/example_cipher_quest_spec.rb +25 -100
- data/spec/system/example_temp_sensor_spec.rb +30 -172
- data/spec/system/example_wondrous_forest_spec.rb +25 -62
- data/spec/system/extension_multiple_values_spec.rb +75 -0
- data/spec/system/files_paths_reporting_spec.rb +154 -0
- data/spec/system/gcov_deployment_spec.rb +72 -3
- data/spec/system/header_include_path_validation_spec.rb +222 -0
- data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
- data/spec/system/include_path_reconciliation_spec.rb +64 -0
- data/spec/system/mixin_ordering_spec.rb +30 -415
- data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
- data/spec/system/parent_directory_reference_spec.rb +114 -0
- data/spec/system/partials_module_disambiguation_spec.rb +143 -0
- data/spec/system/pinned_thread_count_spec.rb +102 -0
- data/spec/system/plugin_delta_builds_spec.rb +179 -0
- data/spec/system/preprocessing_encoding_spec.rb +87 -4
- data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
- data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
- data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
- data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
- data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
- data/spec/system/ruby_replacement_spec.rb +1 -1
- data/spec/system/same_named_modules_spec.rb +115 -0
- data/spec/system/sanitize_deployment_spec.rb +64 -0
- data/spec/system/shuffle_tests_spec.rb +139 -0
- data/spec/system/sibling_header_collision_spec.rb +620 -0
- data/spec/system/subdir_include_preservation_spec.rb +63 -0
- data/spec/system/support/bullseye_common_test_cases.rb +369 -0
- data/spec/system/support/bullseye_helpers.rb +70 -0
- data/spec/system/support/common_test_cases.rb +167 -43
- data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
- data/spec/system/support/cppcheck_helpers.rb +10 -8
- data/spec/system/support/gcov_common_test_cases.rb +173 -37
- data/spec/system/support/gcov_helpers.rb +3 -3
- data/spec/system/support/gcov_partials_test_cases.rb +48 -2
- data/spec/system/support/sanitize_common_test_cases.rb +222 -0
- data/spec/system/support/sanitize_helpers.rb +27 -0
- data/spec/system/support/valgrind_common_test_cases.rb +116 -16
- data/spec/system/support/valgrind_helpers.rb +3 -4
- data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
- data/spec/system/test_runner_system_include_spec.rb +19 -41
- data/spec/system/test_source_file_directive_spec.rb +235 -0
- data/spec/system/upgrade_as_vendor_spec.rb +25 -46
- data/spec/system/valgrind_deployment_spec.rb +41 -0
- data/spec/units/batchinator_spec.rb +314 -0
- data/spec/units/bin/actionator_spec.rb +412 -0
- data/spec/units/bin/app_cfg_spec.rb +100 -0
- data/spec/units/bin/cli_handler_spec.rb +205 -0
- data/spec/units/bin/cli_helper_spec.rb +248 -10
- data/spec/units/bin/cli_options_transform_spec.rb +49 -0
- data/spec/units/bin/composinator_spec.rb +236 -0
- data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
- data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
- data/spec/units/bin/mixinator_spec.rb +58 -22
- data/spec/units/bin/path_validator_spec.rb +112 -0
- data/spec/units/bin/projectinator_spec.rb +223 -0
- data/spec/units/bin/rake_patches_spec.rb +52 -0
- data/spec/units/bin/recursive_merger_spec.rb +22 -0
- data/spec/units/bin/versionator_spec.rb +104 -0
- data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
- data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
- data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
- data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
- data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
- data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
- data/spec/units/ceedling/templateinator_spec.rb +188 -0
- data/spec/units/config/configurator_builder_spec.rb +444 -0
- data/spec/units/config/configurator_plugins_spec.rb +160 -0
- data/spec/units/config/configurator_setup_spec.rb +724 -6
- data/spec/units/config/configurator_spec.rb +961 -0
- data/spec/units/config/configurator_validator_spec.rb +259 -0
- data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
- data/spec/units/config_matchinator_spec.rb +103 -0
- data/spec/units/defineinator_spec.rb +158 -0
- data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
- data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
- data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
- data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
- data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
- data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
- data/spec/units/dependencies/dependinator_spec.rb +99 -0
- data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
- data/spec/units/encodinator_spec.rb +92 -0
- data/spec/units/file_finder_helper_spec.rb +99 -15
- data/spec/units/file_finder_spec.rb +495 -0
- data/spec/units/file_path_collection_utils_spec.rb +9 -0
- data/spec/units/file_path_utils_spec.rb +736 -0
- data/spec/units/file_wrapper_spec.rb +486 -0
- data/spec/units/filename_extension_spec.rb +120 -0
- data/spec/units/flaginator_spec.rb +114 -0
- data/spec/units/generators/generator_helper_spec.rb +113 -0
- data/spec/units/generators/generator_mocks_spec.rb +131 -0
- data/spec/units/generators/generator_partials_spec.rb +336 -160
- data/spec/units/generators/generator_spec.rb +317 -0
- data/spec/units/generators/generator_test_results_backtrace_spec.rb +169 -9
- data/spec/units/generators/generator_test_results_sanity_checker_spec.rb +14 -6
- data/spec/units/generators/generator_test_results_spec.rb +65 -8
- data/spec/units/generators/generator_test_runner_spec.rb +1 -1
- data/spec/units/includes/include_factory_spec.rb +53 -0
- data/spec/units/includes/include_pathinator_spec.rb +269 -0
- data/spec/units/includes/include_spec.rb +8 -4
- data/spec/units/includes/includes_spec.rb +326 -18
- data/spec/units/mock_locator_spec.rb +74 -0
- data/spec/units/parsing_parcels_spec.rb +65 -0
- data/spec/units/partials/partializer_config_spec.rb +284 -18
- data/spec/units/partials/partializer_helper_spec.rb +122 -0
- data/spec/units/partials/partializer_spec.rb +346 -71
- data/spec/units/partials/partializer_utils_spec.rb +4 -4
- data/spec/units/partials_manager_spec.rb +539 -0
- data/spec/units/path_matcher_spec.rb +193 -0
- data/spec/units/path_mirror_spec.rb +103 -0
- data/spec/units/plugin_manager_spec.rb +77 -0
- data/spec/units/plugin_reportinator_spec.rb +78 -3
- data/spec/units/plugins/bullseye_spec.rb +1068 -0
- data/spec/units/plugins/command_hooks_spec.rb +157 -0
- data/spec/units/plugins/compile_commands_json_db_spec.rb +145 -0
- data/spec/units/plugins/console_reportinator_spec.rb +370 -0
- data/spec/units/plugins/cppcheck_spec.rb +330 -4
- data/spec/units/plugins/cppunit_tests_reporter_spec.rb +118 -0
- data/spec/units/plugins/dependencies_spec.rb +295 -0
- data/spec/units/plugins/dependency_commands_spec.rb +83 -0
- data/spec/units/plugins/dependency_environment_spec.rb +64 -0
- data/spec/units/plugins/dependency_spec_spec.rb +170 -0
- data/spec/units/plugins/gcov_reportinator_spec.rb +272 -0
- data/spec/units/plugins/gcov_spec.rb +521 -0
- data/spec/units/plugins/gcovr_reportinator_spec.rb +795 -0
- data/spec/units/plugins/gtestlike_report_spec.rb +363 -0
- data/spec/units/plugins/html_tests_reporter_spec.rb +158 -0
- data/spec/units/plugins/ide_report_lines_spec.rb +229 -0
- data/spec/units/plugins/json_tests_reporter_spec.rb +87 -0
- data/spec/units/plugins/junit_tests_reporter_spec.rb +237 -0
- data/spec/units/plugins/module_generator_options_spec.rb +185 -0
- data/spec/units/plugins/module_generator_project_spec.rb +55 -0
- data/spec/units/plugins/module_generator_request_spec.rb +107 -0
- data/spec/units/plugins/module_generator_spec.rb +214 -0
- data/spec/units/plugins/module_generator_test_file_spec.rb +102 -0
- data/spec/units/plugins/module_generator_unity_spec.rb +37 -0
- data/spec/units/plugins/report_build_warnings_log_spec.rb +199 -0
- data/spec/units/plugins/report_log_writer_plugin_spec.rb +94 -0
- data/spec/units/plugins/report_tests_gtestlike_stdout_spec.rb +274 -0
- data/spec/units/plugins/report_tests_ide_stdout_spec.rb +140 -0
- data/spec/units/plugins/report_tests_log_factory_spec.rb +210 -0
- data/spec/units/plugins/report_tests_pretty_stdout_spec.rb +83 -0
- data/spec/units/plugins/report_tests_raw_output_log_spec.rb +98 -0
- data/spec/units/plugins/report_tests_stdout_plugin_spec.rb +145 -0
- data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +121 -0
- data/spec/units/plugins/reportgenerator_reportinator_spec.rb +410 -0
- data/spec/units/plugins/sanitize_config_spec.rb +119 -0
- data/spec/units/plugins/sanitize_findings_spec.rb +69 -0
- data/spec/units/plugins/sanitize_records_spec.rb +114 -0
- data/spec/units/plugins/sanitize_reports_spec.rb +84 -0
- data/spec/units/plugins/sanitize_spec.rb +300 -0
- data/spec/units/plugins/tests_reporter_spec.rb +89 -0
- data/spec/units/plugins/valgrind_spec.rb +560 -0
- data/spec/units/plugins/warning_collector_spec.rb +185 -0
- data/spec/units/plugins/warning_reports_spec.rb +150 -0
- data/spec/units/preprocess/c_comment_scanner_spec.rb +17 -17
- data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +94 -0
- data/spec/units/preprocess/preprocessinator_bare_includes_extractor_spec.rb +73 -0
- data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +35 -16
- data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +129 -48
- data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +292 -9
- data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +294 -16
- data/spec/units/preprocess/preprocessinator_line_marker_includes_extractor_spec.rb +356 -6
- data/spec/units/preprocess/preprocessinator_reconstructor_spec.rb +58 -4
- data/spec/units/preprocess/preprocessinator_spec.rb +693 -5
- data/spec/units/quote_include_isolator_spec.rb +176 -0
- data/spec/units/rake_app/rake_invocation_tracker_spec.rb +94 -0
- data/spec/units/rake_app/rake_task_registry_spec.rb +263 -0
- data/spec/units/rake_app/rake_utils_spec.rb +54 -0
- data/spec/units/rake_app/rake_wrapper_spec.rb +64 -0
- data/spec/units/rake_app/rakefile_component_resolver_spec.rb +182 -0
- data/spec/units/rake_app/test_task_name_spec.rb +47 -0
- data/spec/units/release_build_executor_spec.rb +404 -0
- data/spec/units/release_build_planner_spec.rb +144 -0
- data/spec/units/release_invoker_spec.rb +127 -0
- data/spec/units/reportinator_spec.rb +35 -0
- data/spec/units/ruby_expandinator_spec.rb +36 -0
- data/spec/units/standin_headerinator_spec.rb +168 -0
- data/spec/units/system_wrapper_spec.rb +16 -0
- data/spec/units/test_build_executor_spec.rb +1693 -8
- data/spec/units/test_build_planner_spec.rb +878 -0
- data/spec/units/test_build_setup_spec.rb +583 -0
- data/spec/units/test_context_extractor_spec.rb +51 -3
- data/spec/units/test_file_preprocessinator_spec.rb +206 -0
- data/spec/units/test_includes_extractinator_spec.rb +764 -0
- data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
- data/spec/units/test_invoker_spec.rb +147 -0
- data/spec/units/test_invoker_types_spec.rb +182 -0
- data/spec/units/test_pipeline_helpers_spec.rb +100 -0
- data/spec/units/test_pipeline_manager_spec.rb +415 -0
- data/spec/units/test_runner_generatinator_spec.rb +215 -0
- data/spec/units/test_runner_manager_spec.rb +70 -0
- data/spec/units/test_search_paths_spec.rb +84 -0
- data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
- data/spec/units/tool_executor_helper_spec.rb +1 -1
- data/spec/units/tool_executor_spec.rb +571 -2
- data/spec/units/tool_validator_spec.rb +303 -24
- data/spec/units/version_spec.rb +74 -0
- data/spec/units/yaml_wrapper_spec.rb +4 -1
- data/vendor/cmock/docs/CMock_Summary.md +11 -0
- data/vendor/cmock/lib/cmock_config.rb +1 -0
- data/vendor/cmock/lib/cmock_generator.rb +5 -1
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
- data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
- data/vendor/cmock/vendor/unity/test/Makefile +9 -2
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
- data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
- data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
- data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
- data/vendor/diy/lib/diy/factory.rb +5 -4
- data/vendor/diy/lib/diy.rb +5 -4
- data/vendor/diy/sample_code/car.rb +5 -4
- data/vendor/diy/sample_code/chassis.rb +5 -4
- data/vendor/diy/sample_code/diy_example.rb +5 -4
- data/vendor/diy/sample_code/engine.rb +5 -4
- data/vendor/diy/sample_code/objects.yml +5 -4
- data/vendor/diy/test/constructor.rb +5 -4
- data/vendor/diy/test/diy_test.rb +5 -4
- data/vendor/diy/test/factory_test.rb +5 -4
- data/vendor/diy/test/files/broken_construction.yml +5 -4
- data/vendor/diy/test/files/cat/cat.rb +5 -4
- data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
- data/vendor/diy/test/files/cat/heritage.rb +5 -4
- data/vendor/diy/test/files/cat/needs_input.yml +5 -4
- data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
- data/vendor/diy/test/files/dog/dog_model.rb +5 -4
- data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
- data/vendor/diy/test/files/dog/dog_view.rb +5 -4
- data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
- data/vendor/diy/test/files/dog/other_thing.rb +5 -4
- data/vendor/diy/test/files/dog/simple.yml +5 -4
- data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
- data/vendor/diy/test/files/donkey/foo.rb +5 -4
- data/vendor/diy/test/files/factory/beef.rb +5 -4
- data/vendor/diy/test/files/factory/dog.rb +5 -4
- data/vendor/diy/test/files/factory/factory.yml +5 -4
- data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
- data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
- data/vendor/diy/test/files/factory/kitten.rb +5 -4
- data/vendor/diy/test/files/fud/objects.yml +5 -4
- data/vendor/diy/test/files/fud/toy.rb +5 -4
- data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
- data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
- data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
- data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
- data/vendor/diy/test/files/functions/objects.yml +5 -4
- data/vendor/diy/test/files/functions/thing.rb +5 -4
- data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
- data/vendor/diy/test/files/functions/things_builder.rb +5 -4
- data/vendor/diy/test/files/gnu/objects.yml +5 -4
- data/vendor/diy/test/files/gnu/thinger.rb +5 -4
- data/vendor/diy/test/files/goat/base.rb +5 -4
- data/vendor/diy/test/files/goat/can.rb +5 -4
- data/vendor/diy/test/files/goat/goat.rb +5 -4
- data/vendor/diy/test/files/goat/objects.yml +5 -4
- data/vendor/diy/test/files/goat/paper.rb +5 -4
- data/vendor/diy/test/files/goat/plane.rb +5 -4
- data/vendor/diy/test/files/goat/shirt.rb +5 -4
- data/vendor/diy/test/files/goat/wings.rb +5 -4
- data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
- data/vendor/diy/test/files/horse/objects.yml +5 -4
- data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
- data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
- data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
- data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
- data/vendor/diy/test/files/namespace/objects.yml +5 -4
- data/vendor/diy/test/files/namespace/road.rb +5 -4
- data/vendor/diy/test/files/namespace/sky.rb +5 -4
- data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
- data/vendor/diy/test/files/non_singleton/air.rb +5 -4
- data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
- data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
- data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
- data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
- data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
- data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
- data/vendor/diy/test/files/yak/core_model.rb +5 -4
- data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
- data/vendor/diy/test/files/yak/core_view.rb +5 -4
- data/vendor/diy/test/files/yak/data_source.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
- data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
- data/vendor/diy/test/files/yak/krill.rb +5 -4
- data/vendor/diy/test/files/yak/my_objects.yml +5 -4
- data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
- data/vendor/diy/test/test_helper.rb +5 -4
- data/vendor/unity/auto/generate_module.rb +4 -4
- data/vendor/unity/auto/generate_test_runner.rb +5 -1
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
- data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
- data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
- data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
- data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
- metadata +783 -295
- data/assets/tests_with_fallback_conditionals/src/conditional_module.c +0 -18
- data/bin/actions_wrapper.rb +0 -51
- data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
- data/docs/mkdocs/assets/images/ceedling.svg +0 -90
- data/docs/mkdocs/assets/images/favicon.png +0 -0
- data/docs/mkdocs/assets/stylesheets/admonitions.css +0 -152
- data/docs/mkdocs/assets/stylesheets/fixes-local.css +0 -15
- data/docs/mkdocs/assets/stylesheets/styling.css +0 -102
- data/docs/mkdocs/configuration/environment-vars.md +0 -14
- data/docs/mkdocs/configuration/global-collections.md +0 -156
- data/docs/mkdocs/configuration/index.md +0 -75
- data/docs/mkdocs/configuration/loading.md +0 -89
- data/docs/mkdocs/configuration/mixins.md +0 -607
- data/docs/mkdocs/configuration/parallel-builds.md +0 -97
- data/docs/mkdocs/configuration/project-file.md +0 -216
- data/docs/mkdocs/configuration/reference/cexception.md +0 -35
- data/docs/mkdocs/configuration/reference/cmock.md +0 -106
- data/docs/mkdocs/configuration/reference/defines.md +0 -352
- data/docs/mkdocs/configuration/reference/environment.md +0 -55
- data/docs/mkdocs/configuration/reference/extension.md +0 -63
- data/docs/mkdocs/configuration/reference/files.md +0 -154
- data/docs/mkdocs/configuration/reference/flags.md +0 -296
- data/docs/mkdocs/configuration/reference/index.md +0 -176
- data/docs/mkdocs/configuration/reference/libraries.md +0 -82
- data/docs/mkdocs/configuration/reference/mixins.md +0 -24
- data/docs/mkdocs/configuration/reference/partials.md +0 -38
- data/docs/mkdocs/configuration/reference/paths.md +0 -276
- data/docs/mkdocs/configuration/reference/plugins.md +0 -60
- data/docs/mkdocs/configuration/reference/project.md +0 -333
- data/docs/mkdocs/configuration/reference/release-build.md +0 -62
- data/docs/mkdocs/configuration/reference/test-build.md +0 -55
- data/docs/mkdocs/configuration/reference/test-runner.md +0 -61
- data/docs/mkdocs/configuration/reference/tools.md +0 -457
- data/docs/mkdocs/configuration/reference/unity.md +0 -49
- data/docs/mkdocs/configuration/which-ceedling.md +0 -77
- data/docs/mkdocs/development/index.md +0 -61
- data/docs/mkdocs/development/plugins/configuration.md +0 -164
- data/docs/mkdocs/development/plugins/index.md +0 -84
- data/docs/mkdocs/development/plugins/plugin-subclass.md +0 -513
- data/docs/mkdocs/development/plugins/rake-tasks.md +0 -54
- data/docs/mkdocs/development/workflow.md +0 -284
- data/docs/mkdocs/getting-started/command-line.md +0 -477
- data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +0 -65
- data/docs/mkdocs/getting-started/example-projects/index.md +0 -49
- data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +0 -60
- data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +0 -45
- data/docs/mkdocs/getting-started/index.md +0 -41
- data/docs/mkdocs/getting-started/installation.md +0 -179
- data/docs/mkdocs/getting-started/quick-start.md +0 -86
- data/docs/mkdocs/help.md +0 -49
- data/docs/mkdocs/index.md +0 -222
- data/docs/mkdocs/overview/build-system.md +0 -115
- data/docs/mkdocs/overview/index.md +0 -29
- data/docs/mkdocs/overview/test-environments.md +0 -33
- data/docs/mkdocs/overview/tools-and-frameworks.md +0 -115
- data/docs/mkdocs/plugins/beep.md +0 -134
- data/docs/mkdocs/plugins/bullseye.md +0 -83
- data/docs/mkdocs/plugins/command-hooks.md +0 -268
- data/docs/mkdocs/plugins/compile-commands-json-db.md +0 -42
- data/docs/mkdocs/plugins/cppcheck.md +0 -377
- data/docs/mkdocs/plugins/dependencies.md +0 -310
- data/docs/mkdocs/plugins/fff.md +0 -247
- data/docs/mkdocs/plugins/gcov/examples.md +0 -92
- data/docs/mkdocs/plugins/gcov/gcovr.md +0 -526
- data/docs/mkdocs/plugins/gcov/index.md +0 -74
- data/docs/mkdocs/plugins/gcov/overview.md +0 -145
- data/docs/mkdocs/plugins/gcov/reportgenerator.md +0 -246
- data/docs/mkdocs/plugins/gcov/reporting.md +0 -147
- data/docs/mkdocs/plugins/gcov/setup.md +0 -232
- data/docs/mkdocs/plugins/gcov/tool-versions.md +0 -60
- data/docs/mkdocs/plugins/gcov/troubleshooting.md +0 -78
- data/docs/mkdocs/plugins/index.md +0 -261
- data/docs/mkdocs/plugins/module-generator.md +0 -267
- data/docs/mkdocs/plugins/report-build-warnings-log.md +0 -42
- data/docs/mkdocs/plugins/report-tests-gtestlike-stdout.md +0 -98
- data/docs/mkdocs/plugins/report-tests-ide-stdout.md +0 -63
- data/docs/mkdocs/plugins/report-tests-log-factory.md +0 -454
- data/docs/mkdocs/plugins/report-tests-pretty-stdout.md +0 -56
- data/docs/mkdocs/plugins/report-tests-raw-output-log.md +0 -52
- data/docs/mkdocs/plugins/report-tests-teamcity-stdout.md +0 -96
- data/docs/mkdocs/plugins/sample_html_report.png +0 -0
- data/docs/mkdocs/plugins/valgrind.md +0 -198
- data/docs/mkdocs/project/release-history.md +0 -61
- data/docs/mkdocs/project/upgrade.md +0 -85
- data/docs/mkdocs/reference/build-directives.md +0 -37
- data/docs/mkdocs/reference/command-line.md +0 -323
- data/docs/mkdocs/reference/environment-vars.md +0 -60
- data/docs/mkdocs/reference/gcov-plugin.md +0 -600
- data/docs/mkdocs/reference/global-collections.md +0 -160
- data/docs/mkdocs/reference/index.md +0 -65
- data/docs/mkdocs/reference/partials-macros.md +0 -79
- data/docs/mkdocs/reference/project-configuration.md +0 -46
- data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +0 -210
- data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +0 -283
- data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +0 -92
- data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +0 -32
- data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +0 -136
- data/docs/mkdocs/snapshot.yml +0 -20
- data/docs/mkdocs/testing-guide/build-directives.md +0 -153
- data/docs/mkdocs/testing-guide/conventions.md +0 -616
- data/docs/mkdocs/testing-guide/frameworks.md +0 -192
- data/docs/mkdocs/testing-guide/index.md +0 -80
- data/docs/mkdocs/testing-guide/partials/configuration.md +0 -67
- data/docs/mkdocs/testing-guide/partials/conventions.md +0 -68
- data/docs/mkdocs/testing-guide/partials/directives.md +0 -212
- data/docs/mkdocs/testing-guide/partials/example.md +0 -149
- data/docs/mkdocs/testing-guide/partials/index.md +0 -88
- data/docs/mkdocs/testing-guide/partials/overview.md +0 -81
- data/docs/mkdocs/testing-guide/partials/variables.md +0 -244
- data/docs/mkdocs/testing-guide/test-cases.md +0 -194
- data/docs/mkdocs/testing-guide/test-sample.md +0 -94
- data/docs/mkdocs/testing-guide/test-suite-anatomy.md +0 -58
- data/lib/ceedling/cacheinator.rb +0 -53
- data/lib/ceedling/cacheinator_helper.rb +0 -60
- data/lib/ceedling/dependinator.rb +0 -31
- data/lib/ceedling/makefile.rb +0 -52
- data/lib/ceedling/release_invoker.rb +0 -112
- data/lib/ceedling/rules_release.rake +0 -109
- data/lib/ceedling/tasks_release.rake +0 -36
- data/plugins/fff/vendor/fff/Makefile +0 -10
- data/plugins/fff/vendor/fff/buildandtest +0 -15
- data/plugins/fff/vendor/fff/examples/Makefile +0 -7
- data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
- data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
- data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
- data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
- data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
- data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
- data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
- data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
- data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
- data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
- data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
- data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
- data/plugins/fff/vendor/fff/test/Makefile +0 -81
- data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
- data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
- data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
- data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
- data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
- data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
- data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
- data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
- data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
- data/site-local/assets/stylesheets/main.ec1eaa64.min.css +0 -1
- data/site-local/assets/stylesheets/main.ec1eaa64.min.css.map +0 -1
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
- data/site-local/snapshot/assets/project.yml +0 -404
- data/spec/system/partials_types_header_spec.rb +0 -166
- data/spec/units/configurator_spec.rb +0 -232
- /data/assets/{ceedling → features/ceedling} +0 -0
- /data/assets/{ceedling.cmd → features/ceedling.cmd} +0 -0
- /data/assets/{default_gitignore → features/default_gitignore} +0 -0
- /data/assets/{broken_uncovered_file.c → fixtures/broken_uncovered_file.c} +0 -0
- /data/assets/{example_file.c → fixtures/example_file.c} +0 -0
- /data/assets/{example_file.h → fixtures/example_file.h} +0 -0
- /data/assets/{example_file_call.c → fixtures/example_file_call.c} +0 -0
- /data/assets/{example_file_call.h → fixtures/example_file_call.h} +0 -0
- /data/assets/{example_file_with_statics.c → fixtures/example_file_with_statics.c} +0 -0
- /data/assets/{example_file_with_stdio.c → fixtures/example_file_with_stdio.c} +0 -0
- /data/assets/{example_file_with_stdio.h → fixtures/example_file_with_stdio.h} +0 -0
- /data/assets/{fake_crash_test_fixture.rb → fixtures/fake_crash_test_fixture.rb} +0 -0
- /data/assets/{partial_all_module.h → fixtures/partial_all_module.h} +0 -0
- /data/assets/{run_with_ubsan.rb → fixtures/run_with_ubsan.rb} +0 -0
- /data/assets/{same_dir_pairing_module.c → fixtures/same_dir_pairing_module.c} +0 -0
- /data/assets/{same_dir_pairing_module.h → fixtures/same_dir_pairing_module.h} +0 -0
- /data/assets/{same_dir_pairing_module_func.h → fixtures/same_dir_pairing_module_func.h} +0 -0
- /data/assets/{same_dir_pairing_other.c → fixtures/same_dir_pairing_other.c} +0 -0
- /data/assets/{same_dir_pairing_other.h → fixtures/same_dir_pairing_other.h} +0 -0
- /data/assets/{test_example_file.c → fixtures/test_example_file.c} +0 -0
- /data/assets/{test_example_file_2.c → fixtures/test_example_file_2.c} +0 -0
- /data/assets/{test_example_file_source_include.c → fixtures/test_example_file_source_include.c} +0 -0
- /data/assets/{test_example_file_success.c → fixtures/test_example_file_success.c} +0 -0
- /data/assets/{test_example_file_unity_printf.c → fixtures/test_example_file_unity_printf.c} +0 -0
- /data/assets/{test_example_file_verbose.c → fixtures/test_example_file_verbose.c} +0 -0
- /data/assets/{test_example_file_with_mock.c → fixtures/test_example_file_with_mock.c} +0 -0
- /data/assets/{test_example_file_with_stdio.c → fixtures/test_example_file_with_stdio.c} +0 -0
- /data/assets/{test_example_with_parameterized_tests.c → fixtures/test_example_with_parameterized_tests.c} +0 -0
- /data/assets/{test_partial_all_module.c → fixtures/test_partial_all_module.c} +0 -0
- /data/assets/{test_same_dir_pairing.c → fixtures/test_same_dir_pairing.c} +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_config.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/local_flag_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_wrapper.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/project_flag_extra.h +0 -0
- /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.h +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.c +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.h +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.c +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.h +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware.c +0 -0
- /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware_special.c +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.c +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.h +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder.c +0 -0
- /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder_partial.c +0 -0
- /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/conditional_module.h +0 -0
- /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/optional_dep.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.h +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_blanks.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_counter.c +0 -0
- /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_decorators.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorA.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorB.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorC.h +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareA.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareB.c +0 -0
- /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareC.c +0 -0
- /data/assets/{uncovered_example_file.c → fixtures/uncovered_example_file.c} +0 -0
- /data/plugins/bullseye/assets/{template.erb → coverage.template} +0 -0
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
<link rel="icon" href="../../assets/images/favicon.png">
|
|
24
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.
|
|
24
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.8.0">
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<link rel="stylesheet" href="../../assets/stylesheets/main.
|
|
32
|
+
<link rel="stylesheet" href="../../assets/stylesheets/main.57a0d79d.min.css">
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
<link rel="stylesheet" href="../../assets/stylesheets/palette.
|
|
35
|
+
<link rel="stylesheet" href="../../assets/stylesheets/palette.fb2fffe2.min.css">
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -93,6 +93,16 @@
|
|
|
93
93
|
|
|
94
94
|
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
|
|
95
95
|
|
|
96
|
+
<aside class="md-banner md-banner--warning">
|
|
97
|
+
<div class="md-banner__inner md-grid md-typeset">
|
|
98
|
+
You are not viewing the latest version.
|
|
99
|
+
<a href="../../..">
|
|
100
|
+
<strong>Click here to go to latest.</strong>
|
|
101
|
+
</a>
|
|
102
|
+
</div>
|
|
103
|
+
<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL("../.."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
|
|
104
|
+
</aside>
|
|
105
|
+
|
|
96
106
|
</div>
|
|
97
107
|
|
|
98
108
|
|
|
@@ -330,7 +340,7 @@
|
|
|
330
340
|
|
|
331
341
|
|
|
332
342
|
<li class="md-tabs__item">
|
|
333
|
-
<a href="../../project/
|
|
343
|
+
<a href="../../project/index.html" class="md-tabs__link">
|
|
334
344
|
|
|
335
345
|
|
|
336
346
|
|
|
@@ -641,6 +651,8 @@
|
|
|
641
651
|
|
|
642
652
|
|
|
643
653
|
|
|
654
|
+
|
|
655
|
+
|
|
644
656
|
|
|
645
657
|
|
|
646
658
|
|
|
@@ -788,6 +800,34 @@
|
|
|
788
800
|
|
|
789
801
|
|
|
790
802
|
|
|
803
|
+
<li class="md-nav__item">
|
|
804
|
+
<a href="../../getting-started/builds.html" class="md-nav__link">
|
|
805
|
+
|
|
806
|
+
|
|
807
|
+
|
|
808
|
+
<span class="md-ellipsis">
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
Builds
|
|
812
|
+
|
|
813
|
+
|
|
814
|
+
|
|
815
|
+
</span>
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
</a>
|
|
820
|
+
</li>
|
|
821
|
+
|
|
822
|
+
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+
|
|
827
|
+
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
|
|
791
831
|
|
|
792
832
|
|
|
793
833
|
|
|
@@ -814,7 +854,7 @@
|
|
|
814
854
|
|
|
815
855
|
|
|
816
856
|
|
|
817
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
857
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
|
|
818
858
|
|
|
819
859
|
|
|
820
860
|
<div class="md-nav__link md-nav__container">
|
|
@@ -836,14 +876,14 @@
|
|
|
836
876
|
</a>
|
|
837
877
|
|
|
838
878
|
|
|
839
|
-
<label class="md-nav__link " for="
|
|
879
|
+
<label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
|
|
840
880
|
<span class="md-nav__icon md-icon"></span>
|
|
841
881
|
</label>
|
|
842
882
|
|
|
843
883
|
</div>
|
|
844
884
|
|
|
845
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
846
|
-
<label class="md-nav__title" for="
|
|
885
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
|
|
886
|
+
<label class="md-nav__title" for="__nav_3_6">
|
|
847
887
|
<span class="md-nav__icon md-icon"></span>
|
|
848
888
|
|
|
849
889
|
|
|
@@ -2410,6 +2450,8 @@
|
|
|
2410
2450
|
|
|
2411
2451
|
|
|
2412
2452
|
|
|
2453
|
+
|
|
2454
|
+
|
|
2413
2455
|
|
|
2414
2456
|
|
|
2415
2457
|
|
|
@@ -3041,10 +3083,63 @@
|
|
|
3041
3083
|
|
|
3042
3084
|
|
|
3043
3085
|
<li class="md-nav__item">
|
|
3044
|
-
<a href="../../plugins/
|
|
3086
|
+
<a href="../../plugins/sanitize.html" class="md-nav__link">
|
|
3045
3087
|
|
|
3046
3088
|
|
|
3047
3089
|
|
|
3090
|
+
<span class="md-ellipsis">
|
|
3091
|
+
|
|
3092
|
+
|
|
3093
|
+
Sanitize (ASan, UBSan & Leaks)
|
|
3094
|
+
|
|
3095
|
+
|
|
3096
|
+
|
|
3097
|
+
</span>
|
|
3098
|
+
|
|
3099
|
+
|
|
3100
|
+
|
|
3101
|
+
</a>
|
|
3102
|
+
</li>
|
|
3103
|
+
|
|
3104
|
+
|
|
3105
|
+
|
|
3106
|
+
|
|
3107
|
+
|
|
3108
|
+
|
|
3109
|
+
|
|
3110
|
+
|
|
3111
|
+
|
|
3112
|
+
|
|
3113
|
+
|
|
3114
|
+
|
|
3115
|
+
|
|
3116
|
+
|
|
3117
|
+
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
3132
|
+
|
|
3133
|
+
|
|
3134
|
+
|
|
3135
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
|
|
3136
|
+
|
|
3137
|
+
|
|
3138
|
+
<div class="md-nav__link md-nav__container">
|
|
3139
|
+
<a href="../../plugins/bullseye/index.html" class="md-nav__link ">
|
|
3140
|
+
|
|
3141
|
+
|
|
3142
|
+
|
|
3048
3143
|
<span class="md-ellipsis">
|
|
3049
3144
|
|
|
3050
3145
|
|
|
@@ -3052,6 +3147,50 @@
|
|
|
3052
3147
|
|
|
3053
3148
|
|
|
3054
3149
|
|
|
3150
|
+
</span>
|
|
3151
|
+
|
|
3152
|
+
|
|
3153
|
+
|
|
3154
|
+
</a>
|
|
3155
|
+
|
|
3156
|
+
|
|
3157
|
+
<label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="0">
|
|
3158
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3159
|
+
</label>
|
|
3160
|
+
|
|
3161
|
+
</div>
|
|
3162
|
+
|
|
3163
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
|
|
3164
|
+
<label class="md-nav__title" for="__nav_6_13">
|
|
3165
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3166
|
+
|
|
3167
|
+
|
|
3168
|
+
Bullseye (Coverage)
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
</label>
|
|
3172
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
3173
|
+
|
|
3174
|
+
|
|
3175
|
+
|
|
3176
|
+
|
|
3177
|
+
|
|
3178
|
+
|
|
3179
|
+
|
|
3180
|
+
|
|
3181
|
+
|
|
3182
|
+
<li class="md-nav__item">
|
|
3183
|
+
<a href="../../plugins/bullseye/licensing.html" class="md-nav__link">
|
|
3184
|
+
|
|
3185
|
+
|
|
3186
|
+
|
|
3187
|
+
<span class="md-ellipsis">
|
|
3188
|
+
|
|
3189
|
+
|
|
3190
|
+
Licensing
|
|
3191
|
+
|
|
3192
|
+
|
|
3193
|
+
|
|
3055
3194
|
</span>
|
|
3056
3195
|
|
|
3057
3196
|
|
|
@@ -3062,6 +3201,14 @@
|
|
|
3062
3201
|
|
|
3063
3202
|
|
|
3064
3203
|
|
|
3204
|
+
</ul>
|
|
3205
|
+
</nav>
|
|
3206
|
+
|
|
3207
|
+
</li>
|
|
3208
|
+
|
|
3209
|
+
|
|
3210
|
+
|
|
3211
|
+
|
|
3065
3212
|
|
|
3066
3213
|
|
|
3067
3214
|
|
|
@@ -3531,6 +3678,12 @@
|
|
|
3531
3678
|
|
|
3532
3679
|
|
|
3533
3680
|
|
|
3681
|
+
|
|
3682
|
+
|
|
3683
|
+
|
|
3684
|
+
|
|
3685
|
+
|
|
3686
|
+
|
|
3534
3687
|
|
|
3535
3688
|
|
|
3536
3689
|
|
|
@@ -3550,8 +3703,9 @@
|
|
|
3550
3703
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
|
|
3551
3704
|
|
|
3552
3705
|
|
|
3553
|
-
<
|
|
3554
|
-
|
|
3706
|
+
<div class="md-nav__link md-nav__container">
|
|
3707
|
+
<a href="../../project/index.html" class="md-nav__link ">
|
|
3708
|
+
|
|
3555
3709
|
|
|
3556
3710
|
|
|
3557
3711
|
<span class="md-ellipsis">
|
|
@@ -3565,8 +3719,14 @@
|
|
|
3565
3719
|
|
|
3566
3720
|
|
|
3567
3721
|
|
|
3568
|
-
|
|
3569
|
-
|
|
3722
|
+
</a>
|
|
3723
|
+
|
|
3724
|
+
|
|
3725
|
+
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
|
|
3726
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3727
|
+
</label>
|
|
3728
|
+
|
|
3729
|
+
</div>
|
|
3570
3730
|
|
|
3571
3731
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
|
|
3572
3732
|
<label class="md-nav__title" for="__nav_8">
|
|
@@ -3580,6 +3740,8 @@
|
|
|
3580
3740
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
3581
3741
|
|
|
3582
3742
|
|
|
3743
|
+
|
|
3744
|
+
|
|
3583
3745
|
|
|
3584
3746
|
|
|
3585
3747
|
|
|
@@ -3613,6 +3775,34 @@
|
|
|
3613
3775
|
|
|
3614
3776
|
|
|
3615
3777
|
|
|
3778
|
+
<li class="md-nav__item">
|
|
3779
|
+
<a href="../../project/sbom.html" class="md-nav__link">
|
|
3780
|
+
|
|
3781
|
+
|
|
3782
|
+
|
|
3783
|
+
<span class="md-ellipsis">
|
|
3784
|
+
|
|
3785
|
+
|
|
3786
|
+
Software Bill of Materials
|
|
3787
|
+
|
|
3788
|
+
|
|
3789
|
+
|
|
3790
|
+
</span>
|
|
3791
|
+
|
|
3792
|
+
|
|
3793
|
+
|
|
3794
|
+
</a>
|
|
3795
|
+
</li>
|
|
3796
|
+
|
|
3797
|
+
|
|
3798
|
+
|
|
3799
|
+
|
|
3800
|
+
|
|
3801
|
+
|
|
3802
|
+
|
|
3803
|
+
|
|
3804
|
+
|
|
3805
|
+
|
|
3616
3806
|
<li class="md-nav__item">
|
|
3617
3807
|
<a href="../../project/upgrade.html" class="md-nav__link">
|
|
3618
3808
|
|
|
@@ -3685,6 +3875,8 @@
|
|
|
3685
3875
|
|
|
3686
3876
|
|
|
3687
3877
|
|
|
3878
|
+
|
|
3879
|
+
|
|
3688
3880
|
|
|
3689
3881
|
|
|
3690
3882
|
|
|
@@ -3777,6 +3969,34 @@
|
|
|
3777
3969
|
|
|
3778
3970
|
|
|
3779
3971
|
|
|
3972
|
+
|
|
3973
|
+
|
|
3974
|
+
<li class="md-nav__item">
|
|
3975
|
+
<a href="../releases.html" class="md-nav__link">
|
|
3976
|
+
|
|
3977
|
+
|
|
3978
|
+
|
|
3979
|
+
<span class="md-ellipsis">
|
|
3980
|
+
|
|
3981
|
+
|
|
3982
|
+
Branching & Releases
|
|
3983
|
+
|
|
3984
|
+
|
|
3985
|
+
|
|
3986
|
+
</span>
|
|
3987
|
+
|
|
3988
|
+
|
|
3989
|
+
|
|
3990
|
+
</a>
|
|
3991
|
+
</li>
|
|
3992
|
+
|
|
3993
|
+
|
|
3994
|
+
|
|
3995
|
+
|
|
3996
|
+
|
|
3997
|
+
|
|
3998
|
+
|
|
3999
|
+
|
|
3780
4000
|
|
|
3781
4001
|
|
|
3782
4002
|
|
|
@@ -3810,7 +4030,7 @@
|
|
|
3810
4030
|
|
|
3811
4031
|
|
|
3812
4032
|
|
|
3813
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
4033
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" checked>
|
|
3814
4034
|
|
|
3815
4035
|
|
|
3816
4036
|
<div class="md-nav__link md-nav__container">
|
|
@@ -3832,14 +4052,14 @@
|
|
|
3832
4052
|
</a>
|
|
3833
4053
|
|
|
3834
4054
|
|
|
3835
|
-
<label class="md-nav__link " for="
|
|
4055
|
+
<label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="">
|
|
3836
4056
|
<span class="md-nav__icon md-icon"></span>
|
|
3837
4057
|
</label>
|
|
3838
4058
|
|
|
3839
4059
|
</div>
|
|
3840
4060
|
|
|
3841
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
3842
|
-
<label class="md-nav__title" for="
|
|
4061
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="true">
|
|
4062
|
+
<label class="md-nav__title" for="__nav_10_4">
|
|
3843
4063
|
<span class="md-nav__icon md-icon"></span>
|
|
3844
4064
|
|
|
3845
4065
|
|
|
@@ -4070,6 +4290,28 @@
|
|
|
4070
4290
|
</span>
|
|
4071
4291
|
</a>
|
|
4072
4292
|
|
|
4293
|
+
</li>
|
|
4294
|
+
|
|
4295
|
+
<li class="md-nav__item">
|
|
4296
|
+
<a href="#delta-build-hooks" class="md-nav__link">
|
|
4297
|
+
<span class="md-ellipsis">
|
|
4298
|
+
|
|
4299
|
+
Delta build hooks
|
|
4300
|
+
|
|
4301
|
+
</span>
|
|
4302
|
+
</a>
|
|
4303
|
+
|
|
4304
|
+
</li>
|
|
4305
|
+
|
|
4306
|
+
<li class="md-nav__item">
|
|
4307
|
+
<a href="#plugin-hook-method-pre_test_compile_registerarg_hash" class="md-nav__link">
|
|
4308
|
+
<span class="md-ellipsis">
|
|
4309
|
+
|
|
4310
|
+
Plugin hook method pre_test_compile_register(arg_hash)
|
|
4311
|
+
|
|
4312
|
+
</span>
|
|
4313
|
+
</a>
|
|
4314
|
+
|
|
4073
4315
|
</li>
|
|
4074
4316
|
|
|
4075
4317
|
<li class="md-nav__item">
|
|
@@ -4081,6 +4323,17 @@
|
|
|
4081
4323
|
</span>
|
|
4082
4324
|
</a>
|
|
4083
4325
|
|
|
4326
|
+
</li>
|
|
4327
|
+
|
|
4328
|
+
<li class="md-nav__item">
|
|
4329
|
+
<a href="#plugin-hook-method-pre_test_link_registerarg_hash" class="md-nav__link">
|
|
4330
|
+
<span class="md-ellipsis">
|
|
4331
|
+
|
|
4332
|
+
Plugin hook method pre_test_link_register(arg_hash)
|
|
4333
|
+
|
|
4334
|
+
</span>
|
|
4335
|
+
</a>
|
|
4336
|
+
|
|
4084
4337
|
</li>
|
|
4085
4338
|
|
|
4086
4339
|
<li class="md-nav__item">
|
|
@@ -4092,6 +4345,17 @@
|
|
|
4092
4345
|
</span>
|
|
4093
4346
|
</a>
|
|
4094
4347
|
|
|
4348
|
+
</li>
|
|
4349
|
+
|
|
4350
|
+
<li class="md-nav__item">
|
|
4351
|
+
<a href="#plugin-hook-method-pre_test_fixture_registerarg_hash" class="md-nav__link">
|
|
4352
|
+
<span class="md-ellipsis">
|
|
4353
|
+
|
|
4354
|
+
Plugin hook method pre_test_fixture_register(arg_hash)
|
|
4355
|
+
|
|
4356
|
+
</span>
|
|
4357
|
+
</a>
|
|
4358
|
+
|
|
4095
4359
|
</li>
|
|
4096
4360
|
|
|
4097
4361
|
<li class="md-nav__item">
|
|
@@ -4103,6 +4367,17 @@
|
|
|
4103
4367
|
</span>
|
|
4104
4368
|
</a>
|
|
4105
4369
|
|
|
4370
|
+
</li>
|
|
4371
|
+
|
|
4372
|
+
<li class="md-nav__item">
|
|
4373
|
+
<a href="#plugin-hook-method-explain_test_crasharg_hash" class="md-nav__link">
|
|
4374
|
+
<span class="md-ellipsis">
|
|
4375
|
+
|
|
4376
|
+
Plugin hook method explain_test_crash(arg_hash)
|
|
4377
|
+
|
|
4378
|
+
</span>
|
|
4379
|
+
</a>
|
|
4380
|
+
|
|
4106
4381
|
</li>
|
|
4107
4382
|
|
|
4108
4383
|
<li class="md-nav__item">
|
|
@@ -4175,7 +4450,7 @@
|
|
|
4175
4450
|
<a href="#validating-a-plugins-tools" class="md-nav__link">
|
|
4176
4451
|
<span class="md-ellipsis">
|
|
4177
4452
|
|
|
4178
|
-
Validating a plugin
|
|
4453
|
+
Validating a plugin’s tools
|
|
4179
4454
|
|
|
4180
4455
|
</span>
|
|
4181
4456
|
</a>
|
|
@@ -4191,6 +4466,78 @@
|
|
|
4191
4466
|
</span>
|
|
4192
4467
|
</a>
|
|
4193
4468
|
|
|
4469
|
+
</li>
|
|
4470
|
+
|
|
4471
|
+
<li class="md-nav__item">
|
|
4472
|
+
<a href="#test-results-report-templates" class="md-nav__link">
|
|
4473
|
+
<span class="md-ellipsis">
|
|
4474
|
+
|
|
4475
|
+
Test results report templates
|
|
4476
|
+
|
|
4477
|
+
</span>
|
|
4478
|
+
</a>
|
|
4479
|
+
|
|
4480
|
+
<nav class="md-nav" aria-label="Test results report templates">
|
|
4481
|
+
<ul class="md-nav__list">
|
|
4482
|
+
|
|
4483
|
+
<li class="md-nav__item">
|
|
4484
|
+
<a href="#supplying-a-template" class="md-nav__link">
|
|
4485
|
+
<span class="md-ellipsis">
|
|
4486
|
+
|
|
4487
|
+
Supplying a template
|
|
4488
|
+
|
|
4489
|
+
</span>
|
|
4490
|
+
</a>
|
|
4491
|
+
|
|
4492
|
+
</li>
|
|
4493
|
+
|
|
4494
|
+
<li class="md-nav__item">
|
|
4495
|
+
<a href="#supported-syntax" class="md-nav__link">
|
|
4496
|
+
<span class="md-ellipsis">
|
|
4497
|
+
|
|
4498
|
+
Supported syntax
|
|
4499
|
+
|
|
4500
|
+
</span>
|
|
4501
|
+
</a>
|
|
4502
|
+
|
|
4503
|
+
</li>
|
|
4504
|
+
|
|
4505
|
+
<li class="md-nav__item">
|
|
4506
|
+
<a href="#newline-trimming" class="md-nav__link">
|
|
4507
|
+
<span class="md-ellipsis">
|
|
4508
|
+
|
|
4509
|
+
Newline trimming
|
|
4510
|
+
|
|
4511
|
+
</span>
|
|
4512
|
+
</a>
|
|
4513
|
+
|
|
4514
|
+
</li>
|
|
4515
|
+
|
|
4516
|
+
<li class="md-nav__item">
|
|
4517
|
+
<a href="#what-a-template-can-reference" class="md-nav__link">
|
|
4518
|
+
<span class="md-ellipsis">
|
|
4519
|
+
|
|
4520
|
+
What a template can reference
|
|
4521
|
+
|
|
4522
|
+
</span>
|
|
4523
|
+
</a>
|
|
4524
|
+
|
|
4525
|
+
</li>
|
|
4526
|
+
|
|
4527
|
+
<li class="md-nav__item">
|
|
4528
|
+
<a href="#unsupported-syntax" class="md-nav__link">
|
|
4529
|
+
<span class="md-ellipsis">
|
|
4530
|
+
|
|
4531
|
+
Unsupported syntax
|
|
4532
|
+
|
|
4533
|
+
</span>
|
|
4534
|
+
</a>
|
|
4535
|
+
|
|
4536
|
+
</li>
|
|
4537
|
+
|
|
4538
|
+
</ul>
|
|
4539
|
+
</nav>
|
|
4540
|
+
|
|
4194
4541
|
</li>
|
|
4195
4542
|
|
|
4196
4543
|
</ul>
|
|
@@ -4396,6 +4743,28 @@
|
|
|
4396
4743
|
</span>
|
|
4397
4744
|
</a>
|
|
4398
4745
|
|
|
4746
|
+
</li>
|
|
4747
|
+
|
|
4748
|
+
<li class="md-nav__item">
|
|
4749
|
+
<a href="#delta-build-hooks" class="md-nav__link">
|
|
4750
|
+
<span class="md-ellipsis">
|
|
4751
|
+
|
|
4752
|
+
Delta build hooks
|
|
4753
|
+
|
|
4754
|
+
</span>
|
|
4755
|
+
</a>
|
|
4756
|
+
|
|
4757
|
+
</li>
|
|
4758
|
+
|
|
4759
|
+
<li class="md-nav__item">
|
|
4760
|
+
<a href="#plugin-hook-method-pre_test_compile_registerarg_hash" class="md-nav__link">
|
|
4761
|
+
<span class="md-ellipsis">
|
|
4762
|
+
|
|
4763
|
+
Plugin hook method pre_test_compile_register(arg_hash)
|
|
4764
|
+
|
|
4765
|
+
</span>
|
|
4766
|
+
</a>
|
|
4767
|
+
|
|
4399
4768
|
</li>
|
|
4400
4769
|
|
|
4401
4770
|
<li class="md-nav__item">
|
|
@@ -4407,6 +4776,17 @@
|
|
|
4407
4776
|
</span>
|
|
4408
4777
|
</a>
|
|
4409
4778
|
|
|
4779
|
+
</li>
|
|
4780
|
+
|
|
4781
|
+
<li class="md-nav__item">
|
|
4782
|
+
<a href="#plugin-hook-method-pre_test_link_registerarg_hash" class="md-nav__link">
|
|
4783
|
+
<span class="md-ellipsis">
|
|
4784
|
+
|
|
4785
|
+
Plugin hook method pre_test_link_register(arg_hash)
|
|
4786
|
+
|
|
4787
|
+
</span>
|
|
4788
|
+
</a>
|
|
4789
|
+
|
|
4410
4790
|
</li>
|
|
4411
4791
|
|
|
4412
4792
|
<li class="md-nav__item">
|
|
@@ -4418,6 +4798,17 @@
|
|
|
4418
4798
|
</span>
|
|
4419
4799
|
</a>
|
|
4420
4800
|
|
|
4801
|
+
</li>
|
|
4802
|
+
|
|
4803
|
+
<li class="md-nav__item">
|
|
4804
|
+
<a href="#plugin-hook-method-pre_test_fixture_registerarg_hash" class="md-nav__link">
|
|
4805
|
+
<span class="md-ellipsis">
|
|
4806
|
+
|
|
4807
|
+
Plugin hook method pre_test_fixture_register(arg_hash)
|
|
4808
|
+
|
|
4809
|
+
</span>
|
|
4810
|
+
</a>
|
|
4811
|
+
|
|
4421
4812
|
</li>
|
|
4422
4813
|
|
|
4423
4814
|
<li class="md-nav__item">
|
|
@@ -4429,6 +4820,17 @@
|
|
|
4429
4820
|
</span>
|
|
4430
4821
|
</a>
|
|
4431
4822
|
|
|
4823
|
+
</li>
|
|
4824
|
+
|
|
4825
|
+
<li class="md-nav__item">
|
|
4826
|
+
<a href="#plugin-hook-method-explain_test_crasharg_hash" class="md-nav__link">
|
|
4827
|
+
<span class="md-ellipsis">
|
|
4828
|
+
|
|
4829
|
+
Plugin hook method explain_test_crash(arg_hash)
|
|
4830
|
+
|
|
4831
|
+
</span>
|
|
4832
|
+
</a>
|
|
4833
|
+
|
|
4432
4834
|
</li>
|
|
4433
4835
|
|
|
4434
4836
|
<li class="md-nav__item">
|
|
@@ -4501,7 +4903,7 @@
|
|
|
4501
4903
|
<a href="#validating-a-plugins-tools" class="md-nav__link">
|
|
4502
4904
|
<span class="md-ellipsis">
|
|
4503
4905
|
|
|
4504
|
-
Validating a plugin
|
|
4906
|
+
Validating a plugin’s tools
|
|
4505
4907
|
|
|
4506
4908
|
</span>
|
|
4507
4909
|
</a>
|
|
@@ -4517,6 +4919,78 @@
|
|
|
4517
4919
|
</span>
|
|
4518
4920
|
</a>
|
|
4519
4921
|
|
|
4922
|
+
</li>
|
|
4923
|
+
|
|
4924
|
+
<li class="md-nav__item">
|
|
4925
|
+
<a href="#test-results-report-templates" class="md-nav__link">
|
|
4926
|
+
<span class="md-ellipsis">
|
|
4927
|
+
|
|
4928
|
+
Test results report templates
|
|
4929
|
+
|
|
4930
|
+
</span>
|
|
4931
|
+
</a>
|
|
4932
|
+
|
|
4933
|
+
<nav class="md-nav" aria-label="Test results report templates">
|
|
4934
|
+
<ul class="md-nav__list">
|
|
4935
|
+
|
|
4936
|
+
<li class="md-nav__item">
|
|
4937
|
+
<a href="#supplying-a-template" class="md-nav__link">
|
|
4938
|
+
<span class="md-ellipsis">
|
|
4939
|
+
|
|
4940
|
+
Supplying a template
|
|
4941
|
+
|
|
4942
|
+
</span>
|
|
4943
|
+
</a>
|
|
4944
|
+
|
|
4945
|
+
</li>
|
|
4946
|
+
|
|
4947
|
+
<li class="md-nav__item">
|
|
4948
|
+
<a href="#supported-syntax" class="md-nav__link">
|
|
4949
|
+
<span class="md-ellipsis">
|
|
4950
|
+
|
|
4951
|
+
Supported syntax
|
|
4952
|
+
|
|
4953
|
+
</span>
|
|
4954
|
+
</a>
|
|
4955
|
+
|
|
4956
|
+
</li>
|
|
4957
|
+
|
|
4958
|
+
<li class="md-nav__item">
|
|
4959
|
+
<a href="#newline-trimming" class="md-nav__link">
|
|
4960
|
+
<span class="md-ellipsis">
|
|
4961
|
+
|
|
4962
|
+
Newline trimming
|
|
4963
|
+
|
|
4964
|
+
</span>
|
|
4965
|
+
</a>
|
|
4966
|
+
|
|
4967
|
+
</li>
|
|
4968
|
+
|
|
4969
|
+
<li class="md-nav__item">
|
|
4970
|
+
<a href="#what-a-template-can-reference" class="md-nav__link">
|
|
4971
|
+
<span class="md-ellipsis">
|
|
4972
|
+
|
|
4973
|
+
What a template can reference
|
|
4974
|
+
|
|
4975
|
+
</span>
|
|
4976
|
+
</a>
|
|
4977
|
+
|
|
4978
|
+
</li>
|
|
4979
|
+
|
|
4980
|
+
<li class="md-nav__item">
|
|
4981
|
+
<a href="#unsupported-syntax" class="md-nav__link">
|
|
4982
|
+
<span class="md-ellipsis">
|
|
4983
|
+
|
|
4984
|
+
Unsupported syntax
|
|
4985
|
+
|
|
4986
|
+
</span>
|
|
4987
|
+
</a>
|
|
4988
|
+
|
|
4989
|
+
</li>
|
|
4990
|
+
|
|
4991
|
+
</ul>
|
|
4992
|
+
</nav>
|
|
4993
|
+
|
|
4520
4994
|
</li>
|
|
4521
4995
|
|
|
4522
4996
|
</ul>
|
|
@@ -4609,17 +5083,17 @@
|
|
|
4609
5083
|
<p>Naming and location conventions:</p>
|
|
4610
5084
|
<ul>
|
|
4611
5085
|
<li><code><plugin_name>/lib/<plugin_name>.rb</code></li>
|
|
4612
|
-
<li>The plugin
|
|
5086
|
+
<li>The plugin’s class name must be the camelized version (a.k.a. "bumpy case")
|
|
4613
5087
|
of the plugin filename — <code>whiz_bang.rb</code> ➡️ <code>WhizBang</code>.</li>
|
|
4614
5088
|
</ul>
|
|
4615
5089
|
<p>This plugin option allows full programmatic ability connected to any of a number
|
|
4616
5090
|
of predefined Ceedling build steps.</p>
|
|
4617
5091
|
<p>The contents of <code><plugin_name>.rb</code> must implement a class that subclasses
|
|
4618
|
-
<code>Plugin</code>, Ceedling
|
|
5092
|
+
<code>Plugin</code>, Ceedling’s plugin base class.</p>
|
|
4619
5093
|
<h2 id="example-plugin-subclass">Example <code>Plugin</code> subclass</h2>
|
|
4620
5094
|
<p>An incomplete <code>Plugin</code> subclass follows to illustrate the basics.</p>
|
|
4621
5095
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="c1"># whiz_bang/lib/whiz_bang.rb</span>
|
|
4622
|
-
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="nb">require</span><span class="w"> </span><span class="s1"
|
|
5096
|
+
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="nb">require</span><span class="w"> </span><span class="s1">'ceedling/plugins/plugin'</span>
|
|
4623
5097
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a>
|
|
4624
5098
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="k">class</span><span class="w"> </span><span class="nc">WhizBang</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="no">Plugin</span>
|
|
4625
5099
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">setup</span>
|
|
@@ -4698,7 +5172,7 @@ one difference.</p>
|
|
|
4698
5172
|
<p>In the <code>post_</code> hook, the <code>arg_hash</code> parameter will contain a <code>shell_result</code> key
|
|
4699
5173
|
whose associated value is itself a hash with the following contents:</p>
|
|
4700
5174
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="p">{</span>
|
|
4701
|
-
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="w"> </span><span class="ss">:output</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5175
|
+
<a id="__codelineno-3-2" name="__codelineno-3-2" href="#__codelineno-3-2"></a><span class="w"> </span><span class="ss">:output</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<Console output>"</span><span class="p">,</span><span class="w"> </span><span class="c1"># String holding any $stdout / redirected $stderr output</span>
|
|
4702
5176
|
<a id="__codelineno-3-3" name="__codelineno-3-3" href="#__codelineno-3-3"></a><span class="w"> </span><span class="ss">:status</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o"><</span><span class="no">Process</span><span class="o">::</span><span class="no">Status</span><span class="o">></span><span class="p">,</span><span class="w"> </span><span class="c1"># Ruby object of type Process::Status</span>
|
|
4703
5177
|
<a id="__codelineno-3-4" name="__codelineno-3-4" href="#__codelineno-3-4"></a><span class="w"> </span><span class="ss">:exit_code</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o"><</span><span class="n">int</span><span class="o">></span><span class="p">,</span><span class="w"> </span><span class="c1"># Command line exit code (extracted from :status object)</span>
|
|
4704
5178
|
<a id="__codelineno-3-5" name="__codelineno-3-5" href="#__codelineno-3-5"></a><span class="w"> </span><span class="ss">:time</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o"><</span><span class="n">float</span><span class="o">></span><span class="w"> </span><span class="c1"># Seconds elapsed for shell operation</span>
|
|
@@ -4708,7 +5182,7 @@ whose associated value is itself a hash with the following contents:</p>
|
|
|
4708
5182
|
<p class="admonition-title">Preprocessing Hook Limitations</p>
|
|
4709
5183
|
<p>Test preprocessing steps are quite sophisticated and involve various combinations
|
|
4710
5184
|
of tool executions. The <code>post_</code> preprocessing hooks do not include shell results.
|
|
4711
|
-
Future updates to Ceedling
|
|
5185
|
+
Future updates to Ceedling’s plugin system will create a more robust means of
|
|
4712
5186
|
attaching custom behaviors to test preprocessing or connecting your own
|
|
4713
5187
|
preprocessing pipeline with toolchains other than GCC.</p>
|
|
4714
5188
|
</div>
|
|
@@ -4721,11 +5195,11 @@ number of mocks in a test build.</p>
|
|
|
4721
5195
|
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
4722
5196
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
4723
5197
|
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="c1"># Filepath of header file to be preprocessed on its way to being mocked</span>
|
|
4724
|
-
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="ss">:header_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5198
|
+
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="ss">:header_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4725
5199
|
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="c1"># Filepath of processed header file</span>
|
|
4726
|
-
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="ss">:preprocessed_header_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5200
|
+
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="ss">:preprocessed_header_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4727
5201
|
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="w"> </span><span class="c1"># Filepath of tests C file the mock will be used by</span>
|
|
4728
|
-
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a><span class="w"> </span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5202
|
+
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a><span class="w"> </span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4729
5203
|
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a><span class="w"> </span><span class="c1"># List of flags to be provided to `cpp` GNU preprocessor tool</span>
|
|
4730
5204
|
<a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a><span class="w"> </span><span class="ss">:flags</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">flags</span><span class="o">>]</span><span class="p">,</span>
|
|
4731
5205
|
<a id="__codelineno-4-10" name="__codelineno-4-10" href="#__codelineno-4-10"></a><span class="w"> </span><span class="c1"># List of search paths to be provided to `cpp` GNU preprocessor tool</span>
|
|
@@ -4743,11 +5217,11 @@ files in a test build.</p>
|
|
|
4743
5217
|
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
4744
5218
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
4745
5219
|
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a><span class="w"> </span><span class="c1"># Filepath of C test file to be preprocessed on its way to being used to generate runner</span>
|
|
4746
|
-
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="ss">:test_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5220
|
+
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="ss">:test_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4747
5221
|
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="c1"># Filepath of processed tests file</span>
|
|
4748
|
-
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="ss">:preprocessed_test_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5222
|
+
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="ss">:preprocessed_test_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4749
5223
|
<a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="w"> </span><span class="c1"># Filepath of tests C file the mock will be used by</span>
|
|
4750
|
-
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5224
|
+
<a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4751
5225
|
<a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="w"> </span><span class="c1"># List of flags to be provided to `cpp` GNU preprocessor tool</span>
|
|
4752
5226
|
<a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="w"> </span><span class="ss">:flags</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">flags</span><span class="o">>]</span><span class="p">,</span>
|
|
4753
5227
|
<a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="w"> </span><span class="c1"># List of search paths to be provided to `cpp` GNU preprocessor tool</span>
|
|
@@ -4764,14 +5238,14 @@ build.</p>
|
|
|
4764
5238
|
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
4765
5239
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
4766
5240
|
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="w"> </span><span class="c1"># Filepath of the header file being mocked.</span>
|
|
4767
|
-
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="w"> </span><span class="ss">:header_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5241
|
+
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="w"> </span><span class="ss">:header_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4768
5242
|
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="c1"># Additional context passed by the calling function.</span>
|
|
4769
5243
|
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="w"> </span><span class="c1"># Ceedling passes the :test symbol by default while plugins may provide another</span>
|
|
4770
5244
|
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
4771
5245
|
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="w"> </span><span class="c1"># Filepath of the tests C file that references the requested mock</span>
|
|
4772
|
-
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="w"> </span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5246
|
+
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="w"> </span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4773
5247
|
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="w"> </span><span class="c1"># Filepath of the generated mock C code.</span>
|
|
4774
|
-
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a><span class="w"> </span><span class="ss">:output_path</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5248
|
+
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a><span class="w"> </span><span class="ss">:output_path</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span>
|
|
4775
5249
|
<a id="__codelineno-6-11" name="__codelineno-6-11" href="#__codelineno-6-11"></a><span class="p">}</span>
|
|
4776
5250
|
</code></pre></div>
|
|
4777
5251
|
<h2 id="plugin-hook-methods-pre_runner_generatearg_hash-and-post_runner_generatearg_hash"><code>Plugin</code> hook methods <code>pre_runner_generate(arg_hash)</code> and <code>post_runner_generate(arg_hash)</code></h2>
|
|
@@ -4786,42 +5260,90 @@ called a number of times equal to the number of test files in a test build.</p>
|
|
|
4786
5260
|
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="w"> </span><span class="c1"># Ceedling passes the :test symbol by default while plugins may provide another</span>
|
|
4787
5261
|
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
4788
5262
|
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="w"> </span><span class="c1"># Filepath of the tests C file.</span>
|
|
4789
|
-
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w"> </span><span class="ss">:test_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5263
|
+
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w"> </span><span class="ss">:test_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4790
5264
|
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="w"> </span><span class="c1"># Filepath of the test file to be processed (if preprocessing enabled, this is not the same as :test_file). </span>
|
|
4791
|
-
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="w"> </span><span class="ss">:input_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5265
|
+
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a><span class="w"> </span><span class="ss">:input_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
4792
5266
|
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="w"> </span><span class="c1"># Filepath of the generated tests runner file.</span>
|
|
4793
|
-
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="w"> </span><span class="ss">:runner_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2"
|
|
5267
|
+
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="w"> </span><span class="ss">:runner_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span>
|
|
4794
5268
|
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="p">}</span>
|
|
4795
5269
|
</code></pre></div>
|
|
4796
|
-
<h2 id="
|
|
4797
|
-
<p>
|
|
4798
|
-
|
|
4799
|
-
|
|
5270
|
+
<h2 id="delta-build-hooks">Delta build hooks</h2>
|
|
5271
|
+
<p>Ceedling skips work when nothing has changed. This is called a delta build.
|
|
5272
|
+
See <a href="../../getting-started/builds.html">Delta Builds</a> for the full picture.</p>
|
|
5273
|
+
<p>Three hook methods run before Ceedling checks delta build state for a
|
|
5274
|
+
target. Each one always runs, for every target, whether or not that target
|
|
5275
|
+
turns out to need rebuilding. A plugin uses one of these hooks to swap in
|
|
5276
|
+
its own tool for its own build context. Doing the swap here, not only in
|
|
5277
|
+
the matching <code>pre_*_execute</code> hook below, makes sure Ceedling’s delta build
|
|
5278
|
+
check sees the real tool. Otherwise a change to that tool’s own settings
|
|
5279
|
+
will not force a rebuild.</p>
|
|
5280
|
+
<h2 id="plugin-hook-method-pre_test_compile_registerarg_hash"><code>Plugin</code> hook method <code>pre_test_compile_register(arg_hash)</code></h2>
|
|
5281
|
+
<p>Test builds only, not release builds. Runs once per C file in a test build.
|
|
5282
|
+
Runs before Ceedling registers the file as a delta build target.</p>
|
|
4800
5283
|
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
4801
5284
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
4802
5285
|
<a id="__codelineno-8-2" name="__codelineno-8-2" href="#__codelineno-8-2"></a><span class="w"> </span><span class="ss">:tool</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
4803
|
-
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="w"> </span><span class="c1"># Hash holding compiler tool properties — see
|
|
5286
|
+
<a id="__codelineno-8-3" name="__codelineno-8-3" href="#__codelineno-8-3"></a><span class="w"> </span><span class="c1"># Hash holding compiler tool properties — see ':tools' in the Project Configuration Reference</span>
|
|
4804
5287
|
<a id="__codelineno-8-4" name="__codelineno-8-4" href="#__codelineno-8-4"></a><span class="w"> </span><span class="p">},</span>
|
|
4805
|
-
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="w"> </span><span class="c1"># Symbol of the operation being
|
|
5288
|
+
<a id="__codelineno-8-5" name="__codelineno-8-5" href="#__codelineno-8-5"></a><span class="w"> </span><span class="c1"># Symbol of the operation being considered, e.g. :compile or :assemble</span>
|
|
4806
5289
|
<a id="__codelineno-8-6" name="__codelineno-8-6" href="#__codelineno-8-6"></a><span class="w"> </span><span class="ss">:operation</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">operation</span><span class="o">></span><span class="p">,</span>
|
|
4807
|
-
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="w"> </span><span class="
|
|
4808
|
-
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="w"> </span><span class="
|
|
4809
|
-
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="w"> </span><span class="ss">:
|
|
4810
|
-
<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a><span class="w"> </span><span class="
|
|
4811
|
-
<a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a><span class="w"> </span><span class="ss">:
|
|
4812
|
-
<a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-12"></a><span class="w"> </span><span class="
|
|
4813
|
-
<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a><span class="
|
|
4814
|
-
|
|
4815
|
-
<
|
|
4816
|
-
<
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
<
|
|
4820
|
-
<a id="__codelineno-
|
|
4821
|
-
<a id="__codelineno-
|
|
4822
|
-
<a id="__codelineno-
|
|
4823
|
-
<a id="__codelineno-
|
|
4824
|
-
<a id="__codelineno-
|
|
5290
|
+
<a id="__codelineno-8-7" name="__codelineno-8-7" href="#__codelineno-8-7"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
5291
|
+
<a id="__codelineno-8-8" name="__codelineno-8-8" href="#__codelineno-8-8"></a><span class="w"> </span><span class="ss">:module_name</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<name>"</span><span class="p">,</span>
|
|
5292
|
+
<a id="__codelineno-8-9" name="__codelineno-8-9" href="#__codelineno-8-9"></a><span class="w"> </span><span class="ss">:source</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5293
|
+
<a id="__codelineno-8-10" name="__codelineno-8-10" href="#__codelineno-8-10"></a><span class="w"> </span><span class="ss">:object</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5294
|
+
<a id="__codelineno-8-11" name="__codelineno-8-11" href="#__codelineno-8-11"></a><span class="w"> </span><span class="ss">:flags</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">flags</span><span class="o">>]</span><span class="p">,</span>
|
|
5295
|
+
<a id="__codelineno-8-12" name="__codelineno-8-12" href="#__codelineno-8-12"></a><span class="w"> </span><span class="ss">:defines</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">defines</span><span class="o">>]</span>
|
|
5296
|
+
<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a><span class="p">}</span>
|
|
5297
|
+
</code></pre></div>
|
|
5298
|
+
<h2 id="plugin-hook-methods-pre_compile_executearg_hash-and-post_compile_executearg_hash"><code>Plugin</code> hook methods <code>pre_compile_execute(arg_hash)</code> and <code>post_compile_execute(arg_hash)</code></h2>
|
|
5299
|
+
<p>These methods are called before and after source file compilation. These are
|
|
5300
|
+
called in both test and release builds. This pair of methods is called a number
|
|
5301
|
+
of times equal to the number of C files in a test or release build.</p>
|
|
5302
|
+
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
5303
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
5304
|
+
<a id="__codelineno-9-2" name="__codelineno-9-2" href="#__codelineno-9-2"></a><span class="w"> </span><span class="ss">:tool</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5305
|
+
<a id="__codelineno-9-3" name="__codelineno-9-3" href="#__codelineno-9-3"></a><span class="w"> </span><span class="c1"># Hash holding compiler tool properties — see ':tools' in the Project Configuration Reference</span>
|
|
5306
|
+
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="p">},</span>
|
|
5307
|
+
<a id="__codelineno-9-5" name="__codelineno-9-5" href="#__codelineno-9-5"></a><span class="w"> </span><span class="c1"># Symbol of the operation being performed, e.g. :compile, :assemble or :link</span>
|
|
5308
|
+
<a id="__codelineno-9-6" name="__codelineno-9-6" href="#__codelineno-9-6"></a><span class="w"> </span><span class="ss">:operation</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">operation</span><span class="o">></span><span class="p">,</span>
|
|
5309
|
+
<a id="__codelineno-9-7" name="__codelineno-9-7" href="#__codelineno-9-7"></a><span class="w"> </span><span class="c1"># Additional context passed by the calling function.</span>
|
|
5310
|
+
<a id="__codelineno-9-8" name="__codelineno-9-8" href="#__codelineno-9-8"></a><span class="w"> </span><span class="c1"># Ceedling provides :test or :release by default while plugins may provide another.</span>
|
|
5311
|
+
<a id="__codelineno-9-9" name="__codelineno-9-9" href="#__codelineno-9-9"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
5312
|
+
<a id="__codelineno-9-10" name="__codelineno-9-10" href="#__codelineno-9-10"></a><span class="w"> </span><span class="c1"># Filepath of the input C file</span>
|
|
5313
|
+
<a id="__codelineno-9-11" name="__codelineno-9-11" href="#__codelineno-9-11"></a><span class="w"> </span><span class="ss">:source</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5314
|
+
<a id="__codelineno-9-12" name="__codelineno-9-12" href="#__codelineno-9-12"></a><span class="w"> </span><span class="c1"># Filepath of the output object file</span>
|
|
5315
|
+
<a id="__codelineno-9-13" name="__codelineno-9-13" href="#__codelineno-9-13"></a><span class="w"> </span><span class="ss">:object</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5316
|
+
<a id="__codelineno-9-14" name="__codelineno-9-14" href="#__codelineno-9-14"></a><span class="w"> </span><span class="c1"># List of flags to be provided to compiler tool</span>
|
|
5317
|
+
<a id="__codelineno-9-15" name="__codelineno-9-15" href="#__codelineno-9-15"></a><span class="w"> </span><span class="ss">:flags</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">flags</span><span class="o">>]</span><span class="p">,</span>
|
|
5318
|
+
<a id="__codelineno-9-16" name="__codelineno-9-16" href="#__codelineno-9-16"></a><span class="w"> </span><span class="c1"># List of search paths to be provided to compiler tool</span>
|
|
5319
|
+
<a id="__codelineno-9-17" name="__codelineno-9-17" href="#__codelineno-9-17"></a><span class="w"> </span><span class="ss">:search_paths</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">paths</span><span class="o">>]</span><span class="p">,</span>
|
|
5320
|
+
<a id="__codelineno-9-18" name="__codelineno-9-18" href="#__codelineno-9-18"></a><span class="w"> </span><span class="c1"># List of compilation symbols to be provided to compiler tool</span>
|
|
5321
|
+
<a id="__codelineno-9-19" name="__codelineno-9-19" href="#__codelineno-9-19"></a><span class="w"> </span><span class="ss">:defines</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">defines</span><span class="o">>]</span><span class="p">,</span>
|
|
5322
|
+
<a id="__codelineno-9-20" name="__codelineno-9-20" href="#__codelineno-9-20"></a><span class="w"> </span><span class="c1"># Filepath of the listing file, e.g. .lst file</span>
|
|
5323
|
+
<a id="__codelineno-9-21" name="__codelineno-9-21" href="#__codelineno-9-21"></a><span class="w"> </span><span class="ss">:list</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5324
|
+
<a id="__codelineno-9-22" name="__codelineno-9-22" href="#__codelineno-9-22"></a><span class="w"> </span><span class="c1"># Filepath of the dependencies file, e.g. .d file</span>
|
|
5325
|
+
<a id="__codelineno-9-23" name="__codelineno-9-23" href="#__codelineno-9-23"></a><span class="w"> </span><span class="ss">:dependencies</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span>
|
|
5326
|
+
<a id="__codelineno-9-24" name="__codelineno-9-24" href="#__codelineno-9-24"></a><span class="p">}</span>
|
|
5327
|
+
</code></pre></div>
|
|
5328
|
+
<h2 id="plugin-hook-method-pre_test_link_registerarg_hash"><code>Plugin</code> hook method <code>pre_test_link_register(arg_hash)</code></h2>
|
|
5329
|
+
<p>Test builds only, not release builds. Runs once per test executable in a
|
|
5330
|
+
test build. Runs before Ceedling registers the executable as a delta build
|
|
5331
|
+
target. See <a href="#delta-build-hooks">Delta build hooks</a> above for why this hook
|
|
5332
|
+
exists and when it runs.</p>
|
|
5333
|
+
<p>A plugin swapping in its own linker tool for its own build context should
|
|
5334
|
+
do so here, for the same reason described under <code>pre_test_compile_register</code>
|
|
5335
|
+
above. Because this hook always runs, it also gives a plugin a reliable
|
|
5336
|
+
place to note that its own build context ran at all, apart from whether
|
|
5337
|
+
anything actually needed relinking.</p>
|
|
5338
|
+
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
5339
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
5340
|
+
<a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span><span class="ss">:tool</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5341
|
+
<a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span><span class="c1"># Hash holding linker tool properties — see ':tools' in the Project Configuration Reference</span>
|
|
5342
|
+
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="p">},</span>
|
|
5343
|
+
<a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
5344
|
+
<a id="__codelineno-10-6" name="__codelineno-10-6" href="#__codelineno-10-6"></a><span class="w"> </span><span class="ss">:flags</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">flags</span><span class="o">>]</span><span class="p">,</span>
|
|
5345
|
+
<a id="__codelineno-10-7" name="__codelineno-10-7" href="#__codelineno-10-7"></a><span class="w"> </span><span class="ss">:executable</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span>
|
|
5346
|
+
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="p">}</span>
|
|
4825
5347
|
</code></pre></div>
|
|
4826
5348
|
<h2 id="plugin-hook-methods-pre_link_executearg_hash-and-post_link_executearg_hash"><code>Plugin</code> hook methods <code>pre_link_execute(arg_hash)</code> and <code>post_link_execute(arg_hash)</code></h2>
|
|
4827
5349
|
<p>These methods are called before and after linking an executable. These are
|
|
@@ -4830,27 +5352,58 @@ executable and each release artifact. This pair of methods is called a number
|
|
|
4830
5352
|
of times equal to the number of test files in a test build or release artifacts
|
|
4831
5353
|
in a release build.</p>
|
|
4832
5354
|
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
4833
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4834
|
-
<a id="__codelineno-
|
|
4835
|
-
<a id="__codelineno-
|
|
4836
|
-
<a id="__codelineno-
|
|
4837
|
-
<a id="__codelineno-
|
|
4838
|
-
<a id="__codelineno-
|
|
4839
|
-
<a id="__codelineno-
|
|
4840
|
-
<a id="__codelineno-
|
|
4841
|
-
<a id="__codelineno-
|
|
4842
|
-
<a id="__codelineno-
|
|
4843
|
-
<a id="__codelineno-
|
|
4844
|
-
<a id="__codelineno-
|
|
4845
|
-
<a id="__codelineno-
|
|
4846
|
-
<a id="__codelineno-
|
|
4847
|
-
<a id="__codelineno-
|
|
4848
|
-
<a id="__codelineno-
|
|
4849
|
-
<a id="__codelineno-
|
|
4850
|
-
<a id="__codelineno-
|
|
4851
|
-
<a id="__codelineno-
|
|
4852
|
-
<a id="__codelineno-
|
|
4853
|
-
<a id="__codelineno-
|
|
5355
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
5356
|
+
<a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span><span class="c1"># Hash holding linker tool properties.</span>
|
|
5357
|
+
<a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="w"> </span><span class="ss">:tool</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5358
|
+
<a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span><span class="c1"># Hash holding compiler tool properties — see ':tools' in the Project Configuration Reference</span>
|
|
5359
|
+
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span><span class="p">},</span>
|
|
5360
|
+
<a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="w"> </span><span class="c1"># Additional context passed by the calling function.</span>
|
|
5361
|
+
<a id="__codelineno-11-7" name="__codelineno-11-7" href="#__codelineno-11-7"></a><span class="w"> </span><span class="c1"># Ceedling provides :test or :release by default while plugins may provide another.</span>
|
|
5362
|
+
<a id="__codelineno-11-8" name="__codelineno-11-8" href="#__codelineno-11-8"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
5363
|
+
<a id="__codelineno-11-9" name="__codelineno-11-9" href="#__codelineno-11-9"></a><span class="w"> </span><span class="c1"># List of object files paths being linked, e.g. .o files</span>
|
|
5364
|
+
<a id="__codelineno-11-10" name="__codelineno-11-10" href="#__codelineno-11-10"></a><span class="w"> </span><span class="ss">:objects</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[]</span><span class="p">,</span>
|
|
5365
|
+
<a id="__codelineno-11-11" name="__codelineno-11-11" href="#__codelineno-11-11"></a><span class="w"> </span><span class="c1"># List of flags to be provided to linker tool</span>
|
|
5366
|
+
<a id="__codelineno-11-12" name="__codelineno-11-12" href="#__codelineno-11-12"></a><span class="w"> </span><span class="ss">:flags</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">flags</span><span class="o">>]</span><span class="p">,</span>
|
|
5367
|
+
<a id="__codelineno-11-13" name="__codelineno-11-13" href="#__codelineno-11-13"></a><span class="w"> </span><span class="c1"># Filepath of the output file, e.g. .out file</span>
|
|
5368
|
+
<a id="__codelineno-11-14" name="__codelineno-11-14" href="#__codelineno-11-14"></a><span class="w"> </span><span class="ss">:executable</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5369
|
+
<a id="__codelineno-11-15" name="__codelineno-11-15" href="#__codelineno-11-15"></a><span class="w"> </span><span class="c1"># Filepath of the map file, e.g. .map file</span>
|
|
5370
|
+
<a id="__codelineno-11-16" name="__codelineno-11-16" href="#__codelineno-11-16"></a><span class="w"> </span><span class="ss">:map</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5371
|
+
<a id="__codelineno-11-17" name="__codelineno-11-17" href="#__codelineno-11-17"></a><span class="w"> </span><span class="c1"># List of libraries to link, e.g. those passed to the (GNU) linker with -l</span>
|
|
5372
|
+
<a id="__codelineno-11-18" name="__codelineno-11-18" href="#__codelineno-11-18"></a><span class="w"> </span><span class="ss">:libraries</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">names</span><span class="o">>]</span><span class="p">,</span>
|
|
5373
|
+
<a id="__codelineno-11-19" name="__codelineno-11-19" href="#__codelineno-11-19"></a><span class="w"> </span><span class="c1"># List of libraries paths, e.g. the ones passed to the (GNU) linker with -L</span>
|
|
5374
|
+
<a id="__codelineno-11-20" name="__codelineno-11-20" href="#__codelineno-11-20"></a><span class="w"> </span><span class="ss">:libpaths</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[<</span><span class="n">paths</span><span class="o">>]</span>
|
|
5375
|
+
<a id="__codelineno-11-21" name="__codelineno-11-21" href="#__codelineno-11-21"></a><span class="p">}</span>
|
|
5376
|
+
</code></pre></div>
|
|
5377
|
+
<h2 id="plugin-hook-method-pre_test_fixture_registerarg_hash"><code>Plugin</code> hook method <code>pre_test_fixture_register(arg_hash)</code></h2>
|
|
5378
|
+
<p>Runs once per test executable. Runs before Ceedling registers the test run
|
|
5379
|
+
as a delta build target. See <a href="#delta-build-hooks">Delta build hooks</a> above
|
|
5380
|
+
for why this hook exists and when it runs.</p>
|
|
5381
|
+
<p>A plugin swapping in its own wrapper tool to run the test executable (as
|
|
5382
|
+
Valgrind does) should do so here, for the same reason described under
|
|
5383
|
+
<code>pre_test_compile_register</code> above. Otherwise a change to that wrapper tool’s own
|
|
5384
|
+
settings will not force a rerun.</p>
|
|
5385
|
+
<p>A wrapper tool runs the test executable as one of its own arguments. Ceedling
|
|
5386
|
+
places Unity’s test case filters (from <code>--test-case</code>, <code>--exclude_test_case</code>, and
|
|
5387
|
+
backtrace reruns) after the tool’s arguments, where the executable is.</p>
|
|
5388
|
+
<p>A crashed test executable reruns one test case at a time when
|
|
5389
|
+
<code>:use_backtrace</code> is <code>:simple</code>. By default the reruns go through Ceedling’s own
|
|
5390
|
+
backtrace tool, not a swapped wrapper. A wrapper the reruns should run through
|
|
5391
|
+
too (as the Sanitize plugin’s does, to keep its runtime options) sets
|
|
5392
|
+
<code>:backtrace_rerun => true</code> in its tool hash. Such a tool can't run under gdb, so
|
|
5393
|
+
<code>:gdb</code> backtraces fall back to <code>:simple</code> for it, with a notice. Leave the key out
|
|
5394
|
+
for a wrapper that writes one report per test, as Valgrind’s does, since each
|
|
5395
|
+
rerun would overwrite it.</p>
|
|
5396
|
+
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
5397
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
5398
|
+
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="w"> </span><span class="ss">:tool</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5399
|
+
<a id="__codelineno-12-3" name="__codelineno-12-3" href="#__codelineno-12-3"></a><span class="w"> </span><span class="c1"># Hash holding execution tool properties — see ':tools' in the Project Configuration Reference</span>
|
|
5400
|
+
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a><span class="w"> </span><span class="p">},</span>
|
|
5401
|
+
<a id="__codelineno-12-5" name="__codelineno-12-5" href="#__codelineno-12-5"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
5402
|
+
<a id="__codelineno-12-6" name="__codelineno-12-6" href="#__codelineno-12-6"></a><span class="w"> </span><span class="ss">:test_name</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<name>"</span><span class="p">,</span>
|
|
5403
|
+
<a id="__codelineno-12-7" name="__codelineno-12-7" href="#__codelineno-12-7"></a><span class="w"> </span><span class="c1"># The delta build target for this test run. A plugin can register its own</span>
|
|
5404
|
+
<a id="__codelineno-12-8" name="__codelineno-12-8" href="#__codelineno-12-8"></a><span class="w"> </span><span class="c1"># additional data against this same target — see Delta Builds.</span>
|
|
5405
|
+
<a id="__codelineno-12-9" name="__codelineno-12-9" href="#__codelineno-12-9"></a><span class="w"> </span><span class="ss">:target</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span>
|
|
5406
|
+
<a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a><span class="p">}</span>
|
|
4854
5407
|
</code></pre></div>
|
|
4855
5408
|
<h2 id="plugin-hook-methods-pre_test_fixture_executearg_hash-and-post_test_fixture_executearg_hash"><code>Plugin</code> hook methods <code>pre_test_fixture_execute(arg_hash)</code> and <code>post_test_fixture_execute(arg_hash)</code></h2>
|
|
4856
5409
|
<p>These methods are called before and after running a test executable. If a build
|
|
@@ -4858,23 +5411,56 @@ does not include tests, these are not called. This pair of methods is called
|
|
|
4858
5411
|
for each test executable in a build (each test file is ultimately built into a
|
|
4859
5412
|
test executable).</p>
|
|
4860
5413
|
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
4861
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4862
|
-
<a id="__codelineno-
|
|
4863
|
-
<a id="__codelineno-
|
|
4864
|
-
<a id="__codelineno-
|
|
4865
|
-
<a id="__codelineno-
|
|
4866
|
-
<a id="__codelineno-
|
|
4867
|
-
<a id="__codelineno-
|
|
4868
|
-
<a id="__codelineno-
|
|
4869
|
-
<a id="__codelineno-
|
|
4870
|
-
<a id="__codelineno-
|
|
4871
|
-
<a id="__codelineno-
|
|
4872
|
-
<a id="__codelineno-
|
|
4873
|
-
<a id="__codelineno-
|
|
4874
|
-
<a id="__codelineno-
|
|
4875
|
-
<a id="__codelineno-
|
|
4876
|
-
<a id="__codelineno-
|
|
4877
|
-
<a id="__codelineno-
|
|
5414
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
5415
|
+
<a id="__codelineno-13-2" name="__codelineno-13-2" href="#__codelineno-13-2"></a><span class="w"> </span><span class="c1"># Hash holding execution tool properties.</span>
|
|
5416
|
+
<a id="__codelineno-13-3" name="__codelineno-13-3" href="#__codelineno-13-3"></a><span class="w"> </span><span class="ss">:tool</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5417
|
+
<a id="__codelineno-13-4" name="__codelineno-13-4" href="#__codelineno-13-4"></a><span class="w"> </span><span class="c1"># Hash holding compiler tool properties — see ':tools' in the Project Configuration Reference</span>
|
|
5418
|
+
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a><span class="w"> </span><span class="p">},</span>
|
|
5419
|
+
<a id="__codelineno-13-6" name="__codelineno-13-6" href="#__codelineno-13-6"></a><span class="w"> </span><span class="c1"># Additional context passed by the calling function.</span>
|
|
5420
|
+
<a id="__codelineno-13-7" name="__codelineno-13-7" href="#__codelineno-13-7"></a><span class="w"> </span><span class="c1"># Ceedling provides :test or :release by default while plugins may provide another.</span>
|
|
5421
|
+
<a id="__codelineno-13-8" name="__codelineno-13-8" href="#__codelineno-13-8"></a><span class="w"> </span><span class="ss">:context</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="ss">:<</span><span class="n">context</span><span class="o">></span><span class="p">,</span>
|
|
5422
|
+
<a id="__codelineno-13-9" name="__codelineno-13-9" href="#__codelineno-13-9"></a><span class="w"> </span><span class="c1"># Name of the test file minus path and extension (`test/TestIness.c` -> 'TestIness')</span>
|
|
5423
|
+
<a id="__codelineno-13-10" name="__codelineno-13-10" href="#__codelineno-13-10"></a><span class="w"> </span><span class="ss">:test_name</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<name>"</span><span class="p">,</span>
|
|
5424
|
+
<a id="__codelineno-13-11" name="__codelineno-13-11" href="#__codelineno-13-11"></a><span class="w"> </span><span class="c1"># Filepath of original tests C file that became the test executable</span>
|
|
5425
|
+
<a id="__codelineno-13-12" name="__codelineno-13-12" href="#__codelineno-13-12"></a><span class="w"> </span><span class="ss">:test_filepath</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5426
|
+
<a id="__codelineno-13-13" name="__codelineno-13-13" href="#__codelineno-13-13"></a><span class="w"> </span><span class="c1"># Path to the tests executable file, e.g. .out file</span>
|
|
5427
|
+
<a id="__codelineno-13-14" name="__codelineno-13-14" href="#__codelineno-13-14"></a><span class="w"> </span><span class="ss">:executable</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span><span class="p">,</span>
|
|
5428
|
+
<a id="__codelineno-13-15" name="__codelineno-13-15" href="#__codelineno-13-15"></a><span class="w"> </span><span class="c1"># Path to the tests result file, e.g. .pass/.fail file</span>
|
|
5429
|
+
<a id="__codelineno-13-16" name="__codelineno-13-16" href="#__codelineno-13-16"></a><span class="w"> </span><span class="ss">:result_file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<filepath>"</span>
|
|
5430
|
+
<a id="__codelineno-13-17" name="__codelineno-13-17" href="#__codelineno-13-17"></a><span class="p">}</span>
|
|
5431
|
+
</code></pre></div>
|
|
5432
|
+
<h2 id="plugin-hook-method-explain_test_crasharg_hash"><code>Plugin</code> hook method <code>explain_test_crash(arg_hash)</code></h2>
|
|
5433
|
+
<p>Called when a test executable crashed, before Ceedling writes the crash as test
|
|
5434
|
+
failures. A plugin that recognizes the cause, such as a sanitizer’s report in the
|
|
5435
|
+
run’s output, sets <code>arg_hash[:explanation]</code> to a short message. That message
|
|
5436
|
+
replaces the generic crash message in the test’s failure, except with <code>:gdb</code>
|
|
5437
|
+
backtraces, whose failures carry gdb’s own trace. It also replaces Ceedling’s
|
|
5438
|
+
generic crash notice and its backtrace advice.</p>
|
|
5439
|
+
<p>Two optional keys shape the notice:</p>
|
|
5440
|
+
<ul>
|
|
5441
|
+
<li><code>:explanation_heading</code> completes its first line, “Test executable <code>x</code> …”.
|
|
5442
|
+
Without it, the line ends “crashed.”</li>
|
|
5443
|
+
<li><code>:explanation_details</code> lists lines that follow the cause, such as where a
|
|
5444
|
+
log is. The failure message adds them in parentheses.</li>
|
|
5445
|
+
</ul>
|
|
5446
|
+
<p>With <code>:use_backtrace</code> set to <code>:simple</code>, it is called again for each rerun that
|
|
5447
|
+
crashes, with that rerun’s own shell result, so each crashed test case can be
|
|
5448
|
+
explained on its own.</p>
|
|
5449
|
+
<p>The argument <code>arg_hash</code> holds the same keys as <code>pre_test_fixture_execute</code> above,
|
|
5450
|
+
plus:</p>
|
|
5451
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="n">arg_hash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
|
|
5452
|
+
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="w"> </span><span class="c1"># ...the keys above...</span>
|
|
5453
|
+
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="w"> </span><span class="c1"># The crashed run’s shell result -- see Command line tool shell results</span>
|
|
5454
|
+
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="w"> </span><span class="ss">:shell_result</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">...</span><span class="w"> </span><span class="p">},</span>
|
|
5455
|
+
<a id="__codelineno-14-5" name="__codelineno-14-5" href="#__codelineno-14-5"></a><span class="w"> </span><span class="c1"># Set by a plugin that recognizes the cause; nil otherwise</span>
|
|
5456
|
+
<a id="__codelineno-14-6" name="__codelineno-14-6" href="#__codelineno-14-6"></a><span class="w"> </span><span class="ss">:explanation</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="kp">nil</span><span class="p">,</span>
|
|
5457
|
+
<a id="__codelineno-14-7" name="__codelineno-14-7" href="#__codelineno-14-7"></a><span class="w"> </span><span class="c1"># True for the crash's main run, whose explanation reaches the crash notice;</span>
|
|
5458
|
+
<a id="__codelineno-14-8" name="__codelineno-14-8" href="#__codelineno-14-8"></a><span class="w"> </span><span class="c1"># false for a backtrace rerun</span>
|
|
5459
|
+
<a id="__codelineno-14-9" name="__codelineno-14-9" href="#__codelineno-14-9"></a><span class="w"> </span><span class="ss">:crash_notice</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="kp">true</span><span class="p">,</span>
|
|
5460
|
+
<a id="__codelineno-14-10" name="__codelineno-14-10" href="#__codelineno-14-10"></a><span class="w"> </span><span class="c1"># Optional, set alongside :explanation</span>
|
|
5461
|
+
<a id="__codelineno-14-11" name="__codelineno-14-11" href="#__codelineno-14-11"></a><span class="w"> </span><span class="ss">:explanation_details</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="kp">nil</span><span class="p">,</span>
|
|
5462
|
+
<a id="__codelineno-14-12" name="__codelineno-14-12" href="#__codelineno-14-12"></a><span class="w"> </span><span class="ss">:explanation_heading</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="kp">nil</span>
|
|
5463
|
+
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a><span class="p">}</span>
|
|
4878
5464
|
</code></pre></div>
|
|
4879
5465
|
<h2 id="plugin-hook-methods-pre_testtest-and-post_testtest"><code>Plugin</code> hook methods <code>pre_test(test)</code> and <code>post_test(test)</code></h2>
|
|
4880
5466
|
<p>These methods are called before and after performing all steps needed to run a
|
|
@@ -4889,6 +5475,10 @@ termination points, including early exit due to a build error.</p>
|
|
|
4889
5475
|
<p>The argument <code>context</code> is the build context symbol (e.g. <code>:test</code>, <code>:gcov</code>) that
|
|
4890
5476
|
was passed to <code>TestInvoker#setup_and_invoke</code>. This lets a plugin respond
|
|
4891
5477
|
differently depending on which kind of build triggered the pipeline.</p>
|
|
5478
|
+
<p>Each context also gets its own separate delta build cache. A plugin that
|
|
5479
|
+
runs its own build under a distinct context symbol keeps that build’s
|
|
5480
|
+
tracked state apart from ordinary test builds and from any other plugin’s
|
|
5481
|
+
builds. See <a href="../../getting-started/builds.html">Delta Builds</a> for more.</p>
|
|
4892
5482
|
<p>The argument <code>timestamp_s</code> is a floating-point stopwatch value in seconds
|
|
4893
5483
|
(from <code>SystemWrapper.time_stopwatch_s</code>). Compare the <code>pre_test_build</code> and
|
|
4894
5484
|
<code>post_test_build</code> timestamps to compute the total test build duration using
|
|
@@ -4918,27 +5508,27 @@ cases is not a build error.</p>
|
|
|
4918
5508
|
<p>This method is called when invoking the summary task, <code>ceedling summary</code>. This
|
|
4919
5509
|
method facilitates logging the results of the last build without running the
|
|
4920
5510
|
previous build again.</p>
|
|
4921
|
-
<h2 id="validating-a-plugins-tools">Validating a plugin
|
|
5511
|
+
<h2 id="validating-a-plugins-tools">Validating a plugin’s tools</h2>
|
|
4922
5512
|
<p>By default, Ceedling validates configured tools at startup according to a
|
|
4923
5513
|
simple setting within the tool definition. This works just fine for default
|
|
4924
5514
|
core tools and options. However, in the case of plugins, tools may not be even
|
|
4925
|
-
relevant to a plugin
|
|
5515
|
+
relevant to a plugin’s operation depending on its configurable options. It’s
|
|
4926
5516
|
a bit silly for a tool not needed by your project to fail validation if
|
|
4927
|
-
Ceedling can't find it in your <code>$PATH</code>. Similarly, it
|
|
5517
|
+
Ceedling can't find it in your <code>$PATH</code>. Similarly, it’s irresponsible to skip
|
|
4928
5518
|
validating a tool just because it may not be needed.</p>
|
|
4929
5519
|
<p>Ceedling provides optional, programmatic tool validation for these cases.
|
|
4930
|
-
<code>@ceedling[:tool_validator].validate()</code> can be forced to ignore a tool
|
|
5520
|
+
<code>@ceedling[:tool_validator].validate()</code> can be forced to ignore a tool’s
|
|
4931
5521
|
<code>required:</code> setting to validate it. In such a scenario, a plugin should
|
|
4932
5522
|
configure its own tools as <code>:optional => true</code> but forcibly validate them at
|
|
4933
|
-
plugin startup if the plugin
|
|
5523
|
+
plugin startup if the plugin’s configuration options require said tool.</p>
|
|
4934
5524
|
<p>An example from the <code>gcov</code> plugin illustrates this.</p>
|
|
4935
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4936
|
-
<a id="__codelineno-
|
|
4937
|
-
<a id="__codelineno-
|
|
4938
|
-
<a id="__codelineno-
|
|
4939
|
-
<a id="__codelineno-
|
|
4940
|
-
<a id="__codelineno-
|
|
4941
|
-
<a id="__codelineno-
|
|
5525
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a><span class="c1"># Validate gcov summary tool if coverage summaries are enabled (summaries rely on the `gcov` tool)</span>
|
|
5526
|
+
<a id="__codelineno-15-2" name="__codelineno-15-2" href="#__codelineno-15-2"></a><span class="k">if</span><span class="w"> </span><span class="n">summaries_enabled?</span><span class="p">(</span><span class="w"> </span><span class="vi">@project_config</span><span class="w"> </span><span class="p">)</span>
|
|
5527
|
+
<a id="__codelineno-15-3" name="__codelineno-15-3" href="#__codelineno-15-3"></a><span class="w"> </span><span class="vi">@ceedling</span><span class="o">[</span><span class="ss">:tool_validator</span><span class="o">].</span><span class="n">validate</span><span class="p">(</span>
|
|
5528
|
+
<a id="__codelineno-15-4" name="__codelineno-15-4" href="#__codelineno-15-4"></a><span class="w"> </span><span class="ss">tool</span><span class="p">:</span><span class="w"> </span><span class="no">TOOLS_GCOV_SUMMARY</span><span class="p">,</span><span class="w"> </span><span class="c1"># Tool defintion as Ruby hash</span>
|
|
5529
|
+
<a id="__codelineno-15-5" name="__codelineno-15-5" href="#__codelineno-15-5"></a><span class="w"> </span><span class="ss">boom</span><span class="p">:</span><span class="w"> </span><span class="kp">true</span><span class="w"> </span><span class="c1"># Ignore optional status (raise exception if invalid)</span>
|
|
5530
|
+
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a><span class="w"> </span><span class="p">)</span>
|
|
5531
|
+
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a><span class="k">end</span>
|
|
4942
5532
|
</code></pre></div>
|
|
4943
5533
|
<p>The tool <code>TOOLS_GCOV_SUMMARY</code> is defined with a Ruby hash in the plugin code.
|
|
4944
5534
|
It is configured with <code>:optional => true</code>. At plugin startup, configuration
|
|
@@ -4950,73 +5540,221 @@ utility method is available for this purpose.</p>
|
|
|
4950
5540
|
<p><code>@ceedling[:plugin_reportinator].assemble_test_results()</code></p>
|
|
4951
5541
|
<p>This method takes as an argument a list of results filepaths. These typically
|
|
4952
5542
|
correspond directly to the collection of test files Ceedling processed in a
|
|
4953
|
-
given test build. It
|
|
5543
|
+
given test build. It’s common for this list of filepaths to be assembled from
|
|
4954
5544
|
the <code>post_test_fixture_execute</code> build step execution hook.</p>
|
|
4955
5545
|
<p>The data that <code>assemble_test_results()</code> returns has a structure as follows. In
|
|
4956
5546
|
this example, actual results from a single, real test file are presented as
|
|
4957
5547
|
hash/array Ruby code with comments and with some edits to reduce line length.</p>
|
|
4958
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4959
|
-
<a id="__codelineno-
|
|
4960
|
-
<a id="__codelineno-
|
|
4961
|
-
<a id="__codelineno-
|
|
4962
|
-
<a id="__codelineno-
|
|
4963
|
-
<a id="__codelineno-
|
|
4964
|
-
<a id="__codelineno-
|
|
4965
|
-
<a id="__codelineno-
|
|
4966
|
-
<a id="__codelineno-
|
|
4967
|
-
<a id="__codelineno-
|
|
4968
|
-
<a id="__codelineno-
|
|
4969
|
-
<a id="__codelineno-
|
|
4970
|
-
<a id="__codelineno-
|
|
4971
|
-
<a id="__codelineno-
|
|
4972
|
-
<a id="__codelineno-
|
|
4973
|
-
<a id="__codelineno-
|
|
4974
|
-
<a id="__codelineno-
|
|
4975
|
-
<a id="__codelineno-
|
|
4976
|
-
<a id="__codelineno-
|
|
4977
|
-
<a id="__codelineno-
|
|
4978
|
-
<a id="__codelineno-
|
|
4979
|
-
<a id="__codelineno-
|
|
4980
|
-
<a id="__codelineno-
|
|
4981
|
-
<a id="__codelineno-
|
|
4982
|
-
<a id="__codelineno-
|
|
4983
|
-
<a id="__codelineno-
|
|
4984
|
-
<a id="__codelineno-
|
|
4985
|
-
<a id="__codelineno-
|
|
4986
|
-
<a id="__codelineno-
|
|
4987
|
-
<a id="__codelineno-
|
|
4988
|
-
<a id="__codelineno-
|
|
4989
|
-
<a id="__codelineno-
|
|
4990
|
-
<a id="__codelineno-
|
|
4991
|
-
<a id="__codelineno-
|
|
4992
|
-
<a id="__codelineno-
|
|
4993
|
-
<a id="__codelineno-
|
|
4994
|
-
<a id="__codelineno-
|
|
4995
|
-
<a id="__codelineno-
|
|
4996
|
-
<a id="__codelineno-
|
|
4997
|
-
<a id="__codelineno-
|
|
4998
|
-
<a id="__codelineno-
|
|
4999
|
-
<a id="__codelineno-
|
|
5000
|
-
<a id="__codelineno-
|
|
5001
|
-
<a id="__codelineno-
|
|
5002
|
-
<a id="__codelineno-
|
|
5003
|
-
<a id="__codelineno-
|
|
5004
|
-
<a id="__codelineno-
|
|
5005
|
-
<a id="__codelineno-
|
|
5006
|
-
<a id="__codelineno-
|
|
5007
|
-
<a id="__codelineno-
|
|
5008
|
-
<a id="__codelineno-
|
|
5009
|
-
<a id="__codelineno-
|
|
5010
|
-
<a id="__codelineno-
|
|
5011
|
-
<a id="__codelineno-
|
|
5012
|
-
<a id="__codelineno-
|
|
5013
|
-
<a id="__codelineno-
|
|
5014
|
-
<a id="__codelineno-
|
|
5015
|
-
<a id="__codelineno-
|
|
5016
|
-
<a id="__codelineno-
|
|
5017
|
-
<a id="__codelineno-
|
|
5018
|
-
<a id="__codelineno-
|
|
5548
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="p">{</span>
|
|
5549
|
+
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="w"> </span><span class="c1"># Associates each test executable (i.e. test file) with an execution run time</span>
|
|
5550
|
+
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="w"> </span><span class="ss">:times</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5551
|
+
<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a><span class="w"> </span><span class="s2">"test/TestUsartModel.c"</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">0</span><span class="o">.</span><span class="mi">21196400001645088</span>
|
|
5552
|
+
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a><span class="w"> </span><span class="p">},</span>
|
|
5553
|
+
<a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a>
|
|
5554
|
+
<a id="__codelineno-16-7" name="__codelineno-16-7" href="#__codelineno-16-7"></a><span class="w"> </span><span class="c1"># List of succeeding test cases, grouped by test file.</span>
|
|
5555
|
+
<a id="__codelineno-16-8" name="__codelineno-16-8" href="#__codelineno-16-8"></a><span class="w"> </span><span class="ss">:successes</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5556
|
+
<a id="__codelineno-16-9" name="__codelineno-16-9" href="#__codelineno-16-9"></a><span class="w"> </span><span class="p">{</span>
|
|
5557
|
+
<a id="__codelineno-16-10" name="__codelineno-16-10" href="#__codelineno-16-10"></a><span class="w"> </span><span class="ss">:source</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span><span class="ss">:file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test/TestUsartModel.c"</span><span class="p">,</span><span class="w"> </span><span class="ss">:dirname</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test"</span><span class="p">,</span><span class="w"> </span><span class="ss">:basename</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"TestUsartModel.c"</span><span class="p">},</span>
|
|
5558
|
+
<a id="__codelineno-16-11" name="__codelineno-16-11" href="#__codelineno-16-11"></a><span class="w"> </span><span class="ss">:collection</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5559
|
+
<a id="__codelineno-16-12" name="__codelineno-16-12" href="#__codelineno-16-12"></a><span class="w"> </span><span class="c1"># If Unity is configured to do so, it will output execution run time for each test case.</span>
|
|
5560
|
+
<a id="__codelineno-16-13" name="__codelineno-16-13" href="#__codelineno-16-13"></a><span class="w"> </span><span class="c1"># Ceedling creates a zero entry if the Unity option is not enabled.</span>
|
|
5561
|
+
<a id="__codelineno-16-14" name="__codelineno-16-14" href="#__codelineno-16-14"></a><span class="w"> </span><span class="p">{</span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"testCase1"</span><span class="p">,</span><span class="w"> </span><span class="ss">:line</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">17</span><span class="p">,</span><span class="w"> </span><span class="ss">:message</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">""</span><span class="p">,</span><span class="w"> </span><span class="ss">:unity_test_time</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">0</span><span class="o">.</span><span class="mi">0</span><span class="p">},</span>
|
|
5562
|
+
<a id="__codelineno-16-15" name="__codelineno-16-15" href="#__codelineno-16-15"></a><span class="w"> </span><span class="p">{</span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"testCase2"</span><span class="p">,</span><span class="w"> </span><span class="ss">:line</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">31</span><span class="p">,</span><span class="w"> </span><span class="ss">:message</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">""</span><span class="p">,</span><span class="w"> </span><span class="ss">:unity_test_time</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">0</span><span class="o">.</span><span class="mi">0</span><span class="p">}</span>
|
|
5563
|
+
<a id="__codelineno-16-16" name="__codelineno-16-16" href="#__codelineno-16-16"></a><span class="w"> </span><span class="o">]</span>
|
|
5564
|
+
<a id="__codelineno-16-17" name="__codelineno-16-17" href="#__codelineno-16-17"></a><span class="w"> </span><span class="p">}</span>
|
|
5565
|
+
<a id="__codelineno-16-18" name="__codelineno-16-18" href="#__codelineno-16-18"></a><span class="w"> </span><span class="o">]</span><span class="p">,</span>
|
|
5566
|
+
<a id="__codelineno-16-19" name="__codelineno-16-19" href="#__codelineno-16-19"></a>
|
|
5567
|
+
<a id="__codelineno-16-20" name="__codelineno-16-20" href="#__codelineno-16-20"></a><span class="w"> </span><span class="c1"># List of failing test cases, grouped by test file.</span>
|
|
5568
|
+
<a id="__codelineno-16-21" name="__codelineno-16-21" href="#__codelineno-16-21"></a><span class="w"> </span><span class="ss">:failures</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5569
|
+
<a id="__codelineno-16-22" name="__codelineno-16-22" href="#__codelineno-16-22"></a><span class="w"> </span><span class="p">{</span>
|
|
5570
|
+
<a id="__codelineno-16-23" name="__codelineno-16-23" href="#__codelineno-16-23"></a><span class="w"> </span><span class="ss">:source</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span><span class="ss">:file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test/TestUsartModel.c"</span><span class="p">,</span><span class="w"> </span><span class="ss">:dirname</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test"</span><span class="p">,</span><span class="w"> </span><span class="ss">:basename</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"TestUsartModel.c"</span><span class="p">},</span>
|
|
5571
|
+
<a id="__codelineno-16-24" name="__codelineno-16-24" href="#__codelineno-16-24"></a><span class="w"> </span><span class="ss">:collection</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5572
|
+
<a id="__codelineno-16-25" name="__codelineno-16-25" href="#__codelineno-16-25"></a><span class="w"> </span><span class="p">{</span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"testCase3"</span><span class="p">,</span><span class="w"> </span><span class="ss">:line</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">25</span><span class="p">,</span><span class="w"> </span><span class="ss">:message</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"<failure message>"</span><span class="p">,</span><span class="w"> </span><span class="ss">:unity_test_time</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">0</span><span class="o">.</span><span class="mi">0</span><span class="p">}</span>
|
|
5573
|
+
<a id="__codelineno-16-26" name="__codelineno-16-26" href="#__codelineno-16-26"></a><span class="w"> </span><span class="o">]</span>
|
|
5574
|
+
<a id="__codelineno-16-27" name="__codelineno-16-27" href="#__codelineno-16-27"></a><span class="w"> </span><span class="p">}</span>
|
|
5575
|
+
<a id="__codelineno-16-28" name="__codelineno-16-28" href="#__codelineno-16-28"></a><span class="w"> </span><span class="o">]</span><span class="p">,</span>
|
|
5576
|
+
<a id="__codelineno-16-29" name="__codelineno-16-29" href="#__codelineno-16-29"></a>
|
|
5577
|
+
<a id="__codelineno-16-30" name="__codelineno-16-30" href="#__codelineno-16-30"></a><span class="w"> </span><span class="c1"># List of ignored test cases, grouped by test file.</span>
|
|
5578
|
+
<a id="__codelineno-16-31" name="__codelineno-16-31" href="#__codelineno-16-31"></a><span class="w"> </span><span class="ss">:ignores</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5579
|
+
<a id="__codelineno-16-32" name="__codelineno-16-32" href="#__codelineno-16-32"></a><span class="w"> </span><span class="p">{</span>
|
|
5580
|
+
<a id="__codelineno-16-33" name="__codelineno-16-33" href="#__codelineno-16-33"></a><span class="w"> </span><span class="ss">:source</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span><span class="ss">:file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test/TestUsartModel.c"</span><span class="p">,</span><span class="w"> </span><span class="ss">:dirname</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test"</span><span class="p">,</span><span class="w"> </span><span class="ss">:basename</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"TestUsartModel.c"</span><span class="p">},</span>
|
|
5581
|
+
<a id="__codelineno-16-34" name="__codelineno-16-34" href="#__codelineno-16-34"></a><span class="w"> </span><span class="ss">:collection</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5582
|
+
<a id="__codelineno-16-35" name="__codelineno-16-35" href="#__codelineno-16-35"></a><span class="w"> </span><span class="p">{</span><span class="ss">:test</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"testCase4"</span><span class="p">,</span><span class="w"> </span><span class="ss">:line</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">39</span><span class="p">,</span><span class="w"> </span><span class="ss">:message</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">""</span><span class="p">,</span><span class="w"> </span><span class="ss">:unity_test_time</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">0</span><span class="o">.</span><span class="mi">0</span><span class="p">}</span>
|
|
5583
|
+
<a id="__codelineno-16-36" name="__codelineno-16-36" href="#__codelineno-16-36"></a><span class="w"> </span><span class="o">]</span>
|
|
5584
|
+
<a id="__codelineno-16-37" name="__codelineno-16-37" href="#__codelineno-16-37"></a><span class="w"> </span><span class="p">}</span>
|
|
5585
|
+
<a id="__codelineno-16-38" name="__codelineno-16-38" href="#__codelineno-16-38"></a><span class="w"> </span><span class="o">]</span><span class="p">,</span>
|
|
5586
|
+
<a id="__codelineno-16-39" name="__codelineno-16-39" href="#__codelineno-16-39"></a>
|
|
5587
|
+
<a id="__codelineno-16-40" name="__codelineno-16-40" href="#__codelineno-16-40"></a><span class="w"> </span><span class="c1"># List of strings printed to $stdout, grouped by test file.</span>
|
|
5588
|
+
<a id="__codelineno-16-41" name="__codelineno-16-41" href="#__codelineno-16-41"></a><span class="w"> </span><span class="ss">:stdout</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5589
|
+
<a id="__codelineno-16-42" name="__codelineno-16-42" href="#__codelineno-16-42"></a><span class="w"> </span><span class="p">{</span>
|
|
5590
|
+
<a id="__codelineno-16-43" name="__codelineno-16-43" href="#__codelineno-16-43"></a><span class="w"> </span><span class="ss">:source</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span><span class="ss">:file</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test/TestUsartModel.c"</span><span class="p">,</span><span class="w"> </span><span class="ss">:dirname</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"test"</span><span class="p">,</span><span class="w"> </span><span class="ss">:basename</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="s2">"TestUsartModel.c"</span><span class="p">},</span>
|
|
5591
|
+
<a id="__codelineno-16-44" name="__codelineno-16-44" href="#__codelineno-16-44"></a><span class="w"> </span><span class="c1"># Calls to print to $stdout are outside Unity’s scope, preventing attaching test file line numbers</span>
|
|
5592
|
+
<a id="__codelineno-16-45" name="__codelineno-16-45" href="#__codelineno-16-45"></a><span class="w"> </span><span class="ss">:collection</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="o">[</span>
|
|
5593
|
+
<a id="__codelineno-16-46" name="__codelineno-16-46" href="#__codelineno-16-46"></a><span class="w"> </span><span class="s2">"<$stdout string (e.g. printf() call)>"</span>
|
|
5594
|
+
<a id="__codelineno-16-47" name="__codelineno-16-47" href="#__codelineno-16-47"></a><span class="w"> </span><span class="o">]</span>
|
|
5595
|
+
<a id="__codelineno-16-48" name="__codelineno-16-48" href="#__codelineno-16-48"></a><span class="w"> </span><span class="p">}</span>
|
|
5596
|
+
<a id="__codelineno-16-49" name="__codelineno-16-49" href="#__codelineno-16-49"></a><span class="w"> </span><span class="o">]</span><span class="p">,</span>
|
|
5597
|
+
<a id="__codelineno-16-50" name="__codelineno-16-50" href="#__codelineno-16-50"></a>
|
|
5598
|
+
<a id="__codelineno-16-51" name="__codelineno-16-51" href="#__codelineno-16-51"></a><span class="w"> </span><span class="c1"># Test suite run stats</span>
|
|
5599
|
+
<a id="__codelineno-16-52" name="__codelineno-16-52" href="#__codelineno-16-52"></a><span class="w"> </span><span class="ss">:counts</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="p">{</span>
|
|
5600
|
+
<a id="__codelineno-16-53" name="__codelineno-16-53" href="#__codelineno-16-53"></a><span class="w"> </span><span class="ss">:total</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">4</span><span class="p">,</span>
|
|
5601
|
+
<a id="__codelineno-16-54" name="__codelineno-16-54" href="#__codelineno-16-54"></a><span class="w"> </span><span class="ss">:passed</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
|
|
5602
|
+
<a id="__codelineno-16-55" name="__codelineno-16-55" href="#__codelineno-16-55"></a><span class="w"> </span><span class="ss">:failed</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
|
|
5603
|
+
<a id="__codelineno-16-56" name="__codelineno-16-56" href="#__codelineno-16-56"></a><span class="w"> </span><span class="ss">:ignored</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">1</span><span class="p">,</span>
|
|
5604
|
+
<a id="__codelineno-16-57" name="__codelineno-16-57" href="#__codelineno-16-57"></a><span class="w"> </span><span class="ss">:stdout</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">1</span><span class="p">},</span>
|
|
5605
|
+
<a id="__codelineno-16-58" name="__codelineno-16-58" href="#__codelineno-16-58"></a>
|
|
5606
|
+
<a id="__codelineno-16-59" name="__codelineno-16-59" href="#__codelineno-16-59"></a><span class="w"> </span><span class="c1"># The sum of all test file execution run times</span>
|
|
5607
|
+
<a id="__codelineno-16-60" name="__codelineno-16-60" href="#__codelineno-16-60"></a><span class="w"> </span><span class="ss">:total_time</span><span class="w"> </span><span class="o">=></span><span class="w"> </span><span class="mi">0</span><span class="o">.</span><span class="mi">21196400001645088</span>
|
|
5608
|
+
<a id="__codelineno-16-61" name="__codelineno-16-61" href="#__codelineno-16-61"></a><span class="p">}</span>
|
|
5019
5609
|
</code></pre></div>
|
|
5610
|
+
<h2 id="test-results-report-templates">Test results report templates</h2>
|
|
5611
|
+
<p>Ceedling renders test results reports from templates. A plugin that prints test
|
|
5612
|
+
results supplies a template, and Ceedling compiles these templates with its own
|
|
5613
|
+
compiler rather than with ERB.</p>
|
|
5614
|
+
<p>ERB was removed as a Ceedling dependency in 1.2.0. The template language Ceedling
|
|
5615
|
+
accepts is now a deliberate subset of what ERB accepted. Every template Ceedling
|
|
5616
|
+
ships stays within that subset. A template written for an earlier Ceedling works
|
|
5617
|
+
unchanged if it does the same.</p>
|
|
5618
|
+
<h3 id="supplying-a-template">Supplying a template</h3>
|
|
5619
|
+
<p>A <code>ReportTestsStdoutPlugin</code> subclass supplies a template by overriding the private
|
|
5620
|
+
<code>load_template</code> method. That method returns the template as a String. The base
|
|
5621
|
+
class registers the template during <code>setup()</code> and owns every build step hook, so a
|
|
5622
|
+
subclass needs nothing else.</p>
|
|
5623
|
+
<p>The default <code>load_template</code> reads <code>assets/test_results.template</code> from the plugin’s
|
|
5624
|
+
own root path. It falls back to the historical <code>assets/template.erb</code> name when only
|
|
5625
|
+
that older file exists. A plugin shipping the old filename therefore keeps working.</p>
|
|
5626
|
+
<p>Every stock stdout report plugin uses the asset file default.
|
|
5627
|
+
<code>report_tests_pretty_stdout</code> has an empty subclass body.</p>
|
|
5628
|
+
<p>A template can also call its own plugin object. Ceedling’s system objects include
|
|
5629
|
+
each loaded plugin, named for it, so a template reaches its plugin as
|
|
5630
|
+
<code>@ceedling[:<plugin name>]</code>. <code>report_tests_gtestlike_stdout</code> and
|
|
5631
|
+
<code>report_tests_ide_stdout</code> work this way. Their templates hand results to plugin
|
|
5632
|
+
methods that build lines in Ruby. That keeps formatting logic testable and
|
|
5633
|
+
configurable. Gcov, Bullseye, and Valgrind render test results through whichever
|
|
5634
|
+
template is registered, so they get the same lines.</p>
|
|
5635
|
+
<p>A plugin can also render a template directly. <code>@ceedling[:plugin_reportinator]</code>
|
|
5636
|
+
exposes <code>run_report(template, hash)</code> for this. The Bullseye plugin uses it to
|
|
5637
|
+
render its coverage summary from <code>assets/coverage.template</code>.</p>
|
|
5638
|
+
<h3 id="supported-syntax">Supported syntax</h3>
|
|
5639
|
+
<p>Five constructs are available, and two of them carry nearly every template. A
|
|
5640
|
+
percent sign in column zero introduces a line of Ruby. A <code><%= expression %></code> tag
|
|
5641
|
+
inserts that expression’s value into the output.</p>
|
|
5642
|
+
<table>
|
|
5643
|
+
<thead>
|
|
5644
|
+
<tr>
|
|
5645
|
+
<th>Construct</th>
|
|
5646
|
+
<th>Effect</th>
|
|
5647
|
+
</tr>
|
|
5648
|
+
</thead>
|
|
5649
|
+
<tbody>
|
|
5650
|
+
<tr>
|
|
5651
|
+
<td><code>% ruby_code</code></td>
|
|
5652
|
+
<td>Executes the line as Ruby. Nothing is emitted.</td>
|
|
5653
|
+
</tr>
|
|
5654
|
+
<tr>
|
|
5655
|
+
<td><code>%%</code></td>
|
|
5656
|
+
<td>Emits one literal percent sign. Column zero only.</td>
|
|
5657
|
+
</tr>
|
|
5658
|
+
<tr>
|
|
5659
|
+
<td><code><%= expression %></code></td>
|
|
5660
|
+
<td>Emits the expression, converted with <code>to_s</code>.</td>
|
|
5661
|
+
</tr>
|
|
5662
|
+
<tr>
|
|
5663
|
+
<td><code><% ruby_code %></code></td>
|
|
5664
|
+
<td>Executes the code. Nothing is emitted.</td>
|
|
5665
|
+
</tr>
|
|
5666
|
+
<tr>
|
|
5667
|
+
<td><code><%# comment %></code></td>
|
|
5668
|
+
<td>Emits nothing.</td>
|
|
5669
|
+
</tr>
|
|
5670
|
+
</tbody>
|
|
5671
|
+
</table>
|
|
5672
|
+
<p>A percent sign is only special in column zero. Whitespace may follow it freely, so
|
|
5673
|
+
a template can indent Ruby lines to show nesting. A percent sign anywhere else on a
|
|
5674
|
+
line is literal text.</p>
|
|
5675
|
+
<p>All Ruby in a template shares one scope. A value assigned on a percent line is
|
|
5676
|
+
visible to every later line and tag, including across block boundaries.</p>
|
|
5677
|
+
<h3 id="newline-trimming">Newline trimming</h3>
|
|
5678
|
+
<p>A line whose first tag opens it and whose last tag closes it contributes no newline
|
|
5679
|
+
of its own. Text between those two tags does not change that. Every other line
|
|
5680
|
+
keeps its newline. Ceedling’s own templates depend on this behavior to control
|
|
5681
|
+
blank lines in report output.</p>
|
|
5682
|
+
<h3 id="what-a-template-can-reference">What a template can reference</h3>
|
|
5683
|
+
<p>Templates render against <code>PluginReportinator</code>’s own binding. The report data
|
|
5684
|
+
arrives as a local named <code>hash</code>. Global constants such as <code>TEST_SYM</code> resolve
|
|
5685
|
+
normally.</p>
|
|
5686
|
+
<p><code>@ceedling[:plugin_reportinator]</code> exposes several helpers intended for templates.</p>
|
|
5687
|
+
<table>
|
|
5688
|
+
<thead>
|
|
5689
|
+
<tr>
|
|
5690
|
+
<th>Helper</th>
|
|
5691
|
+
<th>Purpose</th>
|
|
5692
|
+
</tr>
|
|
5693
|
+
</thead>
|
|
5694
|
+
<tbody>
|
|
5695
|
+
<tr>
|
|
5696
|
+
<td><code>test_report_preamble(hash)</code></td>
|
|
5697
|
+
<td>Returns the counts and banner prefix every stdout report needs.</td>
|
|
5698
|
+
</tr>
|
|
5699
|
+
<tr>
|
|
5700
|
+
<td><code>generate_banner(text)</code></td>
|
|
5701
|
+
<td>Formats a section divider.</td>
|
|
5702
|
+
</tr>
|
|
5703
|
+
<tr>
|
|
5704
|
+
<td><code>generate_heading(text)</code></td>
|
|
5705
|
+
<td>Formats a heading.</td>
|
|
5706
|
+
</tr>
|
|
5707
|
+
<tr>
|
|
5708
|
+
<td><code>reflow_message(message, continuation_prefix)</code></td>
|
|
5709
|
+
<td>Indents the second and later lines of a multi-line message.</td>
|
|
5710
|
+
</tr>
|
|
5711
|
+
<tr>
|
|
5712
|
+
<td><code>decorate_summary_banner(text, failed_count)</code></td>
|
|
5713
|
+
<td>Colors a summary banner by outcome.</td>
|
|
5714
|
+
</tr>
|
|
5715
|
+
</tbody>
|
|
5716
|
+
</table>
|
|
5717
|
+
<h3 id="unsupported-syntax">Unsupported syntax</h3>
|
|
5718
|
+
<p>Four ERB constructs are unavailable. A template relying on any of them needs
|
|
5719
|
+
revision.</p>
|
|
5720
|
+
<table>
|
|
5721
|
+
<thead>
|
|
5722
|
+
<tr>
|
|
5723
|
+
<th>Construct</th>
|
|
5724
|
+
<th>Behavior</th>
|
|
5725
|
+
</tr>
|
|
5726
|
+
</thead>
|
|
5727
|
+
<tbody>
|
|
5728
|
+
<tr>
|
|
5729
|
+
<td><code>-%></code></td>
|
|
5730
|
+
<td>Raises <code>SyntaxError</code>. ERB offered this only under a trim mode Ceedling never used.</td>
|
|
5731
|
+
</tr>
|
|
5732
|
+
<tr>
|
|
5733
|
+
<td><code><%%</code></td>
|
|
5734
|
+
<td>Not an escape. The characters are not translated to a literal <code><%</code>.</td>
|
|
5735
|
+
</tr>
|
|
5736
|
+
<tr>
|
|
5737
|
+
<td>A tag spanning lines</td>
|
|
5738
|
+
<td>Raises <code>CeedlingException</code> naming the template line.</td>
|
|
5739
|
+
</tr>
|
|
5740
|
+
<tr>
|
|
5741
|
+
<td>A tag never closed on its line</td>
|
|
5742
|
+
<td>Raises <code>CeedlingException</code> naming the template line.</td>
|
|
5743
|
+
</tr>
|
|
5744
|
+
</tbody>
|
|
5745
|
+
</table>
|
|
5746
|
+
<p>The last two are deliberate. ERB accepted a multi-line tag. ERB also responded to
|
|
5747
|
+
an unclosed tag by treating the rest of the template as Ruby, which produced
|
|
5748
|
+
garbled output rather than an error. Naming the offending line is more useful to a
|
|
5749
|
+
template author than either behavior.</p>
|
|
5750
|
+
<div class="admonition warning">
|
|
5751
|
+
<p class="admonition-title">Porting a template written for ERB</p>
|
|
5752
|
+
<p>Ceedling’s own templates never used the unsupported constructs above, and
|
|
5753
|
+
neither did any template this project has seen. Check a template against the
|
|
5754
|
+
table before assuming it needs no changes. A Ruby error inside a template
|
|
5755
|
+
reports its location as <code>(ceedling template):<line></code>, where the line number is
|
|
5756
|
+
the template’s own.</p>
|
|
5757
|
+
</div>
|
|
5020
5758
|
<p><br/><br/></p>
|
|
5021
5759
|
|
|
5022
5760
|
|
|
@@ -5088,10 +5826,10 @@ hash/array Ruby code with comments and with some edits to reduce line length.</p
|
|
|
5088
5826
|
|
|
5089
5827
|
|
|
5090
5828
|
|
|
5091
|
-
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.
|
|
5829
|
+
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
|
|
5092
5830
|
|
|
5093
5831
|
|
|
5094
|
-
<script src="../../assets/javascripts/bundle.
|
|
5832
|
+
<script src="../../assets/javascripts/bundle.c21346df.min.js"></script>
|
|
5095
5833
|
|
|
5096
5834
|
|
|
5097
5835
|
</body>
|