ceedling 1.1.10 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec +3 -0
- data/.simplecov +73 -0
- data/GIT_COMMIT_SHA +1 -1
- data/Gemfile +84 -8
- data/Gemfile.lock +38 -8
- data/README.md +51 -29
- data/Rakefile +768 -16
- data/assets/{project.yml → features/project.yml} +4 -1
- data/assets/fixtures/bullseye_branch_coverage/src/branchy.c +24 -0
- data/assets/fixtures/bullseye_branch_coverage/src/branchy.h +14 -0
- data/assets/fixtures/bullseye_branch_coverage/test/test_branchy.c +18 -0
- data/assets/fixtures/cppcheck_findings/findings.c +23 -0
- data/assets/fixtures/cppcheck_findings/findings.h +13 -0
- data/assets/fixtures/header_include_path_validation/alt_drivers/foo.h +6 -0
- data/assets/fixtures/header_include_path_validation/bar.h +6 -0
- data/assets/fixtures/header_include_path_validation/drivers/foo.h +6 -0
- data/assets/fixtures/header_include_path_validation/dup.h +6 -0
- data/assets/fixtures/header_include_path_validation/other_inc/dup.h +6 -0
- data/assets/fixtures/header_include_path_validation/test_ambiguous_mock.c +15 -0
- data/assets/fixtures/header_include_path_validation/test_bare_mock.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_bogus_mock_path.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_bogus_vanilla_path.c +10 -0
- data/assets/fixtures/header_include_path_validation/test_include_outranks_test_include_path.c +16 -0
- data/assets/fixtures/header_include_path_validation/test_pathed_mock.c +11 -0
- data/assets/fixtures/header_include_path_validation/test_pathed_mock_ambiguous.c +14 -0
- data/assets/fixtures/header_include_path_validation/test_test_include_path_outranks_include.c +17 -0
- data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.h +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/beta/dup.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/beta/dup.h +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/gamma/dup_gamma.c +6 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_alpha.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_bare.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_beta.c +10 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_override.c +19 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive.c +19 -0
- data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive_noop.c +16 -0
- data/assets/fixtures/parent_directory_references/alpha/extra.c +4 -0
- data/assets/fixtures/parent_directory_references/common/helper.c +6 -0
- data/assets/fixtures/parent_directory_references/common/helper.h +6 -0
- data/assets/fixtures/parent_directory_references/unit/test_dotdot_include.c +10 -0
- data/assets/fixtures/parent_directory_references/unit/test_dotdot_source.c +16 -0
- data/assets/fixtures/plain_inline_module.h +9 -0
- data/assets/fixtures/same_named_modules/include/drivers/spi/config.h +6 -0
- data/assets/fixtures/same_named_modules/include/drivers/uart/config.h +6 -0
- data/assets/fixtures/same_named_modules/src/drivers/spi/config.c +8 -0
- data/assets/fixtures/same_named_modules/src/drivers/uart/config.c +10 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs.c +26 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs_mocked.c +20 -0
- data/assets/fixtures/same_named_modules/test/test_both_configs_mocked_traditional.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_both_modules.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_uart_config_bare.c +19 -0
- data/assets/fixtures/same_named_modules/test/test_uart_config_partial_only.c +20 -0
- data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.c +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.h +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.c +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.h +6 -0
- data/assets/fixtures/sources_with_duplicate_basenames/main.c +11 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_baz_bar.c +10 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_both_bars.c +12 -0
- data/assets/fixtures/sources_with_duplicate_basenames/test_foo_bar.c +10 -0
- data/assets/{test_example_file_boom.c → fixtures/test_nosanitize_boom.c} +9 -0
- data/assets/{test_example_file_crash_assert.c → fixtures/test_nosanitize_crash_assert.c} +8 -0
- data/assets/{test_example_file_crash_sigsegv.c → fixtures/test_nosanitize_crash_sigsegv.c} +8 -0
- data/assets/{test_example_file_crash_sigsegv_with_param.c → fixtures/test_nosanitize_crash_sigsegv_with_param.c} +8 -0
- data/assets/fixtures/test_nosanitize_heap_buffer_overflow.c +31 -0
- data/assets/fixtures/test_nosanitize_leak.c +34 -0
- data/assets/fixtures/test_nosanitize_two_findings.c +36 -0
- data/assets/{test_example_file_ub_shift_overflow.c → fixtures/test_nosanitize_ub_shift_overflow.c} +9 -0
- data/assets/fixtures/test_plain_inline_module.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/alpha/calc.c +4 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/beta/calc.c +4 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_alpha.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_ambiguous.c +15 -0
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_beta.c +15 -0
- data/assets/fixtures/tests_with_conditional_includes/src/feature_extra2.h +13 -0
- data/assets/fixtures/tests_with_conditional_includes/src/macro_target_extra.h +13 -0
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.c +19 -3
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.h +1 -0
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.c +17 -1
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget.c +12 -4
- data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget_feature.c +8 -5
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.c +7 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.c +16 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/FeatureConfig.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/Gpt.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModuleConfig.h +17 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart1.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart2.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/drivers/widget.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/reader.c +7 -0
- data/assets/fixtures/tests_with_conditional_mocks/src/reader.h +6 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01.c +21 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01_legacy.c +16 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_02.c +31 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_FeatureConfig.c +15 -0
- data/assets/fixtures/tests_with_conditional_mocks/test/test_reader.c +13 -0
- data/assets/fixtures/tests_with_duplicate_test_names/integration/test_foo.c +21 -0
- data/assets/fixtures/tests_with_duplicate_test_names/unit/test_foo.c +21 -0
- data/assets/fixtures/tests_with_fallback_conditionals/src/conditional_module.c +28 -0
- data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/test/test_conditionals.c +8 -1
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_lower.s +2 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_upper.S +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.c +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.h +13 -0
- data/assets/fixtures/tests_with_multiple_assembly_extensions/test/test_counter_module.c +27 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/app/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/drivers/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.c +30 -0
- data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/src/shared/config.h +13 -0
- data/assets/fixtures/tests_with_subdir_includes/test/test_sensor.c +32 -0
- data/bin/actionator.rb +234 -0
- data/bin/app_cfg.rb +7 -0
- data/bin/cli.rb +78 -47
- data/bin/cli_handler.rb +89 -57
- data/bin/cli_helper.rb +90 -49
- data/bin/cli_options_transform.rb +22 -0
- data/bin/{configinator.rb → composinator.rb} +39 -32
- data/bin/mixin_resolvinator.rb +124 -0
- data/bin/mixin_standardizer.rb +31 -61
- data/bin/mixinator.rb +27 -29
- data/bin/mixins.rb +0 -5
- data/bin/objects.yml +20 -7
- data/bin/path_validator.rb +6 -5
- data/bin/projectinator.rb +51 -142
- data/bin/rake_patches.rb +36 -2
- data/bin/recursive_merger.rb +7 -1
- data/bin/versionator.rb +2 -3
- data/ceedling.gemspec +83 -12
- data/docs/BreakingChanges.md +46 -2
- data/docs/CONTRIBUTING.md +45 -29
- data/docs/CeedlingPullRequestChecklist.md +10 -9
- data/docs/Changelog.md +327 -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 +32 -0
- data/examples/temp_sensor/mixin/add_bullseye.yml +19 -0
- data/examples/wondrous_forest/README.md +3 -0
- data/examples/wondrous_forest/src/sensors/light/Calibration.c +21 -0
- data/examples/wondrous_forest/src/sensors/light/Calibration.h +14 -0
- data/examples/wondrous_forest/src/sensors/soil/Calibration.c +23 -0
- data/examples/wondrous_forest/src/sensors/soil/Calibration.h +14 -0
- data/examples/wondrous_forest/test/TestCalibration.c +39 -0
- data/lib/ceedling/batchinator.rb +81 -22
- data/lib/ceedling/c_extractor/README.md +61 -0
- data/lib/ceedling/c_extractor/c_extractor.rb +33 -2
- data/lib/ceedling/c_extractor/c_extractor_code_text.rb +18 -10
- data/lib/ceedling/c_extractor/c_extractor_constants.rb +10 -10
- data/lib/ceedling/c_extractor/c_extractor_declarations.rb +14 -14
- data/lib/ceedling/c_extractor/c_extractor_functions.rb +10 -13
- data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +77 -0
- data/lib/ceedling/c_extractor/c_extractor_types.rb +8 -5
- data/lib/ceedling/ceedling.h +33 -0
- data/lib/ceedling/config/config_matchinator.rb +36 -13
- data/lib/ceedling/config/configurator.rb +366 -530
- data/lib/ceedling/config/configurator_builder.rb +253 -365
- data/lib/ceedling/config/configurator_plugins.rb +68 -102
- data/lib/ceedling/config/configurator_setup.rb +343 -610
- data/lib/ceedling/config/configurator_validator.rb +114 -142
- data/lib/ceedling/config/line_marker_suppressors.rb +67 -0
- data/lib/ceedling/constants.rb +60 -6
- data/lib/ceedling/defaults.rb +28 -14
- data/lib/ceedling/defineinator.rb +9 -4
- data/lib/ceedling/dependencies/README.md +69 -0
- data/lib/ceedling/dependencies/dependency_cache_store.rb +160 -0
- data/lib/ceedling/dependencies/dependency_debug_tree.rb +129 -0
- data/lib/ceedling/dependencies/dependency_differ.rb +127 -0
- data/lib/ceedling/dependencies/dependency_hasher.rb +94 -0
- data/lib/ceedling/dependencies/dependency_path_normalizer.rb +80 -0
- data/lib/ceedling/dependencies/dependency_tracker.rb +405 -0
- data/lib/ceedling/dependencies/dependinator.rb +65 -0
- data/lib/ceedling/dependencies/gcc_dependency_parser.rb +86 -0
- data/lib/ceedling/encodinator.rb +23 -11
- data/lib/ceedling/file_finder.rb +373 -89
- data/lib/ceedling/file_finder_helper.rb +44 -33
- data/lib/ceedling/file_path_collection_utils.rb +17 -4
- data/lib/ceedling/file_path_utils.rb +310 -52
- data/lib/ceedling/file_wrapper.rb +245 -8
- data/lib/ceedling/filename_extension.rb +91 -0
- data/lib/ceedling/flaginator.rb +6 -2
- data/lib/ceedling/generators/generator.rb +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/rakefile.rb +2 -1
- data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
- data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
- data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
- data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
- data/lib/ceedling/rakefiles/tests/rules_tests.rake +43 -0
- data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +80 -0
- data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
- data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
- data/lib/ceedling/release_invoker/README.md +35 -0
- data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
- data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
- data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
- data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
- data/lib/ceedling/reportinator.rb +18 -2
- data/lib/ceedling/ruby_expandinator.rb +40 -1
- data/lib/ceedling/setupinator.rb +9 -3
- data/lib/ceedling/system_wrapper.rb +17 -0
- data/lib/ceedling/templateinator.rb +146 -0
- data/lib/ceedling/test_context_extractor.rb +59 -28
- data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
- data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
- data/lib/ceedling/test_invoker/README.md +6 -0
- data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
- data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
- data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
- data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
- data/lib/ceedling/test_invoker/test_build_executor.rb +783 -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 +70 -107
- data/plugins/bullseye/config/defaults.yml +12 -54
- data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
- data/plugins/bullseye/lib/bullseye.rb +511 -120
- data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
- data/plugins/command_hooks/lib/command_hooks.rb +117 -199
- data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
- data/plugins/cppcheck/config/defaults.yml +6 -1
- data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
- data/plugins/cppcheck/cppcheck.rake +7 -1
- data/plugins/cppcheck/lib/cppcheck.rb +175 -26
- data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
- data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
- data/plugins/dependencies/Rakefile +14 -2
- data/plugins/dependencies/config/defaults.yml +9 -6
- data/plugins/dependencies/dependencies.rake +46 -76
- data/plugins/dependencies/example/boss/project.yml +1 -1
- data/plugins/dependencies/example/supervisor/project.yml +1 -1
- data/plugins/dependencies/example/version.tar.gzip +0 -0
- data/plugins/dependencies/lib/dependencies.rb +232 -427
- data/plugins/dependencies/lib/dependency_commands.rb +72 -0
- data/plugins/dependencies/lib/dependency_environment.rb +57 -0
- data/plugins/dependencies/lib/dependency_spec.rb +145 -0
- data/plugins/fff/.rspec +1 -0
- data/plugins/fff/Rakefile +14 -2
- data/plugins/fff/examples/fff_example/project.yml +1 -1
- data/plugins/fff/lib/fff.rb +30 -9
- data/plugins/fff/lib/fff_mock_generator.rb +142 -128
- data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
- data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
- data/plugins/fff/spec/spec_helper.rb +45 -0
- data/plugins/fff/src/fff_unity_helper.h +5 -0
- data/plugins/fff/vendor/fff/fakegen.rb +5 -4
- data/plugins/fff/vendor/fff/fff.h +4 -4
- data/plugins/gcov/config/defaults.yml +5 -0
- data/plugins/gcov/gcov.rake +12 -8
- data/plugins/gcov/lib/console_reportinator.rb +140 -20
- data/plugins/gcov/lib/gcov.rb +155 -60
- data/plugins/gcov/lib/gcov_constants.rb +4 -7
- data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
- data/plugins/gcov/lib/gcov_types.rb +62 -1
- data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
- data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
- data/plugins/module_generator/Rakefile +4 -4
- data/plugins/module_generator/config/module_generator.yml +0 -1
- data/plugins/module_generator/example/project.yml +1 -1
- data/plugins/module_generator/lib/module_generator.rb +117 -87
- data/plugins/module_generator/lib/module_generator_options.rb +150 -0
- data/plugins/module_generator/lib/module_generator_project.rb +45 -0
- data/plugins/module_generator/lib/module_generator_request.rb +83 -0
- data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
- data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
- data/plugins/module_generator/module_generator.rake +24 -46
- data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
- data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
- data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
- data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
- data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
- data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
- data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
- data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
- data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
- data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
- data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
- data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
- data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
- data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
- data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
- data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
- data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
- data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
- data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
- data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
- data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
- data/plugins/sanitize/config/defaults.yml +44 -0
- data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
- data/plugins/sanitize/lib/sanitize.rb +174 -0
- data/plugins/sanitize/lib/sanitize_config.rb +110 -0
- data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
- data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
- data/plugins/sanitize/lib/sanitize_records.rb +115 -0
- data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
- data/plugins/sanitize/sanitize.rake +108 -0
- data/plugins/valgrind/config/defaults.yml +7 -1
- data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
- data/plugins/valgrind/lib/valgrind.rb +202 -39
- data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
- data/plugins/valgrind/lib/valgrind_report.rb +52 -0
- data/plugins/valgrind/valgrind.rake +33 -11
- data/site-local/404.html +248 -14
- data/site-local/configuration/environment-vars.html +248 -14
- data/site-local/configuration/global-collections.html +248 -19
- data/site-local/configuration/index.html +249 -15
- data/site-local/configuration/loading.html +260 -22
- data/site-local/configuration/mixins.html +252 -17
- data/site-local/configuration/parallel-builds.html +248 -14
- data/site-local/configuration/project-file.html +275 -30
- data/site-local/configuration/reference/cexception.html +255 -20
- data/site-local/configuration/reference/cmock.html +281 -14
- data/site-local/configuration/reference/defines.html +262 -19
- data/site-local/configuration/reference/environment.html +251 -17
- data/site-local/configuration/reference/extension.html +361 -16
- data/site-local/configuration/reference/files.html +262 -14
- data/site-local/configuration/reference/flags.html +270 -19
- data/site-local/configuration/reference/index.html +248 -14
- data/site-local/configuration/reference/libraries.html +248 -14
- data/site-local/configuration/reference/mixins.html +248 -14
- data/site-local/configuration/reference/partials.html +249 -19
- data/site-local/configuration/reference/paths.html +275 -15
- data/site-local/configuration/reference/plugins.html +248 -14
- data/site-local/configuration/reference/project.html +291 -14
- data/site-local/configuration/reference/release-build.html +256 -14
- data/site-local/configuration/reference/test-build.html +290 -24
- data/site-local/configuration/reference/test-runner.html +288 -17
- data/site-local/configuration/reference/tools.html +254 -14
- data/site-local/configuration/reference/unity.html +280 -15
- data/site-local/configuration/which-ceedling.html +248 -14
- data/site-local/development/index.html +254 -14
- data/site-local/development/plugins/configuration.html +269 -17
- data/site-local/development/plugins/index.html +267 -15
- data/site-local/development/plugins/plugin-subclass.html +906 -154
- data/site-local/development/plugins/rake-tasks.html +276 -14
- data/site-local/development/releases.html +4708 -0
- data/site-local/development/workflow.html +1030 -51
- data/site-local/getting-started/builds.html +4607 -0
- data/site-local/getting-started/command-line.html +418 -34
- data/site-local/getting-started/example-projects/cipher-quest.html +248 -14
- data/site-local/getting-started/example-projects/index.html +249 -15
- data/site-local/getting-started/example-projects/temp-sensor.html +248 -14
- data/site-local/getting-started/example-projects/wondrous-forest.html +248 -14
- data/site-local/getting-started/index.html +255 -14
- data/site-local/getting-started/installation.html +258 -22
- data/site-local/getting-started/quick-start.html +251 -15
- data/site-local/help.html +255 -14
- data/site-local/index.html +292 -22
- data/site-local/overview/build-system.html +249 -15
- data/site-local/overview/index.html +248 -14
- data/site-local/overview/test-environments.html +257 -14
- data/site-local/overview/tools-and-frameworks.html +248 -14
- data/site-local/plugins/beep.html +251 -14
- data/site-local/plugins/bullseye/index.html +5079 -0
- data/site-local/plugins/bullseye/licensing.html +4840 -0
- data/site-local/plugins/command-hooks.html +265 -27
- data/site-local/plugins/compile-commands-json-db.html +256 -17
- data/site-local/plugins/cppcheck.html +1081 -262
- data/site-local/plugins/dependencies.html +934 -242
- data/site-local/plugins/fff.html +296 -15
- data/site-local/plugins/gcov/examples.html +251 -14
- data/site-local/plugins/gcov/gcovr.html +567 -65
- data/site-local/plugins/gcov/index.html +251 -14
- data/site-local/plugins/gcov/overview.html +259 -18
- data/site-local/plugins/gcov/reportgenerator.html +386 -38
- data/site-local/plugins/gcov/reporting.html +348 -100
- data/site-local/plugins/gcov/setup.html +253 -15
- data/site-local/plugins/gcov/tool-versions.html +301 -19
- data/site-local/plugins/gcov/troubleshooting.html +273 -36
- data/site-local/plugins/index.html +294 -36
- data/site-local/plugins/module-generator.html +779 -195
- data/site-local/plugins/report-build-warnings-log.html +578 -33
- data/site-local/plugins/report-tests-gtestlike-stdout.html +467 -84
- data/site-local/plugins/report-tests-ide-stdout.html +654 -51
- data/site-local/plugins/report-tests-log-factory.html +337 -70
- data/site-local/plugins/report-tests-pretty-stdout.html +251 -14
- data/site-local/plugins/report-tests-raw-output-log.html +251 -14
- data/site-local/plugins/report-tests-teamcity-stdout.html +251 -14
- data/site-local/plugins/sanitize.html +5332 -0
- data/site-local/plugins/valgrind.html +416 -26
- data/site-local/{plugins/bullseye.html → project/index.html} +297 -217
- data/site-local/project/release-history.html +251 -17
- data/site-local/project/sbom.html +4726 -0
- data/site-local/project/upgrade.html +250 -16
- data/site-local/reference/build-directives.html +257 -14
- data/site-local/reference/command-line.html +373 -16
- data/site-local/reference/environment-vars.html +248 -14
- data/site-local/reference/gcov-plugin.html +492 -18
- data/site-local/reference/global-collections.html +249 -15
- data/site-local/reference/index.html +248 -14
- data/site-local/reference/partials-macros.html +258 -14
- data/site-local/reference/project-configuration.html +248 -14
- data/site-local/sitemap.xml.gz +0 -0
- data/{docs/mkdocs/snapshot/assets → site-local/snapshot/assets/features}/project.yml +4 -1
- data/site-local/snapshot/examples/cipher_quest/index.html +248 -14
- data/site-local/snapshot/examples/temp_sensor/index.html +248 -14
- data/site-local/snapshot/examples/wondrous_forest/index.html +265 -25
- data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
- data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
- data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
- data/site-local/testing-guide/build-directives.html +332 -22
- data/site-local/testing-guide/conventions.html +678 -153
- data/site-local/testing-guide/frameworks.html +248 -14
- data/site-local/testing-guide/index.html +248 -21
- data/site-local/testing-guide/partials/configuration.html +248 -14
- data/site-local/testing-guide/partials/conventions.html +316 -17
- data/site-local/testing-guide/partials/directives.html +456 -48
- data/site-local/testing-guide/partials/example.html +248 -14
- data/site-local/testing-guide/partials/index.html +255 -14
- data/site-local/testing-guide/partials/overview.html +248 -14
- data/site-local/testing-guide/partials/variables.html +248 -14
- data/site-local/testing-guide/test-cases.html +248 -14
- data/site-local/testing-guide/test-sample.html +248 -14
- data/site-local/testing-guide/test-suite-anatomy.html +248 -14
- data/spec/integration/actionator_file_operations_spec.rb +287 -0
- data/spec/integration/analysis_tool_output_spec.rb +204 -0
- data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
- data/spec/integration/command_hooks_plugin_spec.rb +152 -0
- data/spec/integration/compile_commands_json_db_spec.rb +76 -0
- data/spec/integration/configurator_pipeline_spec.rb +180 -0
- data/spec/integration/configurator_plugins_spec.rb +122 -0
- data/spec/integration/configurator_validation_spec.rb +98 -0
- data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
- data/spec/integration/dependencies/dependency_tracker_core_spec.rb +244 -0
- data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
- data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
- data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
- data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
- data/spec/integration/dependencies_plugin_spec.rb +473 -0
- data/spec/integration/erb_dependency_removed_spec.rb +167 -0
- data/spec/integration/includes_extraction_spec.rb +612 -0
- data/spec/integration/mixin_loading_spec.rb +414 -0
- data/spec/integration/module_generator_spec.rb +436 -0
- data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
- data/spec/integration/partials_header_composition_spec.rb +889 -0
- data/spec/integration/partials_module_resolution_spec.rb +372 -0
- data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
- data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
- data/spec/integration/quote_include_isolator_spec.rb +167 -0
- data/spec/integration/report_build_warnings_log_spec.rb +170 -0
- data/spec/integration/report_tests_log_factory_spec.rb +100 -0
- data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
- data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
- data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
- data/spec/integration/test_executable_manifest_spec.rb +118 -0
- data/spec/integration/test_includes_extractinator_spec.rb +293 -0
- data/spec/integration/tool_executor_spec.rb +224 -0
- data/spec/integration/tool_validator_spec.rb +133 -0
- data/spec/integration/vendor_copy_transient_io_retry_spec.rb +130 -0
- data/spec/manual/stress_test.rb +1 -1
- data/spec/support/config_yaml_helper.rb +17 -0
- data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
- data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
- data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
- data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
- data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
- data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
- data/spec/support/fixtures/templates/ide__empty.txt +8 -0
- data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
- data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
- data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
- data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
- data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
- data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
- data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
- data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
- data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
- data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
- data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
- data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
- data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
- data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
- data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
- data/spec/support/include_guard_helper.rb +20 -0
- data/spec/support/integration/configurator_integration_helper.rb +159 -0
- data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
- data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
- data/spec/support/integration/spec_integration_helper.rb +285 -0
- data/spec/support/integration/test_includes_harness.rb +259 -0
- data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
- data/spec/support/spec_helper.rb +41 -0
- data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
- data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
- data/spec/support/system/simplecov_boot.rb +66 -0
- data/spec/support/system/spec_system_helper.rb +376 -16
- data/spec/support/system/system_context.rb +181 -59
- data/spec/support/template_render_cases.rb +166 -0
- data/spec/system/bracket_path_handling_spec.rb +175 -0
- data/spec/system/build_output_mirroring_spec.rb +89 -0
- data/spec/system/build_recovery_spec.rb +382 -0
- data/spec/system/bullseye_deployment_spec.rb +102 -0
- data/spec/system/cli_surface_spec.rb +245 -0
- data/spec/system/command_hooks_spec.rb +117 -0
- data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
- data/spec/system/conditional_mock_includes_spec.rb +181 -0
- data/spec/system/cppcheck_deployment_spec.rb +26 -8
- data/spec/system/delta_builds_spec.rb +751 -0
- data/spec/system/deployment_as_gem_spec.rb +7 -0
- data/spec/system/deployment_as_vendor_spec.rb +29 -145
- data/spec/system/dumpconfig_spec.rb +137 -0
- data/spec/system/encoding_stress_spec.rb +7 -4
- data/spec/system/example_cipher_quest_spec.rb +25 -100
- data/spec/system/example_temp_sensor_spec.rb +30 -172
- data/spec/system/example_wondrous_forest_spec.rb +25 -62
- data/spec/system/extension_multiple_values_spec.rb +75 -0
- data/spec/system/files_paths_reporting_spec.rb +154 -0
- data/spec/system/gcov_deployment_spec.rb +72 -3
- data/spec/system/header_include_path_validation_spec.rb +222 -0
- data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
- data/spec/system/include_path_reconciliation_spec.rb +64 -0
- data/spec/system/mixin_ordering_spec.rb +30 -415
- data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
- data/spec/system/parent_directory_reference_spec.rb +114 -0
- data/spec/system/partials_module_disambiguation_spec.rb +143 -0
- data/spec/system/pinned_thread_count_spec.rb +102 -0
- data/spec/system/plugin_delta_builds_spec.rb +179 -0
- data/spec/system/preprocessing_encoding_spec.rb +87 -4
- data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
- data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
- data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
- data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
- data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
- data/spec/system/ruby_replacement_spec.rb +1 -1
- data/spec/system/same_named_modules_spec.rb +115 -0
- data/spec/system/sanitize_deployment_spec.rb +64 -0
- data/spec/system/shuffle_tests_spec.rb +139 -0
- data/spec/system/sibling_header_collision_spec.rb +620 -0
- data/spec/system/subdir_include_preservation_spec.rb +63 -0
- data/spec/system/support/bullseye_common_test_cases.rb +369 -0
- data/spec/system/support/bullseye_helpers.rb +70 -0
- data/spec/system/support/common_test_cases.rb +167 -43
- data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
- data/spec/system/support/cppcheck_helpers.rb +10 -8
- data/spec/system/support/gcov_common_test_cases.rb +173 -37
- data/spec/system/support/gcov_helpers.rb +3 -3
- data/spec/system/support/gcov_partials_test_cases.rb +48 -2
- data/spec/system/support/sanitize_common_test_cases.rb +222 -0
- data/spec/system/support/sanitize_helpers.rb +27 -0
- data/spec/system/support/valgrind_common_test_cases.rb +116 -16
- data/spec/system/support/valgrind_helpers.rb +3 -4
- data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
- data/spec/system/test_runner_system_include_spec.rb +19 -41
- data/spec/system/test_source_file_directive_spec.rb +235 -0
- data/spec/system/upgrade_as_vendor_spec.rb +25 -46
- data/spec/system/valgrind_deployment_spec.rb +41 -0
- data/spec/units/batchinator_spec.rb +314 -0
- data/spec/units/bin/actionator_spec.rb +412 -0
- data/spec/units/bin/app_cfg_spec.rb +90 -0
- data/spec/units/bin/cli_handler_spec.rb +204 -0
- data/spec/units/bin/cli_helper_spec.rb +238 -10
- data/spec/units/bin/cli_options_transform_spec.rb +49 -0
- data/spec/units/bin/composinator_spec.rb +236 -0
- data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
- data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
- data/spec/units/bin/mixinator_spec.rb +58 -22
- data/spec/units/bin/path_validator_spec.rb +112 -0
- data/spec/units/bin/projectinator_spec.rb +223 -0
- data/spec/units/bin/rake_patches_spec.rb +52 -0
- data/spec/units/bin/recursive_merger_spec.rb +22 -0
- data/spec/units/bin/versionator_spec.rb +104 -0
- data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
- data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
- data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
- data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
- data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
- data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
- data/spec/units/ceedling/templateinator_spec.rb +188 -0
- data/spec/units/config/configurator_builder_spec.rb +444 -0
- data/spec/units/config/configurator_plugins_spec.rb +160 -0
- data/spec/units/config/configurator_setup_spec.rb +706 -6
- data/spec/units/config/configurator_spec.rb +952 -0
- data/spec/units/config/configurator_validator_spec.rb +259 -0
- data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
- data/spec/units/config_matchinator_spec.rb +103 -0
- data/spec/units/defineinator_spec.rb +158 -0
- data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
- data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
- data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
- data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
- data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
- data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
- data/spec/units/dependencies/dependinator_spec.rb +99 -0
- data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
- data/spec/units/encodinator_spec.rb +92 -0
- data/spec/units/file_finder_helper_spec.rb +99 -15
- data/spec/units/file_finder_spec.rb +495 -0
- data/spec/units/file_path_collection_utils_spec.rb +9 -0
- data/spec/units/file_path_utils_spec.rb +736 -0
- data/spec/units/file_wrapper_spec.rb +447 -0
- data/spec/units/filename_extension_spec.rb +120 -0
- data/spec/units/flaginator_spec.rb +114 -0
- data/spec/units/generators/generator_helper_spec.rb +113 -0
- data/spec/units/generators/generator_mocks_spec.rb +131 -0
- data/spec/units/generators/generator_partials_spec.rb +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/release_build_executor_spec.rb +404 -0
- data/spec/units/release_build_planner_spec.rb +144 -0
- data/spec/units/release_invoker_spec.rb +127 -0
- data/spec/units/reportinator_spec.rb +35 -0
- data/spec/units/ruby_expandinator_spec.rb +36 -0
- data/spec/units/standin_headerinator_spec.rb +168 -0
- data/spec/units/system_wrapper_spec.rb +16 -0
- data/spec/units/test_build_executor_spec.rb +1653 -8
- data/spec/units/test_build_planner_spec.rb +878 -0
- data/spec/units/test_build_setup_spec.rb +583 -0
- data/spec/units/test_context_extractor_spec.rb +51 -3
- data/spec/units/test_file_preprocessinator_spec.rb +206 -0
- data/spec/units/test_includes_extractinator_spec.rb +764 -0
- data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
- data/spec/units/test_invoker_spec.rb +147 -0
- data/spec/units/test_invoker_types_spec.rb +182 -0
- data/spec/units/test_pipeline_helpers_spec.rb +100 -0
- data/spec/units/test_pipeline_manager_spec.rb +415 -0
- data/spec/units/test_runner_generatinator_spec.rb +215 -0
- data/spec/units/test_runner_manager_spec.rb +70 -0
- data/spec/units/test_search_paths_spec.rb +84 -0
- data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
- data/spec/units/tool_executor_helper_spec.rb +1 -1
- data/spec/units/tool_executor_spec.rb +571 -2
- data/spec/units/tool_validator_spec.rb +303 -24
- data/spec/units/version_spec.rb +74 -0
- data/spec/units/yaml_wrapper_spec.rb +4 -1
- data/vendor/cmock/docs/CMock_Summary.md +11 -0
- data/vendor/cmock/lib/cmock_config.rb +1 -0
- data/vendor/cmock/lib/cmock_generator.rb +5 -1
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
- data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
- data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
- data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
- data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
- data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
- data/vendor/cmock/vendor/unity/test/Makefile +9 -2
- data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
- data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
- data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
- data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
- data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
- data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
- data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
- data/vendor/diy/lib/diy/factory.rb +5 -4
- data/vendor/diy/lib/diy.rb +5 -4
- data/vendor/diy/sample_code/car.rb +5 -4
- data/vendor/diy/sample_code/chassis.rb +5 -4
- data/vendor/diy/sample_code/diy_example.rb +5 -4
- data/vendor/diy/sample_code/engine.rb +5 -4
- data/vendor/diy/sample_code/objects.yml +5 -4
- data/vendor/diy/test/constructor.rb +5 -4
- data/vendor/diy/test/diy_test.rb +5 -4
- data/vendor/diy/test/factory_test.rb +5 -4
- data/vendor/diy/test/files/broken_construction.yml +5 -4
- data/vendor/diy/test/files/cat/cat.rb +5 -4
- data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
- data/vendor/diy/test/files/cat/heritage.rb +5 -4
- data/vendor/diy/test/files/cat/needs_input.yml +5 -4
- data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
- data/vendor/diy/test/files/dog/dog_model.rb +5 -4
- data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
- data/vendor/diy/test/files/dog/dog_view.rb +5 -4
- data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
- data/vendor/diy/test/files/dog/other_thing.rb +5 -4
- data/vendor/diy/test/files/dog/simple.yml +5 -4
- data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
- data/vendor/diy/test/files/donkey/foo.rb +5 -4
- data/vendor/diy/test/files/factory/beef.rb +5 -4
- data/vendor/diy/test/files/factory/dog.rb +5 -4
- data/vendor/diy/test/files/factory/factory.yml +5 -4
- data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
- data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
- data/vendor/diy/test/files/factory/kitten.rb +5 -4
- data/vendor/diy/test/files/fud/objects.yml +5 -4
- data/vendor/diy/test/files/fud/toy.rb +5 -4
- data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
- data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
- data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
- data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
- data/vendor/diy/test/files/functions/objects.yml +5 -4
- data/vendor/diy/test/files/functions/thing.rb +5 -4
- data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
- data/vendor/diy/test/files/functions/things_builder.rb +5 -4
- data/vendor/diy/test/files/gnu/objects.yml +5 -4
- data/vendor/diy/test/files/gnu/thinger.rb +5 -4
- data/vendor/diy/test/files/goat/base.rb +5 -4
- data/vendor/diy/test/files/goat/can.rb +5 -4
- data/vendor/diy/test/files/goat/goat.rb +5 -4
- data/vendor/diy/test/files/goat/objects.yml +5 -4
- data/vendor/diy/test/files/goat/paper.rb +5 -4
- data/vendor/diy/test/files/goat/plane.rb +5 -4
- data/vendor/diy/test/files/goat/shirt.rb +5 -4
- data/vendor/diy/test/files/goat/wings.rb +5 -4
- data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
- data/vendor/diy/test/files/horse/objects.yml +5 -4
- data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
- data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
- data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
- data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
- data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
- data/vendor/diy/test/files/namespace/objects.yml +5 -4
- data/vendor/diy/test/files/namespace/road.rb +5 -4
- data/vendor/diy/test/files/namespace/sky.rb +5 -4
- data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
- data/vendor/diy/test/files/non_singleton/air.rb +5 -4
- data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
- data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
- data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
- data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
- data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
- data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
- data/vendor/diy/test/files/yak/core_model.rb +5 -4
- data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
- data/vendor/diy/test/files/yak/core_view.rb +5 -4
- data/vendor/diy/test/files/yak/data_source.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
- data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
- data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
- data/vendor/diy/test/files/yak/krill.rb +5 -4
- data/vendor/diy/test/files/yak/my_objects.yml +5 -4
- data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
- data/vendor/diy/test/test_helper.rb +5 -4
- data/vendor/unity/auto/generate_module.rb +4 -4
- data/vendor/unity/auto/generate_test_runner.rb +5 -1
- data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
- data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
- data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
- data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
- data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
- data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
- metadata +770 -287
- 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/rules_tests.rake +0 -40
- data/lib/ceedling/tasks_release.rake +0 -36
- data/plugins/fff/vendor/fff/Makefile +0 -10
- data/plugins/fff/vendor/fff/buildandtest +0 -15
- data/plugins/fff/vendor/fff/examples/Makefile +0 -7
- data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
- data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
- data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
- data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
- data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
- data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
- data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
- data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
- data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
- data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
- data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
- data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
- data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
- data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
- data/plugins/fff/vendor/fff/test/Makefile +0 -81
- data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
- data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
- data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
- data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
- data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
- data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
- data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
- data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
- data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
- data/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
|
@@ -89,10 +89,34 @@
|
|
|
89
89
|
</div>
|
|
90
90
|
<div data-md-component="announce">
|
|
91
91
|
|
|
92
|
+
<aside class="md-banner">
|
|
93
|
+
<div class="md-banner__inner md-grid md-typeset">
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
</aside>
|
|
101
|
+
|
|
92
102
|
</div>
|
|
93
103
|
|
|
94
104
|
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
|
|
95
105
|
|
|
106
|
+
<aside class="md-banner md-banner--warning">
|
|
107
|
+
<div class="md-banner__inner md-grid md-typeset">
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
You are not viewing the latest version.
|
|
111
|
+
<a href="../../..">
|
|
112
|
+
<strong>Click here to go to latest.</strong>
|
|
113
|
+
</a>
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
</div>
|
|
117
|
+
<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL("../.."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
|
|
118
|
+
</aside>
|
|
119
|
+
|
|
96
120
|
</div>
|
|
97
121
|
|
|
98
122
|
|
|
@@ -330,7 +354,7 @@
|
|
|
330
354
|
|
|
331
355
|
|
|
332
356
|
<li class="md-tabs__item">
|
|
333
|
-
<a href="../../project/
|
|
357
|
+
<a href="../../project/index.html" class="md-tabs__link">
|
|
334
358
|
|
|
335
359
|
|
|
336
360
|
|
|
@@ -641,6 +665,8 @@
|
|
|
641
665
|
|
|
642
666
|
|
|
643
667
|
|
|
668
|
+
|
|
669
|
+
|
|
644
670
|
|
|
645
671
|
|
|
646
672
|
|
|
@@ -788,6 +814,34 @@
|
|
|
788
814
|
|
|
789
815
|
|
|
790
816
|
|
|
817
|
+
<li class="md-nav__item">
|
|
818
|
+
<a href="../../getting-started/builds.html" class="md-nav__link">
|
|
819
|
+
|
|
820
|
+
|
|
821
|
+
|
|
822
|
+
<span class="md-ellipsis">
|
|
823
|
+
|
|
824
|
+
|
|
825
|
+
Builds
|
|
826
|
+
|
|
827
|
+
|
|
828
|
+
|
|
829
|
+
</span>
|
|
830
|
+
|
|
831
|
+
|
|
832
|
+
|
|
833
|
+
</a>
|
|
834
|
+
</li>
|
|
835
|
+
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
|
|
839
|
+
|
|
840
|
+
|
|
841
|
+
|
|
842
|
+
|
|
843
|
+
|
|
844
|
+
|
|
791
845
|
|
|
792
846
|
|
|
793
847
|
|
|
@@ -814,7 +868,7 @@
|
|
|
814
868
|
|
|
815
869
|
|
|
816
870
|
|
|
817
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
871
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
|
|
818
872
|
|
|
819
873
|
|
|
820
874
|
<div class="md-nav__link md-nav__container">
|
|
@@ -836,14 +890,14 @@
|
|
|
836
890
|
</a>
|
|
837
891
|
|
|
838
892
|
|
|
839
|
-
<label class="md-nav__link " for="
|
|
893
|
+
<label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
|
|
840
894
|
<span class="md-nav__icon md-icon"></span>
|
|
841
895
|
</label>
|
|
842
896
|
|
|
843
897
|
</div>
|
|
844
898
|
|
|
845
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
846
|
-
<label class="md-nav__title" for="
|
|
899
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
|
|
900
|
+
<label class="md-nav__title" for="__nav_3_6">
|
|
847
901
|
<span class="md-nav__icon md-icon"></span>
|
|
848
902
|
|
|
849
903
|
|
|
@@ -2410,6 +2464,8 @@
|
|
|
2410
2464
|
|
|
2411
2465
|
|
|
2412
2466
|
|
|
2467
|
+
|
|
2468
|
+
|
|
2413
2469
|
|
|
2414
2470
|
|
|
2415
2471
|
|
|
@@ -3041,8 +3097,61 @@
|
|
|
3041
3097
|
|
|
3042
3098
|
|
|
3043
3099
|
<li class="md-nav__item">
|
|
3044
|
-
<a href="../../plugins/
|
|
3100
|
+
<a href="../../plugins/sanitize.html" class="md-nav__link">
|
|
3101
|
+
|
|
3102
|
+
|
|
3103
|
+
|
|
3104
|
+
<span class="md-ellipsis">
|
|
3105
|
+
|
|
3106
|
+
|
|
3107
|
+
Sanitize (ASan, UBSan & Leaks)
|
|
3108
|
+
|
|
3109
|
+
|
|
3110
|
+
|
|
3111
|
+
</span>
|
|
3112
|
+
|
|
3113
|
+
|
|
3114
|
+
|
|
3115
|
+
</a>
|
|
3116
|
+
</li>
|
|
3117
|
+
|
|
3118
|
+
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
|
|
3124
|
+
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
|
|
3132
|
+
|
|
3133
|
+
|
|
3134
|
+
|
|
3135
|
+
|
|
3136
|
+
|
|
3137
|
+
|
|
3138
|
+
|
|
3139
|
+
|
|
3140
|
+
|
|
3141
|
+
|
|
3142
|
+
|
|
3143
|
+
|
|
3144
|
+
|
|
3145
|
+
<li class="md-nav__item md-nav__item--nested">
|
|
3146
|
+
|
|
3147
|
+
|
|
3148
|
+
|
|
3149
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
|
|
3045
3150
|
|
|
3151
|
+
|
|
3152
|
+
<div class="md-nav__link md-nav__container">
|
|
3153
|
+
<a href="../../plugins/bullseye/index.html" class="md-nav__link ">
|
|
3154
|
+
|
|
3046
3155
|
|
|
3047
3156
|
|
|
3048
3157
|
<span class="md-ellipsis">
|
|
@@ -3052,6 +3161,50 @@
|
|
|
3052
3161
|
|
|
3053
3162
|
|
|
3054
3163
|
|
|
3164
|
+
</span>
|
|
3165
|
+
|
|
3166
|
+
|
|
3167
|
+
|
|
3168
|
+
</a>
|
|
3169
|
+
|
|
3170
|
+
|
|
3171
|
+
<label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="0">
|
|
3172
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3173
|
+
</label>
|
|
3174
|
+
|
|
3175
|
+
</div>
|
|
3176
|
+
|
|
3177
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
|
|
3178
|
+
<label class="md-nav__title" for="__nav_6_13">
|
|
3179
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3180
|
+
|
|
3181
|
+
|
|
3182
|
+
Bullseye (Coverage)
|
|
3183
|
+
|
|
3184
|
+
|
|
3185
|
+
</label>
|
|
3186
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
3187
|
+
|
|
3188
|
+
|
|
3189
|
+
|
|
3190
|
+
|
|
3191
|
+
|
|
3192
|
+
|
|
3193
|
+
|
|
3194
|
+
|
|
3195
|
+
|
|
3196
|
+
<li class="md-nav__item">
|
|
3197
|
+
<a href="../../plugins/bullseye/licensing.html" class="md-nav__link">
|
|
3198
|
+
|
|
3199
|
+
|
|
3200
|
+
|
|
3201
|
+
<span class="md-ellipsis">
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
Licensing
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
|
|
3055
3208
|
</span>
|
|
3056
3209
|
|
|
3057
3210
|
|
|
@@ -3062,6 +3215,14 @@
|
|
|
3062
3215
|
|
|
3063
3216
|
|
|
3064
3217
|
|
|
3218
|
+
</ul>
|
|
3219
|
+
</nav>
|
|
3220
|
+
|
|
3221
|
+
</li>
|
|
3222
|
+
|
|
3223
|
+
|
|
3224
|
+
|
|
3225
|
+
|
|
3065
3226
|
|
|
3066
3227
|
|
|
3067
3228
|
|
|
@@ -3531,6 +3692,12 @@
|
|
|
3531
3692
|
|
|
3532
3693
|
|
|
3533
3694
|
|
|
3695
|
+
|
|
3696
|
+
|
|
3697
|
+
|
|
3698
|
+
|
|
3699
|
+
|
|
3700
|
+
|
|
3534
3701
|
|
|
3535
3702
|
|
|
3536
3703
|
|
|
@@ -3550,8 +3717,9 @@
|
|
|
3550
3717
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
|
|
3551
3718
|
|
|
3552
3719
|
|
|
3553
|
-
<
|
|
3554
|
-
|
|
3720
|
+
<div class="md-nav__link md-nav__container">
|
|
3721
|
+
<a href="../../project/index.html" class="md-nav__link ">
|
|
3722
|
+
|
|
3555
3723
|
|
|
3556
3724
|
|
|
3557
3725
|
<span class="md-ellipsis">
|
|
@@ -3565,8 +3733,14 @@
|
|
|
3565
3733
|
|
|
3566
3734
|
|
|
3567
3735
|
|
|
3568
|
-
|
|
3569
|
-
|
|
3736
|
+
</a>
|
|
3737
|
+
|
|
3738
|
+
|
|
3739
|
+
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
|
|
3740
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3741
|
+
</label>
|
|
3742
|
+
|
|
3743
|
+
</div>
|
|
3570
3744
|
|
|
3571
3745
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
|
|
3572
3746
|
<label class="md-nav__title" for="__nav_8">
|
|
@@ -3580,6 +3754,8 @@
|
|
|
3580
3754
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
3581
3755
|
|
|
3582
3756
|
|
|
3757
|
+
|
|
3758
|
+
|
|
3583
3759
|
|
|
3584
3760
|
|
|
3585
3761
|
|
|
@@ -3613,6 +3789,34 @@
|
|
|
3613
3789
|
|
|
3614
3790
|
|
|
3615
3791
|
|
|
3792
|
+
<li class="md-nav__item">
|
|
3793
|
+
<a href="../../project/sbom.html" class="md-nav__link">
|
|
3794
|
+
|
|
3795
|
+
|
|
3796
|
+
|
|
3797
|
+
<span class="md-ellipsis">
|
|
3798
|
+
|
|
3799
|
+
|
|
3800
|
+
Software Bill of Materials
|
|
3801
|
+
|
|
3802
|
+
|
|
3803
|
+
|
|
3804
|
+
</span>
|
|
3805
|
+
|
|
3806
|
+
|
|
3807
|
+
|
|
3808
|
+
</a>
|
|
3809
|
+
</li>
|
|
3810
|
+
|
|
3811
|
+
|
|
3812
|
+
|
|
3813
|
+
|
|
3814
|
+
|
|
3815
|
+
|
|
3816
|
+
|
|
3817
|
+
|
|
3818
|
+
|
|
3819
|
+
|
|
3616
3820
|
<li class="md-nav__item">
|
|
3617
3821
|
<a href="../../project/upgrade.html" class="md-nav__link">
|
|
3618
3822
|
|
|
@@ -3685,6 +3889,8 @@
|
|
|
3685
3889
|
|
|
3686
3890
|
|
|
3687
3891
|
|
|
3892
|
+
|
|
3893
|
+
|
|
3688
3894
|
|
|
3689
3895
|
|
|
3690
3896
|
|
|
@@ -3777,6 +3983,34 @@
|
|
|
3777
3983
|
|
|
3778
3984
|
|
|
3779
3985
|
|
|
3986
|
+
|
|
3987
|
+
|
|
3988
|
+
<li class="md-nav__item">
|
|
3989
|
+
<a href="../releases.html" class="md-nav__link">
|
|
3990
|
+
|
|
3991
|
+
|
|
3992
|
+
|
|
3993
|
+
<span class="md-ellipsis">
|
|
3994
|
+
|
|
3995
|
+
|
|
3996
|
+
Branching & Releases
|
|
3997
|
+
|
|
3998
|
+
|
|
3999
|
+
|
|
4000
|
+
</span>
|
|
4001
|
+
|
|
4002
|
+
|
|
4003
|
+
|
|
4004
|
+
</a>
|
|
4005
|
+
</li>
|
|
4006
|
+
|
|
4007
|
+
|
|
4008
|
+
|
|
4009
|
+
|
|
4010
|
+
|
|
4011
|
+
|
|
4012
|
+
|
|
4013
|
+
|
|
3780
4014
|
|
|
3781
4015
|
|
|
3782
4016
|
|
|
@@ -3810,7 +4044,7 @@
|
|
|
3810
4044
|
|
|
3811
4045
|
|
|
3812
4046
|
|
|
3813
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
4047
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" checked>
|
|
3814
4048
|
|
|
3815
4049
|
|
|
3816
4050
|
<div class="md-nav__link md-nav__container">
|
|
@@ -3832,14 +4066,14 @@
|
|
|
3832
4066
|
</a>
|
|
3833
4067
|
|
|
3834
4068
|
|
|
3835
|
-
<label class="md-nav__link " for="
|
|
4069
|
+
<label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="">
|
|
3836
4070
|
<span class="md-nav__icon md-icon"></span>
|
|
3837
4071
|
</label>
|
|
3838
4072
|
|
|
3839
4073
|
</div>
|
|
3840
4074
|
|
|
3841
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
3842
|
-
<label class="md-nav__title" for="
|
|
4075
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="true">
|
|
4076
|
+
<label class="md-nav__title" for="__nav_10_4">
|
|
3843
4077
|
<span class="md-nav__icon md-icon"></span>
|
|
3844
4078
|
|
|
3845
4079
|
|
|
@@ -4070,6 +4304,28 @@
|
|
|
4070
4304
|
</span>
|
|
4071
4305
|
</a>
|
|
4072
4306
|
|
|
4307
|
+
</li>
|
|
4308
|
+
|
|
4309
|
+
<li class="md-nav__item">
|
|
4310
|
+
<a href="#delta-build-hooks" class="md-nav__link">
|
|
4311
|
+
<span class="md-ellipsis">
|
|
4312
|
+
|
|
4313
|
+
Delta build hooks
|
|
4314
|
+
|
|
4315
|
+
</span>
|
|
4316
|
+
</a>
|
|
4317
|
+
|
|
4318
|
+
</li>
|
|
4319
|
+
|
|
4320
|
+
<li class="md-nav__item">
|
|
4321
|
+
<a href="#plugin-hook-method-pre_test_compile_registerarg_hash" class="md-nav__link">
|
|
4322
|
+
<span class="md-ellipsis">
|
|
4323
|
+
|
|
4324
|
+
Plugin hook method pre_test_compile_register(arg_hash)
|
|
4325
|
+
|
|
4326
|
+
</span>
|
|
4327
|
+
</a>
|
|
4328
|
+
|
|
4073
4329
|
</li>
|
|
4074
4330
|
|
|
4075
4331
|
<li class="md-nav__item">
|
|
@@ -4081,6 +4337,17 @@
|
|
|
4081
4337
|
</span>
|
|
4082
4338
|
</a>
|
|
4083
4339
|
|
|
4340
|
+
</li>
|
|
4341
|
+
|
|
4342
|
+
<li class="md-nav__item">
|
|
4343
|
+
<a href="#plugin-hook-method-pre_test_link_registerarg_hash" class="md-nav__link">
|
|
4344
|
+
<span class="md-ellipsis">
|
|
4345
|
+
|
|
4346
|
+
Plugin hook method pre_test_link_register(arg_hash)
|
|
4347
|
+
|
|
4348
|
+
</span>
|
|
4349
|
+
</a>
|
|
4350
|
+
|
|
4084
4351
|
</li>
|
|
4085
4352
|
|
|
4086
4353
|
<li class="md-nav__item">
|
|
@@ -4092,6 +4359,17 @@
|
|
|
4092
4359
|
</span>
|
|
4093
4360
|
</a>
|
|
4094
4361
|
|
|
4362
|
+
</li>
|
|
4363
|
+
|
|
4364
|
+
<li class="md-nav__item">
|
|
4365
|
+
<a href="#plugin-hook-method-pre_test_fixture_registerarg_hash" class="md-nav__link">
|
|
4366
|
+
<span class="md-ellipsis">
|
|
4367
|
+
|
|
4368
|
+
Plugin hook method pre_test_fixture_register(arg_hash)
|
|
4369
|
+
|
|
4370
|
+
</span>
|
|
4371
|
+
</a>
|
|
4372
|
+
|
|
4095
4373
|
</li>
|
|
4096
4374
|
|
|
4097
4375
|
<li class="md-nav__item">
|
|
@@ -4103,6 +4381,17 @@
|
|
|
4103
4381
|
</span>
|
|
4104
4382
|
</a>
|
|
4105
4383
|
|
|
4384
|
+
</li>
|
|
4385
|
+
|
|
4386
|
+
<li class="md-nav__item">
|
|
4387
|
+
<a href="#plugin-hook-method-explain_test_crasharg_hash" class="md-nav__link">
|
|
4388
|
+
<span class="md-ellipsis">
|
|
4389
|
+
|
|
4390
|
+
Plugin hook method explain_test_crash(arg_hash)
|
|
4391
|
+
|
|
4392
|
+
</span>
|
|
4393
|
+
</a>
|
|
4394
|
+
|
|
4106
4395
|
</li>
|
|
4107
4396
|
|
|
4108
4397
|
<li class="md-nav__item">
|
|
@@ -4175,7 +4464,7 @@
|
|
|
4175
4464
|
<a href="#validating-a-plugins-tools" class="md-nav__link">
|
|
4176
4465
|
<span class="md-ellipsis">
|
|
4177
4466
|
|
|
4178
|
-
Validating a plugin
|
|
4467
|
+
Validating a plugin’s tools
|
|
4179
4468
|
|
|
4180
4469
|
</span>
|
|
4181
4470
|
</a>
|
|
@@ -4191,6 +4480,78 @@
|
|
|
4191
4480
|
</span>
|
|
4192
4481
|
</a>
|
|
4193
4482
|
|
|
4483
|
+
</li>
|
|
4484
|
+
|
|
4485
|
+
<li class="md-nav__item">
|
|
4486
|
+
<a href="#test-results-report-templates" class="md-nav__link">
|
|
4487
|
+
<span class="md-ellipsis">
|
|
4488
|
+
|
|
4489
|
+
Test results report templates
|
|
4490
|
+
|
|
4491
|
+
</span>
|
|
4492
|
+
</a>
|
|
4493
|
+
|
|
4494
|
+
<nav class="md-nav" aria-label="Test results report templates">
|
|
4495
|
+
<ul class="md-nav__list">
|
|
4496
|
+
|
|
4497
|
+
<li class="md-nav__item">
|
|
4498
|
+
<a href="#supplying-a-template" class="md-nav__link">
|
|
4499
|
+
<span class="md-ellipsis">
|
|
4500
|
+
|
|
4501
|
+
Supplying a template
|
|
4502
|
+
|
|
4503
|
+
</span>
|
|
4504
|
+
</a>
|
|
4505
|
+
|
|
4506
|
+
</li>
|
|
4507
|
+
|
|
4508
|
+
<li class="md-nav__item">
|
|
4509
|
+
<a href="#supported-syntax" class="md-nav__link">
|
|
4510
|
+
<span class="md-ellipsis">
|
|
4511
|
+
|
|
4512
|
+
Supported syntax
|
|
4513
|
+
|
|
4514
|
+
</span>
|
|
4515
|
+
</a>
|
|
4516
|
+
|
|
4517
|
+
</li>
|
|
4518
|
+
|
|
4519
|
+
<li class="md-nav__item">
|
|
4520
|
+
<a href="#newline-trimming" class="md-nav__link">
|
|
4521
|
+
<span class="md-ellipsis">
|
|
4522
|
+
|
|
4523
|
+
Newline trimming
|
|
4524
|
+
|
|
4525
|
+
</span>
|
|
4526
|
+
</a>
|
|
4527
|
+
|
|
4528
|
+
</li>
|
|
4529
|
+
|
|
4530
|
+
<li class="md-nav__item">
|
|
4531
|
+
<a href="#what-a-template-can-reference" class="md-nav__link">
|
|
4532
|
+
<span class="md-ellipsis">
|
|
4533
|
+
|
|
4534
|
+
What a template can reference
|
|
4535
|
+
|
|
4536
|
+
</span>
|
|
4537
|
+
</a>
|
|
4538
|
+
|
|
4539
|
+
</li>
|
|
4540
|
+
|
|
4541
|
+
<li class="md-nav__item">
|
|
4542
|
+
<a href="#unsupported-syntax" class="md-nav__link">
|
|
4543
|
+
<span class="md-ellipsis">
|
|
4544
|
+
|
|
4545
|
+
Unsupported syntax
|
|
4546
|
+
|
|
4547
|
+
</span>
|
|
4548
|
+
</a>
|
|
4549
|
+
|
|
4550
|
+
</li>
|
|
4551
|
+
|
|
4552
|
+
</ul>
|
|
4553
|
+
</nav>
|
|
4554
|
+
|
|
4194
4555
|
</li>
|
|
4195
4556
|
|
|
4196
4557
|
</ul>
|
|
@@ -4396,6 +4757,28 @@
|
|
|
4396
4757
|
</span>
|
|
4397
4758
|
</a>
|
|
4398
4759
|
|
|
4760
|
+
</li>
|
|
4761
|
+
|
|
4762
|
+
<li class="md-nav__item">
|
|
4763
|
+
<a href="#delta-build-hooks" class="md-nav__link">
|
|
4764
|
+
<span class="md-ellipsis">
|
|
4765
|
+
|
|
4766
|
+
Delta build hooks
|
|
4767
|
+
|
|
4768
|
+
</span>
|
|
4769
|
+
</a>
|
|
4770
|
+
|
|
4771
|
+
</li>
|
|
4772
|
+
|
|
4773
|
+
<li class="md-nav__item">
|
|
4774
|
+
<a href="#plugin-hook-method-pre_test_compile_registerarg_hash" class="md-nav__link">
|
|
4775
|
+
<span class="md-ellipsis">
|
|
4776
|
+
|
|
4777
|
+
Plugin hook method pre_test_compile_register(arg_hash)
|
|
4778
|
+
|
|
4779
|
+
</span>
|
|
4780
|
+
</a>
|
|
4781
|
+
|
|
4399
4782
|
</li>
|
|
4400
4783
|
|
|
4401
4784
|
<li class="md-nav__item">
|
|
@@ -4407,6 +4790,17 @@
|
|
|
4407
4790
|
</span>
|
|
4408
4791
|
</a>
|
|
4409
4792
|
|
|
4793
|
+
</li>
|
|
4794
|
+
|
|
4795
|
+
<li class="md-nav__item">
|
|
4796
|
+
<a href="#plugin-hook-method-pre_test_link_registerarg_hash" class="md-nav__link">
|
|
4797
|
+
<span class="md-ellipsis">
|
|
4798
|
+
|
|
4799
|
+
Plugin hook method pre_test_link_register(arg_hash)
|
|
4800
|
+
|
|
4801
|
+
</span>
|
|
4802
|
+
</a>
|
|
4803
|
+
|
|
4410
4804
|
</li>
|
|
4411
4805
|
|
|
4412
4806
|
<li class="md-nav__item">
|
|
@@ -4418,6 +4812,17 @@
|
|
|
4418
4812
|
</span>
|
|
4419
4813
|
</a>
|
|
4420
4814
|
|
|
4815
|
+
</li>
|
|
4816
|
+
|
|
4817
|
+
<li class="md-nav__item">
|
|
4818
|
+
<a href="#plugin-hook-method-pre_test_fixture_registerarg_hash" class="md-nav__link">
|
|
4819
|
+
<span class="md-ellipsis">
|
|
4820
|
+
|
|
4821
|
+
Plugin hook method pre_test_fixture_register(arg_hash)
|
|
4822
|
+
|
|
4823
|
+
</span>
|
|
4824
|
+
</a>
|
|
4825
|
+
|
|
4421
4826
|
</li>
|
|
4422
4827
|
|
|
4423
4828
|
<li class="md-nav__item">
|
|
@@ -4429,6 +4834,17 @@
|
|
|
4429
4834
|
</span>
|
|
4430
4835
|
</a>
|
|
4431
4836
|
|
|
4837
|
+
</li>
|
|
4838
|
+
|
|
4839
|
+
<li class="md-nav__item">
|
|
4840
|
+
<a href="#plugin-hook-method-explain_test_crasharg_hash" class="md-nav__link">
|
|
4841
|
+
<span class="md-ellipsis">
|
|
4842
|
+
|
|
4843
|
+
Plugin hook method explain_test_crash(arg_hash)
|
|
4844
|
+
|
|
4845
|
+
</span>
|
|
4846
|
+
</a>
|
|
4847
|
+
|
|
4432
4848
|
</li>
|
|
4433
4849
|
|
|
4434
4850
|
<li class="md-nav__item">
|
|
@@ -4501,7 +4917,7 @@
|
|
|
4501
4917
|
<a href="#validating-a-plugins-tools" class="md-nav__link">
|
|
4502
4918
|
<span class="md-ellipsis">
|
|
4503
4919
|
|
|
4504
|
-
Validating a plugin
|
|
4920
|
+
Validating a plugin’s tools
|
|
4505
4921
|
|
|
4506
4922
|
</span>
|
|
4507
4923
|
</a>
|
|
@@ -4517,6 +4933,78 @@
|
|
|
4517
4933
|
</span>
|
|
4518
4934
|
</a>
|
|
4519
4935
|
|
|
4936
|
+
</li>
|
|
4937
|
+
|
|
4938
|
+
<li class="md-nav__item">
|
|
4939
|
+
<a href="#test-results-report-templates" class="md-nav__link">
|
|
4940
|
+
<span class="md-ellipsis">
|
|
4941
|
+
|
|
4942
|
+
Test results report templates
|
|
4943
|
+
|
|
4944
|
+
</span>
|
|
4945
|
+
</a>
|
|
4946
|
+
|
|
4947
|
+
<nav class="md-nav" aria-label="Test results report templates">
|
|
4948
|
+
<ul class="md-nav__list">
|
|
4949
|
+
|
|
4950
|
+
<li class="md-nav__item">
|
|
4951
|
+
<a href="#supplying-a-template" class="md-nav__link">
|
|
4952
|
+
<span class="md-ellipsis">
|
|
4953
|
+
|
|
4954
|
+
Supplying a template
|
|
4955
|
+
|
|
4956
|
+
</span>
|
|
4957
|
+
</a>
|
|
4958
|
+
|
|
4959
|
+
</li>
|
|
4960
|
+
|
|
4961
|
+
<li class="md-nav__item">
|
|
4962
|
+
<a href="#supported-syntax" class="md-nav__link">
|
|
4963
|
+
<span class="md-ellipsis">
|
|
4964
|
+
|
|
4965
|
+
Supported syntax
|
|
4966
|
+
|
|
4967
|
+
</span>
|
|
4968
|
+
</a>
|
|
4969
|
+
|
|
4970
|
+
</li>
|
|
4971
|
+
|
|
4972
|
+
<li class="md-nav__item">
|
|
4973
|
+
<a href="#newline-trimming" class="md-nav__link">
|
|
4974
|
+
<span class="md-ellipsis">
|
|
4975
|
+
|
|
4976
|
+
Newline trimming
|
|
4977
|
+
|
|
4978
|
+
</span>
|
|
4979
|
+
</a>
|
|
4980
|
+
|
|
4981
|
+
</li>
|
|
4982
|
+
|
|
4983
|
+
<li class="md-nav__item">
|
|
4984
|
+
<a href="#what-a-template-can-reference" class="md-nav__link">
|
|
4985
|
+
<span class="md-ellipsis">
|
|
4986
|
+
|
|
4987
|
+
What a template can reference
|
|
4988
|
+
|
|
4989
|
+
</span>
|
|
4990
|
+
</a>
|
|
4991
|
+
|
|
4992
|
+
</li>
|
|
4993
|
+
|
|
4994
|
+
<li class="md-nav__item">
|
|
4995
|
+
<a href="#unsupported-syntax" class="md-nav__link">
|
|
4996
|
+
<span class="md-ellipsis">
|
|
4997
|
+
|
|
4998
|
+
Unsupported syntax
|
|
4999
|
+
|
|
5000
|
+
</span>
|
|
5001
|
+
</a>
|
|
5002
|
+
|
|
5003
|
+
</li>
|
|
5004
|
+
|
|
5005
|
+
</ul>
|
|
5006
|
+
</nav>
|
|
5007
|
+
|
|
4520
5008
|
</li>
|
|
4521
5009
|
|
|
4522
5010
|
</ul>
|
|
@@ -4609,13 +5097,13 @@
|
|
|
4609
5097
|
<p>Naming and location conventions:</p>
|
|
4610
5098
|
<ul>
|
|
4611
5099
|
<li><code><plugin_name>/lib/<plugin_name>.rb</code></li>
|
|
4612
|
-
<li>The plugin
|
|
5100
|
+
<li>The plugin’s class name must be the camelized version (a.k.a. "bumpy case")
|
|
4613
5101
|
of the plugin filename — <code>whiz_bang.rb</code> ➡️ <code>WhizBang</code>.</li>
|
|
4614
5102
|
</ul>
|
|
4615
5103
|
<p>This plugin option allows full programmatic ability connected to any of a number
|
|
4616
5104
|
of predefined Ceedling build steps.</p>
|
|
4617
5105
|
<p>The contents of <code><plugin_name>.rb</code> must implement a class that subclasses
|
|
4618
|
-
<code>Plugin</code>, Ceedling
|
|
5106
|
+
<code>Plugin</code>, Ceedling’s plugin base class.</p>
|
|
4619
5107
|
<h2 id="example-plugin-subclass">Example <code>Plugin</code> subclass</h2>
|
|
4620
5108
|
<p>An incomplete <code>Plugin</code> subclass follows to illustrate the basics.</p>
|
|
4621
5109
|
<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>
|
|
@@ -4708,7 +5196,7 @@ whose associated value is itself a hash with the following contents:</p>
|
|
|
4708
5196
|
<p class="admonition-title">Preprocessing Hook Limitations</p>
|
|
4709
5197
|
<p>Test preprocessing steps are quite sophisticated and involve various combinations
|
|
4710
5198
|
of tool executions. The <code>post_</code> preprocessing hooks do not include shell results.
|
|
4711
|
-
Future updates to Ceedling
|
|
5199
|
+
Future updates to Ceedling’s plugin system will create a more robust means of
|
|
4712
5200
|
attaching custom behaviors to test preprocessing or connecting your own
|
|
4713
5201
|
preprocessing pipeline with toolchains other than GCC.</p>
|
|
4714
5202
|
</div>
|
|
@@ -4793,35 +5281,83 @@ called a number of times equal to the number of test files in a test build.</p>
|
|
|
4793
5281
|
<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
5282
|
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="p">}</span>
|
|
4795
5283
|
</code></pre></div>
|
|
4796
|
-
<h2 id="
|
|
4797
|
-
<p>
|
|
4798
|
-
|
|
4799
|
-
|
|
5284
|
+
<h2 id="delta-build-hooks">Delta build hooks</h2>
|
|
5285
|
+
<p>Ceedling skips work when nothing has changed. This is called a delta build.
|
|
5286
|
+
See <a href="../../getting-started/builds.html">Delta Builds</a> for the full picture.</p>
|
|
5287
|
+
<p>Three hook methods run before Ceedling checks delta build state for a
|
|
5288
|
+
target. Each one always runs, for every target, whether or not that target
|
|
5289
|
+
turns out to need rebuilding. A plugin uses one of these hooks to swap in
|
|
5290
|
+
its own tool for its own build context. Doing the swap here, not only in
|
|
5291
|
+
the matching <code>pre_*_execute</code> hook below, makes sure Ceedling’s delta build
|
|
5292
|
+
check sees the real tool. Otherwise a change to that tool’s own settings
|
|
5293
|
+
will not force a rebuild.</p>
|
|
5294
|
+
<h2 id="plugin-hook-method-pre_test_compile_registerarg_hash"><code>Plugin</code> hook method <code>pre_test_compile_register(arg_hash)</code></h2>
|
|
5295
|
+
<p>Test builds only, not release builds. Runs once per C file in a test build.
|
|
5296
|
+
Runs before Ceedling registers the file as a delta build target.</p>
|
|
4800
5297
|
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
4801
5298
|
<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
5299
|
<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
5300
|
<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
5301
|
<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
|
|
5302
|
+
<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
5303
|
<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-
|
|
5304
|
+
<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>
|
|
5305
|
+
<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>
|
|
5306
|
+
<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>
|
|
5307
|
+
<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>
|
|
5308
|
+
<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>
|
|
5309
|
+
<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>
|
|
5310
|
+
<a id="__codelineno-8-13" name="__codelineno-8-13" href="#__codelineno-8-13"></a><span class="p">}</span>
|
|
5311
|
+
</code></pre></div>
|
|
5312
|
+
<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>
|
|
5313
|
+
<p>These methods are called before and after source file compilation. These are
|
|
5314
|
+
called in both test and release builds. This pair of methods is called a number
|
|
5315
|
+
of times equal to the number of C files in a test or release build.</p>
|
|
5316
|
+
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
5317
|
+
<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>
|
|
5318
|
+
<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>
|
|
5319
|
+
<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>
|
|
5320
|
+
<a id="__codelineno-9-4" name="__codelineno-9-4" href="#__codelineno-9-4"></a><span class="w"> </span><span class="p">},</span>
|
|
5321
|
+
<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>
|
|
5322
|
+
<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>
|
|
5323
|
+
<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>
|
|
5324
|
+
<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>
|
|
5325
|
+
<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>
|
|
5326
|
+
<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>
|
|
5327
|
+
<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>
|
|
5328
|
+
<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>
|
|
5329
|
+
<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>
|
|
5330
|
+
<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>
|
|
5331
|
+
<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>
|
|
5332
|
+
<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>
|
|
5333
|
+
<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>
|
|
5334
|
+
<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>
|
|
5335
|
+
<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>
|
|
5336
|
+
<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>
|
|
5337
|
+
<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>
|
|
5338
|
+
<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>
|
|
5339
|
+
<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>
|
|
5340
|
+
<a id="__codelineno-9-24" name="__codelineno-9-24" href="#__codelineno-9-24"></a><span class="p">}</span>
|
|
5341
|
+
</code></pre></div>
|
|
5342
|
+
<h2 id="plugin-hook-method-pre_test_link_registerarg_hash"><code>Plugin</code> hook method <code>pre_test_link_register(arg_hash)</code></h2>
|
|
5343
|
+
<p>Test builds only, not release builds. Runs once per test executable in a
|
|
5344
|
+
test build. Runs before Ceedling registers the executable as a delta build
|
|
5345
|
+
target. See <a href="#delta-build-hooks">Delta build hooks</a> above for why this hook
|
|
5346
|
+
exists and when it runs.</p>
|
|
5347
|
+
<p>A plugin swapping in its own linker tool for its own build context should
|
|
5348
|
+
do so here, for the same reason described under <code>pre_test_compile_register</code>
|
|
5349
|
+
above. Because this hook always runs, it also gives a plugin a reliable
|
|
5350
|
+
place to note that its own build context ran at all, apart from whether
|
|
5351
|
+
anything actually needed relinking.</p>
|
|
5352
|
+
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
5353
|
+
<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>
|
|
5354
|
+
<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>
|
|
5355
|
+
<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>
|
|
5356
|
+
<a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span><span class="p">},</span>
|
|
5357
|
+
<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>
|
|
5358
|
+
<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>
|
|
5359
|
+
<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>
|
|
5360
|
+
<a id="__codelineno-10-8" name="__codelineno-10-8" href="#__codelineno-10-8"></a><span class="p">}</span>
|
|
4825
5361
|
</code></pre></div>
|
|
4826
5362
|
<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
5363
|
<p>These methods are called before and after linking an executable. These are
|
|
@@ -4830,27 +5366,58 @@ executable and each release artifact. This pair of methods is called a number
|
|
|
4830
5366
|
of times equal to the number of test files in a test build or release artifacts
|
|
4831
5367
|
in a release build.</p>
|
|
4832
5368
|
<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-
|
|
5369
|
+
<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>
|
|
5370
|
+
<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>
|
|
5371
|
+
<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>
|
|
5372
|
+
<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>
|
|
5373
|
+
<a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span><span class="p">},</span>
|
|
5374
|
+
<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>
|
|
5375
|
+
<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>
|
|
5376
|
+
<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>
|
|
5377
|
+
<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>
|
|
5378
|
+
<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>
|
|
5379
|
+
<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>
|
|
5380
|
+
<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>
|
|
5381
|
+
<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>
|
|
5382
|
+
<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>
|
|
5383
|
+
<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>
|
|
5384
|
+
<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>
|
|
5385
|
+
<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>
|
|
5386
|
+
<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>
|
|
5387
|
+
<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>
|
|
5388
|
+
<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>
|
|
5389
|
+
<a id="__codelineno-11-21" name="__codelineno-11-21" href="#__codelineno-11-21"></a><span class="p">}</span>
|
|
5390
|
+
</code></pre></div>
|
|
5391
|
+
<h2 id="plugin-hook-method-pre_test_fixture_registerarg_hash"><code>Plugin</code> hook method <code>pre_test_fixture_register(arg_hash)</code></h2>
|
|
5392
|
+
<p>Runs once per test executable. Runs before Ceedling registers the test run
|
|
5393
|
+
as a delta build target. See <a href="#delta-build-hooks">Delta build hooks</a> above
|
|
5394
|
+
for why this hook exists and when it runs.</p>
|
|
5395
|
+
<p>A plugin swapping in its own wrapper tool to run the test executable (as
|
|
5396
|
+
Valgrind does) should do so here, for the same reason described under
|
|
5397
|
+
<code>pre_test_compile_register</code> above. Otherwise a change to that wrapper tool’s own
|
|
5398
|
+
settings will not force a rerun.</p>
|
|
5399
|
+
<p>A wrapper tool runs the test executable as one of its own arguments. Ceedling
|
|
5400
|
+
places Unity’s test case filters (from <code>--test-case</code>, <code>--exclude_test_case</code>, and
|
|
5401
|
+
backtrace reruns) after the tool’s arguments, where the executable is.</p>
|
|
5402
|
+
<p>A crashed test executable reruns one test case at a time when
|
|
5403
|
+
<code>:use_backtrace</code> is <code>:simple</code>. By default the reruns go through Ceedling’s own
|
|
5404
|
+
backtrace tool, not a swapped wrapper. A wrapper the reruns should run through
|
|
5405
|
+
too (as the Sanitize plugin’s does, to keep its runtime options) sets
|
|
5406
|
+
<code>:backtrace_rerun => true</code> in its tool hash. Such a tool can't run under gdb, so
|
|
5407
|
+
<code>:gdb</code> backtraces fall back to <code>:simple</code> for it, with a notice. Leave the key out
|
|
5408
|
+
for a wrapper that writes one report per test, as Valgrind’s does, since each
|
|
5409
|
+
rerun would overwrite it.</p>
|
|
5410
|
+
<p>The argument <code>arg_hash</code> follows the structure below:</p>
|
|
5411
|
+
<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>
|
|
5412
|
+
<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>
|
|
5413
|
+
<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>
|
|
5414
|
+
<a id="__codelineno-12-4" name="__codelineno-12-4" href="#__codelineno-12-4"></a><span class="w"> </span><span class="p">},</span>
|
|
5415
|
+
<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>
|
|
5416
|
+
<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>
|
|
5417
|
+
<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>
|
|
5418
|
+
<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>
|
|
5419
|
+
<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>
|
|
5420
|
+
<a id="__codelineno-12-10" name="__codelineno-12-10" href="#__codelineno-12-10"></a><span class="p">}</span>
|
|
4854
5421
|
</code></pre></div>
|
|
4855
5422
|
<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
5423
|
<p>These methods are called before and after running a test executable. If a build
|
|
@@ -4858,23 +5425,56 @@ does not include tests, these are not called. This pair of methods is called
|
|
|
4858
5425
|
for each test executable in a build (each test file is ultimately built into a
|
|
4859
5426
|
test executable).</p>
|
|
4860
5427
|
<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-
|
|
5428
|
+
<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>
|
|
5429
|
+
<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>
|
|
5430
|
+
<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>
|
|
5431
|
+
<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>
|
|
5432
|
+
<a id="__codelineno-13-5" name="__codelineno-13-5" href="#__codelineno-13-5"></a><span class="w"> </span><span class="p">},</span>
|
|
5433
|
+
<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>
|
|
5434
|
+
<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>
|
|
5435
|
+
<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>
|
|
5436
|
+
<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>
|
|
5437
|
+
<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>
|
|
5438
|
+
<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>
|
|
5439
|
+
<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>
|
|
5440
|
+
<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>
|
|
5441
|
+
<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>
|
|
5442
|
+
<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>
|
|
5443
|
+
<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>
|
|
5444
|
+
<a id="__codelineno-13-17" name="__codelineno-13-17" href="#__codelineno-13-17"></a><span class="p">}</span>
|
|
5445
|
+
</code></pre></div>
|
|
5446
|
+
<h2 id="plugin-hook-method-explain_test_crasharg_hash"><code>Plugin</code> hook method <code>explain_test_crash(arg_hash)</code></h2>
|
|
5447
|
+
<p>Called when a test executable crashed, before Ceedling writes the crash as test
|
|
5448
|
+
failures. A plugin that recognizes the cause, such as a sanitizer’s report in the
|
|
5449
|
+
run’s output, sets <code>arg_hash[:explanation]</code> to a short message. That message
|
|
5450
|
+
replaces the generic crash message in the test’s failure, except with <code>:gdb</code>
|
|
5451
|
+
backtraces, whose failures carry gdb’s own trace. It also replaces Ceedling’s
|
|
5452
|
+
generic crash notice and its backtrace advice.</p>
|
|
5453
|
+
<p>Two optional keys shape the notice:</p>
|
|
5454
|
+
<ul>
|
|
5455
|
+
<li><code>:explanation_heading</code> completes its first line, “Test executable <code>x</code> …”.
|
|
5456
|
+
Without it, the line ends “crashed.”</li>
|
|
5457
|
+
<li><code>:explanation_details</code> lists lines that follow the cause, such as where a
|
|
5458
|
+
log is. The failure message adds them in parentheses.</li>
|
|
5459
|
+
</ul>
|
|
5460
|
+
<p>With <code>:use_backtrace</code> set to <code>:simple</code>, it is called again for each rerun that
|
|
5461
|
+
crashes, with that rerun’s own shell result, so each crashed test case can be
|
|
5462
|
+
explained on its own.</p>
|
|
5463
|
+
<p>The argument <code>arg_hash</code> holds the same keys as <code>pre_test_fixture_execute</code> above,
|
|
5464
|
+
plus:</p>
|
|
5465
|
+
<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>
|
|
5466
|
+
<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>
|
|
5467
|
+
<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>
|
|
5468
|
+
<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>
|
|
5469
|
+
<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>
|
|
5470
|
+
<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>
|
|
5471
|
+
<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>
|
|
5472
|
+
<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>
|
|
5473
|
+
<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>
|
|
5474
|
+
<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>
|
|
5475
|
+
<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>
|
|
5476
|
+
<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>
|
|
5477
|
+
<a id="__codelineno-14-13" name="__codelineno-14-13" href="#__codelineno-14-13"></a><span class="p">}</span>
|
|
4878
5478
|
</code></pre></div>
|
|
4879
5479
|
<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
5480
|
<p>These methods are called before and after performing all steps needed to run a
|
|
@@ -4889,6 +5489,10 @@ termination points, including early exit due to a build error.</p>
|
|
|
4889
5489
|
<p>The argument <code>context</code> is the build context symbol (e.g. <code>:test</code>, <code>:gcov</code>) that
|
|
4890
5490
|
was passed to <code>TestInvoker#setup_and_invoke</code>. This lets a plugin respond
|
|
4891
5491
|
differently depending on which kind of build triggered the pipeline.</p>
|
|
5492
|
+
<p>Each context also gets its own separate delta build cache. A plugin that
|
|
5493
|
+
runs its own build under a distinct context symbol keeps that build’s
|
|
5494
|
+
tracked state apart from ordinary test builds and from any other plugin’s
|
|
5495
|
+
builds. See <a href="../../getting-started/builds.html">Delta Builds</a> for more.</p>
|
|
4892
5496
|
<p>The argument <code>timestamp_s</code> is a floating-point stopwatch value in seconds
|
|
4893
5497
|
(from <code>SystemWrapper.time_stopwatch_s</code>). Compare the <code>pre_test_build</code> and
|
|
4894
5498
|
<code>post_test_build</code> timestamps to compute the total test build duration using
|
|
@@ -4918,27 +5522,27 @@ cases is not a build error.</p>
|
|
|
4918
5522
|
<p>This method is called when invoking the summary task, <code>ceedling summary</code>. This
|
|
4919
5523
|
method facilitates logging the results of the last build without running the
|
|
4920
5524
|
previous build again.</p>
|
|
4921
|
-
<h2 id="validating-a-plugins-tools">Validating a plugin
|
|
5525
|
+
<h2 id="validating-a-plugins-tools">Validating a plugin’s tools</h2>
|
|
4922
5526
|
<p>By default, Ceedling validates configured tools at startup according to a
|
|
4923
5527
|
simple setting within the tool definition. This works just fine for default
|
|
4924
5528
|
core tools and options. However, in the case of plugins, tools may not be even
|
|
4925
|
-
relevant to a plugin
|
|
5529
|
+
relevant to a plugin’s operation depending on its configurable options. It’s
|
|
4926
5530
|
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
|
|
5531
|
+
Ceedling can't find it in your <code>$PATH</code>. Similarly, it’s irresponsible to skip
|
|
4928
5532
|
validating a tool just because it may not be needed.</p>
|
|
4929
5533
|
<p>Ceedling provides optional, programmatic tool validation for these cases.
|
|
4930
|
-
<code>@ceedling[:tool_validator].validate()</code> can be forced to ignore a tool
|
|
5534
|
+
<code>@ceedling[:tool_validator].validate()</code> can be forced to ignore a tool’s
|
|
4931
5535
|
<code>required:</code> setting to validate it. In such a scenario, a plugin should
|
|
4932
5536
|
configure its own tools as <code>:optional => true</code> but forcibly validate them at
|
|
4933
|
-
plugin startup if the plugin
|
|
5537
|
+
plugin startup if the plugin’s configuration options require said tool.</p>
|
|
4934
5538
|
<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-
|
|
5539
|
+
<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>
|
|
5540
|
+
<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>
|
|
5541
|
+
<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>
|
|
5542
|
+
<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>
|
|
5543
|
+
<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>
|
|
5544
|
+
<a id="__codelineno-15-6" name="__codelineno-15-6" href="#__codelineno-15-6"></a><span class="w"> </span><span class="p">)</span>
|
|
5545
|
+
<a id="__codelineno-15-7" name="__codelineno-15-7" href="#__codelineno-15-7"></a><span class="k">end</span>
|
|
4942
5546
|
</code></pre></div>
|
|
4943
5547
|
<p>The tool <code>TOOLS_GCOV_SUMMARY</code> is defined with a Ruby hash in the plugin code.
|
|
4944
5548
|
It is configured with <code>:optional => true</code>. At plugin startup, configuration
|
|
@@ -4950,73 +5554,221 @@ utility method is available for this purpose.</p>
|
|
|
4950
5554
|
<p><code>@ceedling[:plugin_reportinator].assemble_test_results()</code></p>
|
|
4951
5555
|
<p>This method takes as an argument a list of results filepaths. These typically
|
|
4952
5556
|
correspond directly to the collection of test files Ceedling processed in a
|
|
4953
|
-
given test build. It
|
|
5557
|
+
given test build. It’s common for this list of filepaths to be assembled from
|
|
4954
5558
|
the <code>post_test_fixture_execute</code> build step execution hook.</p>
|
|
4955
5559
|
<p>The data that <code>assemble_test_results()</code> returns has a structure as follows. In
|
|
4956
5560
|
this example, actual results from a single, real test file are presented as
|
|
4957
5561
|
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-
|
|
5562
|
+
<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>
|
|
5563
|
+
<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>
|
|
5564
|
+
<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>
|
|
5565
|
+
<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>
|
|
5566
|
+
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a><span class="w"> </span><span class="p">},</span>
|
|
5567
|
+
<a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a>
|
|
5568
|
+
<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>
|
|
5569
|
+
<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>
|
|
5570
|
+
<a id="__codelineno-16-9" name="__codelineno-16-9" href="#__codelineno-16-9"></a><span class="w"> </span><span class="p">{</span>
|
|
5571
|
+
<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>
|
|
5572
|
+
<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>
|
|
5573
|
+
<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>
|
|
5574
|
+
<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>
|
|
5575
|
+
<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>
|
|
5576
|
+
<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>
|
|
5577
|
+
<a id="__codelineno-16-16" name="__codelineno-16-16" href="#__codelineno-16-16"></a><span class="w"> </span><span class="o">]</span>
|
|
5578
|
+
<a id="__codelineno-16-17" name="__codelineno-16-17" href="#__codelineno-16-17"></a><span class="w"> </span><span class="p">}</span>
|
|
5579
|
+
<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>
|
|
5580
|
+
<a id="__codelineno-16-19" name="__codelineno-16-19" href="#__codelineno-16-19"></a>
|
|
5581
|
+
<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>
|
|
5582
|
+
<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>
|
|
5583
|
+
<a id="__codelineno-16-22" name="__codelineno-16-22" href="#__codelineno-16-22"></a><span class="w"> </span><span class="p">{</span>
|
|
5584
|
+
<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>
|
|
5585
|
+
<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>
|
|
5586
|
+
<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>
|
|
5587
|
+
<a id="__codelineno-16-26" name="__codelineno-16-26" href="#__codelineno-16-26"></a><span class="w"> </span><span class="o">]</span>
|
|
5588
|
+
<a id="__codelineno-16-27" name="__codelineno-16-27" href="#__codelineno-16-27"></a><span class="w"> </span><span class="p">}</span>
|
|
5589
|
+
<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>
|
|
5590
|
+
<a id="__codelineno-16-29" name="__codelineno-16-29" href="#__codelineno-16-29"></a>
|
|
5591
|
+
<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>
|
|
5592
|
+
<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>
|
|
5593
|
+
<a id="__codelineno-16-32" name="__codelineno-16-32" href="#__codelineno-16-32"></a><span class="w"> </span><span class="p">{</span>
|
|
5594
|
+
<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>
|
|
5595
|
+
<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>
|
|
5596
|
+
<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>
|
|
5597
|
+
<a id="__codelineno-16-36" name="__codelineno-16-36" href="#__codelineno-16-36"></a><span class="w"> </span><span class="o">]</span>
|
|
5598
|
+
<a id="__codelineno-16-37" name="__codelineno-16-37" href="#__codelineno-16-37"></a><span class="w"> </span><span class="p">}</span>
|
|
5599
|
+
<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>
|
|
5600
|
+
<a id="__codelineno-16-39" name="__codelineno-16-39" href="#__codelineno-16-39"></a>
|
|
5601
|
+
<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>
|
|
5602
|
+
<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>
|
|
5603
|
+
<a id="__codelineno-16-42" name="__codelineno-16-42" href="#__codelineno-16-42"></a><span class="w"> </span><span class="p">{</span>
|
|
5604
|
+
<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>
|
|
5605
|
+
<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>
|
|
5606
|
+
<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>
|
|
5607
|
+
<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>
|
|
5608
|
+
<a id="__codelineno-16-47" name="__codelineno-16-47" href="#__codelineno-16-47"></a><span class="w"> </span><span class="o">]</span>
|
|
5609
|
+
<a id="__codelineno-16-48" name="__codelineno-16-48" href="#__codelineno-16-48"></a><span class="w"> </span><span class="p">}</span>
|
|
5610
|
+
<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>
|
|
5611
|
+
<a id="__codelineno-16-50" name="__codelineno-16-50" href="#__codelineno-16-50"></a>
|
|
5612
|
+
<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>
|
|
5613
|
+
<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>
|
|
5614
|
+
<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>
|
|
5615
|
+
<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>
|
|
5616
|
+
<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>
|
|
5617
|
+
<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>
|
|
5618
|
+
<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>
|
|
5619
|
+
<a id="__codelineno-16-58" name="__codelineno-16-58" href="#__codelineno-16-58"></a>
|
|
5620
|
+
<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>
|
|
5621
|
+
<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>
|
|
5622
|
+
<a id="__codelineno-16-61" name="__codelineno-16-61" href="#__codelineno-16-61"></a><span class="p">}</span>
|
|
5019
5623
|
</code></pre></div>
|
|
5624
|
+
<h2 id="test-results-report-templates">Test results report templates</h2>
|
|
5625
|
+
<p>Ceedling renders test results reports from templates. A plugin that prints test
|
|
5626
|
+
results supplies a template, and Ceedling compiles these templates with its own
|
|
5627
|
+
compiler rather than with ERB.</p>
|
|
5628
|
+
<p>ERB was removed as a Ceedling dependency in 1.2.0. The template language Ceedling
|
|
5629
|
+
accepts is now a deliberate subset of what ERB accepted. Every template Ceedling
|
|
5630
|
+
ships stays within that subset. A template written for an earlier Ceedling works
|
|
5631
|
+
unchanged if it does the same.</p>
|
|
5632
|
+
<h3 id="supplying-a-template">Supplying a template</h3>
|
|
5633
|
+
<p>A <code>ReportTestsStdoutPlugin</code> subclass supplies a template by overriding the private
|
|
5634
|
+
<code>load_template</code> method. That method returns the template as a String. The base
|
|
5635
|
+
class registers the template during <code>setup()</code> and owns every build step hook, so a
|
|
5636
|
+
subclass needs nothing else.</p>
|
|
5637
|
+
<p>The default <code>load_template</code> reads <code>assets/test_results.template</code> from the plugin’s
|
|
5638
|
+
own root path. It falls back to the historical <code>assets/template.erb</code> name when only
|
|
5639
|
+
that older file exists. A plugin shipping the old filename therefore keeps working.</p>
|
|
5640
|
+
<p>Every stock stdout report plugin uses the asset file default.
|
|
5641
|
+
<code>report_tests_pretty_stdout</code> has an empty subclass body.</p>
|
|
5642
|
+
<p>A template can also call its own plugin object. Ceedling’s system objects include
|
|
5643
|
+
each loaded plugin, named for it, so a template reaches its plugin as
|
|
5644
|
+
<code>@ceedling[:<plugin name>]</code>. <code>report_tests_gtestlike_stdout</code> and
|
|
5645
|
+
<code>report_tests_ide_stdout</code> work this way. Their templates hand results to plugin
|
|
5646
|
+
methods that build lines in Ruby. That keeps formatting logic testable and
|
|
5647
|
+
configurable. Gcov, Bullseye, and Valgrind render test results through whichever
|
|
5648
|
+
template is registered, so they get the same lines.</p>
|
|
5649
|
+
<p>A plugin can also render a template directly. <code>@ceedling[:plugin_reportinator]</code>
|
|
5650
|
+
exposes <code>run_report(template, hash)</code> for this. The Bullseye plugin uses it to
|
|
5651
|
+
render its coverage summary from <code>assets/coverage.template</code>.</p>
|
|
5652
|
+
<h3 id="supported-syntax">Supported syntax</h3>
|
|
5653
|
+
<p>Five constructs are available, and two of them carry nearly every template. A
|
|
5654
|
+
percent sign in column zero introduces a line of Ruby. A <code><%= expression %></code> tag
|
|
5655
|
+
inserts that expression’s value into the output.</p>
|
|
5656
|
+
<table>
|
|
5657
|
+
<thead>
|
|
5658
|
+
<tr>
|
|
5659
|
+
<th>Construct</th>
|
|
5660
|
+
<th>Effect</th>
|
|
5661
|
+
</tr>
|
|
5662
|
+
</thead>
|
|
5663
|
+
<tbody>
|
|
5664
|
+
<tr>
|
|
5665
|
+
<td><code>% ruby_code</code></td>
|
|
5666
|
+
<td>Executes the line as Ruby. Nothing is emitted.</td>
|
|
5667
|
+
</tr>
|
|
5668
|
+
<tr>
|
|
5669
|
+
<td><code>%%</code></td>
|
|
5670
|
+
<td>Emits one literal percent sign. Column zero only.</td>
|
|
5671
|
+
</tr>
|
|
5672
|
+
<tr>
|
|
5673
|
+
<td><code><%= expression %></code></td>
|
|
5674
|
+
<td>Emits the expression, converted with <code>to_s</code>.</td>
|
|
5675
|
+
</tr>
|
|
5676
|
+
<tr>
|
|
5677
|
+
<td><code><% ruby_code %></code></td>
|
|
5678
|
+
<td>Executes the code. Nothing is emitted.</td>
|
|
5679
|
+
</tr>
|
|
5680
|
+
<tr>
|
|
5681
|
+
<td><code><%# comment %></code></td>
|
|
5682
|
+
<td>Emits nothing.</td>
|
|
5683
|
+
</tr>
|
|
5684
|
+
</tbody>
|
|
5685
|
+
</table>
|
|
5686
|
+
<p>A percent sign is only special in column zero. Whitespace may follow it freely, so
|
|
5687
|
+
a template can indent Ruby lines to show nesting. A percent sign anywhere else on a
|
|
5688
|
+
line is literal text.</p>
|
|
5689
|
+
<p>All Ruby in a template shares one scope. A value assigned on a percent line is
|
|
5690
|
+
visible to every later line and tag, including across block boundaries.</p>
|
|
5691
|
+
<h3 id="newline-trimming">Newline trimming</h3>
|
|
5692
|
+
<p>A line whose first tag opens it and whose last tag closes it contributes no newline
|
|
5693
|
+
of its own. Text between those two tags does not change that. Every other line
|
|
5694
|
+
keeps its newline. Ceedling’s own templates depend on this behavior to control
|
|
5695
|
+
blank lines in report output.</p>
|
|
5696
|
+
<h3 id="what-a-template-can-reference">What a template can reference</h3>
|
|
5697
|
+
<p>Templates render against <code>PluginReportinator</code>’s own binding. The report data
|
|
5698
|
+
arrives as a local named <code>hash</code>. Global constants such as <code>TEST_SYM</code> resolve
|
|
5699
|
+
normally.</p>
|
|
5700
|
+
<p><code>@ceedling[:plugin_reportinator]</code> exposes several helpers intended for templates.</p>
|
|
5701
|
+
<table>
|
|
5702
|
+
<thead>
|
|
5703
|
+
<tr>
|
|
5704
|
+
<th>Helper</th>
|
|
5705
|
+
<th>Purpose</th>
|
|
5706
|
+
</tr>
|
|
5707
|
+
</thead>
|
|
5708
|
+
<tbody>
|
|
5709
|
+
<tr>
|
|
5710
|
+
<td><code>test_report_preamble(hash)</code></td>
|
|
5711
|
+
<td>Returns the counts and banner prefix every stdout report needs.</td>
|
|
5712
|
+
</tr>
|
|
5713
|
+
<tr>
|
|
5714
|
+
<td><code>generate_banner(text)</code></td>
|
|
5715
|
+
<td>Formats a section divider.</td>
|
|
5716
|
+
</tr>
|
|
5717
|
+
<tr>
|
|
5718
|
+
<td><code>generate_heading(text)</code></td>
|
|
5719
|
+
<td>Formats a heading.</td>
|
|
5720
|
+
</tr>
|
|
5721
|
+
<tr>
|
|
5722
|
+
<td><code>reflow_message(message, continuation_prefix)</code></td>
|
|
5723
|
+
<td>Indents the second and later lines of a multi-line message.</td>
|
|
5724
|
+
</tr>
|
|
5725
|
+
<tr>
|
|
5726
|
+
<td><code>decorate_summary_banner(text, failed_count)</code></td>
|
|
5727
|
+
<td>Colors a summary banner by outcome.</td>
|
|
5728
|
+
</tr>
|
|
5729
|
+
</tbody>
|
|
5730
|
+
</table>
|
|
5731
|
+
<h3 id="unsupported-syntax">Unsupported syntax</h3>
|
|
5732
|
+
<p>Four ERB constructs are unavailable. A template relying on any of them needs
|
|
5733
|
+
revision.</p>
|
|
5734
|
+
<table>
|
|
5735
|
+
<thead>
|
|
5736
|
+
<tr>
|
|
5737
|
+
<th>Construct</th>
|
|
5738
|
+
<th>Behavior</th>
|
|
5739
|
+
</tr>
|
|
5740
|
+
</thead>
|
|
5741
|
+
<tbody>
|
|
5742
|
+
<tr>
|
|
5743
|
+
<td><code>-%></code></td>
|
|
5744
|
+
<td>Raises <code>SyntaxError</code>. ERB offered this only under a trim mode Ceedling never used.</td>
|
|
5745
|
+
</tr>
|
|
5746
|
+
<tr>
|
|
5747
|
+
<td><code><%%</code></td>
|
|
5748
|
+
<td>Not an escape. The characters are not translated to a literal <code><%</code>.</td>
|
|
5749
|
+
</tr>
|
|
5750
|
+
<tr>
|
|
5751
|
+
<td>A tag spanning lines</td>
|
|
5752
|
+
<td>Raises <code>CeedlingException</code> naming the template line.</td>
|
|
5753
|
+
</tr>
|
|
5754
|
+
<tr>
|
|
5755
|
+
<td>A tag never closed on its line</td>
|
|
5756
|
+
<td>Raises <code>CeedlingException</code> naming the template line.</td>
|
|
5757
|
+
</tr>
|
|
5758
|
+
</tbody>
|
|
5759
|
+
</table>
|
|
5760
|
+
<p>The last two are deliberate. ERB accepted a multi-line tag. ERB also responded to
|
|
5761
|
+
an unclosed tag by treating the rest of the template as Ruby, which produced
|
|
5762
|
+
garbled output rather than an error. Naming the offending line is more useful to a
|
|
5763
|
+
template author than either behavior.</p>
|
|
5764
|
+
<div class="admonition warning">
|
|
5765
|
+
<p class="admonition-title">Porting a template written for ERB</p>
|
|
5766
|
+
<p>Ceedling’s own templates never used the unsupported constructs above, and
|
|
5767
|
+
neither did any template this project has seen. Check a template against the
|
|
5768
|
+
table before assuming it needs no changes. A Ruby error inside a template
|
|
5769
|
+
reports its location as <code>(ceedling template):<line></code>, where the line number is
|
|
5770
|
+
the template’s own.</p>
|
|
5771
|
+
</div>
|
|
5020
5772
|
<p><br/><br/></p>
|
|
5021
5773
|
|
|
5022
5774
|
|