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
|
|
|
@@ -332,7 +356,7 @@
|
|
|
332
356
|
|
|
333
357
|
|
|
334
358
|
<li class="md-tabs__item">
|
|
335
|
-
<a href="../project/
|
|
359
|
+
<a href="../project/index.html" class="md-tabs__link">
|
|
336
360
|
|
|
337
361
|
|
|
338
362
|
|
|
@@ -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
|
|
|
@@ -2412,6 +2466,8 @@
|
|
|
2412
2466
|
|
|
2413
2467
|
|
|
2414
2468
|
|
|
2469
|
+
|
|
2470
|
+
|
|
2415
2471
|
|
|
2416
2472
|
|
|
2417
2473
|
|
|
@@ -3049,8 +3105,64 @@
|
|
|
3049
3105
|
|
|
3050
3106
|
|
|
3051
3107
|
<li class="md-nav__item">
|
|
3052
|
-
<a href="
|
|
3108
|
+
<a href="sanitize.html" class="md-nav__link">
|
|
3109
|
+
|
|
3110
|
+
|
|
3111
|
+
|
|
3112
|
+
<span class="md-ellipsis">
|
|
3113
|
+
|
|
3114
|
+
|
|
3115
|
+
Sanitize (ASan, UBSan & Leaks)
|
|
3116
|
+
|
|
3117
|
+
|
|
3118
|
+
|
|
3119
|
+
</span>
|
|
3120
|
+
|
|
3121
|
+
|
|
3122
|
+
|
|
3123
|
+
</a>
|
|
3124
|
+
</li>
|
|
3125
|
+
|
|
3126
|
+
|
|
3127
|
+
|
|
3128
|
+
|
|
3129
|
+
|
|
3130
|
+
|
|
3131
|
+
|
|
3132
|
+
|
|
3133
|
+
|
|
3134
|
+
|
|
3135
|
+
|
|
3136
|
+
|
|
3137
|
+
|
|
3138
|
+
|
|
3139
|
+
|
|
3140
|
+
|
|
3141
|
+
|
|
3142
|
+
|
|
3143
|
+
|
|
3144
|
+
|
|
3145
|
+
|
|
3146
|
+
|
|
3147
|
+
|
|
3148
|
+
|
|
3149
|
+
|
|
3150
|
+
|
|
3151
|
+
|
|
3152
|
+
|
|
3153
|
+
|
|
3154
|
+
|
|
3155
|
+
|
|
3156
|
+
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
|
3157
|
+
|
|
3158
|
+
|
|
3159
|
+
|
|
3160
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" >
|
|
3053
3161
|
|
|
3162
|
+
|
|
3163
|
+
<div class="md-nav__link md-nav__container">
|
|
3164
|
+
<a href="bullseye/index.html" class="md-nav__link ">
|
|
3165
|
+
|
|
3054
3166
|
|
|
3055
3167
|
|
|
3056
3168
|
<span class="md-ellipsis">
|
|
@@ -3060,6 +3172,50 @@
|
|
|
3060
3172
|
|
|
3061
3173
|
|
|
3062
3174
|
|
|
3175
|
+
</span>
|
|
3176
|
+
|
|
3177
|
+
|
|
3178
|
+
|
|
3179
|
+
</a>
|
|
3180
|
+
|
|
3181
|
+
|
|
3182
|
+
<label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="">
|
|
3183
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3184
|
+
</label>
|
|
3185
|
+
|
|
3186
|
+
</div>
|
|
3187
|
+
|
|
3188
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="false">
|
|
3189
|
+
<label class="md-nav__title" for="__nav_6_13">
|
|
3190
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3191
|
+
|
|
3192
|
+
|
|
3193
|
+
Bullseye (Coverage)
|
|
3194
|
+
|
|
3195
|
+
|
|
3196
|
+
</label>
|
|
3197
|
+
<ul class="md-nav__list" data-md-scrollfix>
|
|
3198
|
+
|
|
3199
|
+
|
|
3200
|
+
|
|
3201
|
+
|
|
3202
|
+
|
|
3203
|
+
|
|
3204
|
+
|
|
3205
|
+
|
|
3206
|
+
|
|
3207
|
+
<li class="md-nav__item">
|
|
3208
|
+
<a href="bullseye/licensing.html" class="md-nav__link">
|
|
3209
|
+
|
|
3210
|
+
|
|
3211
|
+
|
|
3212
|
+
<span class="md-ellipsis">
|
|
3213
|
+
|
|
3214
|
+
|
|
3215
|
+
Licensing
|
|
3216
|
+
|
|
3217
|
+
|
|
3218
|
+
|
|
3063
3219
|
</span>
|
|
3064
3220
|
|
|
3065
3221
|
|
|
@@ -3070,6 +3226,14 @@
|
|
|
3070
3226
|
|
|
3071
3227
|
|
|
3072
3228
|
|
|
3229
|
+
</ul>
|
|
3230
|
+
</nav>
|
|
3231
|
+
|
|
3232
|
+
</li>
|
|
3233
|
+
|
|
3234
|
+
|
|
3235
|
+
|
|
3236
|
+
|
|
3073
3237
|
|
|
3074
3238
|
|
|
3075
3239
|
|
|
@@ -3282,11 +3446,33 @@
|
|
|
3282
3446
|
<nav class="md-nav" aria-label="Paths">
|
|
3283
3447
|
<ul class="md-nav__list">
|
|
3284
3448
|
|
|
3449
|
+
<li class="md-nav__item">
|
|
3450
|
+
<a href="#path-hints" class="md-nav__link">
|
|
3451
|
+
<span class="md-ellipsis">
|
|
3452
|
+
|
|
3453
|
+
Path hints
|
|
3454
|
+
|
|
3455
|
+
</span>
|
|
3456
|
+
</a>
|
|
3457
|
+
|
|
3458
|
+
</li>
|
|
3459
|
+
|
|
3285
3460
|
<li class="md-nav__item">
|
|
3286
3461
|
<a href="#adding-to-paths" class="md-nav__link">
|
|
3287
3462
|
<span class="md-ellipsis">
|
|
3288
3463
|
|
|
3289
|
-
Adding to
|
|
3464
|
+
Adding to paths
|
|
3465
|
+
|
|
3466
|
+
</span>
|
|
3467
|
+
</a>
|
|
3468
|
+
|
|
3469
|
+
</li>
|
|
3470
|
+
|
|
3471
|
+
<li class="md-nav__item">
|
|
3472
|
+
<a href="#same-named-files" class="md-nav__link">
|
|
3473
|
+
<span class="md-ellipsis">
|
|
3474
|
+
|
|
3475
|
+
Same-named files
|
|
3290
3476
|
|
|
3291
3477
|
</span>
|
|
3292
3478
|
</a>
|
|
@@ -3307,6 +3493,28 @@
|
|
|
3307
3493
|
</span>
|
|
3308
3494
|
</a>
|
|
3309
3495
|
|
|
3496
|
+
</li>
|
|
3497
|
+
|
|
3498
|
+
<li class="md-nav__item">
|
|
3499
|
+
<a href="#testing-from-headers" class="md-nav__link">
|
|
3500
|
+
<span class="md-ellipsis">
|
|
3501
|
+
|
|
3502
|
+
Testing from headers
|
|
3503
|
+
|
|
3504
|
+
</span>
|
|
3505
|
+
</a>
|
|
3506
|
+
|
|
3507
|
+
</li>
|
|
3508
|
+
|
|
3509
|
+
<li class="md-nav__item">
|
|
3510
|
+
<a href="#destroying" class="md-nav__link">
|
|
3511
|
+
<span class="md-ellipsis">
|
|
3512
|
+
|
|
3513
|
+
Destroying
|
|
3514
|
+
|
|
3515
|
+
</span>
|
|
3516
|
+
</a>
|
|
3517
|
+
|
|
3310
3518
|
</li>
|
|
3311
3519
|
|
|
3312
3520
|
<li class="md-nav__item">
|
|
@@ -3321,6 +3529,28 @@
|
|
|
3321
3529
|
<nav class="md-nav" aria-label="Configuration">
|
|
3322
3530
|
<ul class="md-nav__list">
|
|
3323
3531
|
|
|
3532
|
+
<li class="md-nav__item">
|
|
3533
|
+
<a href="#naming-convention" class="md-nav__link">
|
|
3534
|
+
<span class="md-ellipsis">
|
|
3535
|
+
|
|
3536
|
+
Naming convention
|
|
3537
|
+
|
|
3538
|
+
</span>
|
|
3539
|
+
</a>
|
|
3540
|
+
|
|
3541
|
+
</li>
|
|
3542
|
+
|
|
3543
|
+
<li class="md-nav__item">
|
|
3544
|
+
<a href="#default-paths" class="md-nav__link">
|
|
3545
|
+
<span class="md-ellipsis">
|
|
3546
|
+
|
|
3547
|
+
Default paths
|
|
3548
|
+
|
|
3549
|
+
</span>
|
|
3550
|
+
</a>
|
|
3551
|
+
|
|
3552
|
+
</li>
|
|
3553
|
+
|
|
3324
3554
|
<li class="md-nav__item">
|
|
3325
3555
|
<a href="#includes" class="md-nav__link">
|
|
3326
3556
|
<span class="md-ellipsis">
|
|
@@ -3341,13 +3571,24 @@
|
|
|
3341
3571
|
</span>
|
|
3342
3572
|
</a>
|
|
3343
3573
|
|
|
3574
|
+
</li>
|
|
3575
|
+
|
|
3576
|
+
<li class="md-nav__item">
|
|
3577
|
+
<a href="#boilerplate-files" class="md-nav__link">
|
|
3578
|
+
<span class="md-ellipsis">
|
|
3579
|
+
|
|
3580
|
+
Boilerplate files
|
|
3581
|
+
|
|
3582
|
+
</span>
|
|
3583
|
+
</a>
|
|
3584
|
+
|
|
3344
3585
|
</li>
|
|
3345
3586
|
|
|
3346
3587
|
<li class="md-nav__item">
|
|
3347
3588
|
<a href="#test-defines" class="md-nav__link">
|
|
3348
3589
|
<span class="md-ellipsis">
|
|
3349
3590
|
|
|
3350
|
-
Test
|
|
3591
|
+
Test defines
|
|
3351
3592
|
|
|
3352
3593
|
</span>
|
|
3353
3594
|
</a>
|
|
@@ -3355,10 +3596,10 @@
|
|
|
3355
3596
|
</li>
|
|
3356
3597
|
|
|
3357
3598
|
<li class="md-nav__item">
|
|
3358
|
-
<a href="#
|
|
3599
|
+
<a href="#test-guards" class="md-nav__link">
|
|
3359
3600
|
<span class="md-ellipsis">
|
|
3360
3601
|
|
|
3361
|
-
|
|
3602
|
+
Test guards
|
|
3362
3603
|
|
|
3363
3604
|
</span>
|
|
3364
3605
|
</a>
|
|
@@ -3708,6 +3949,12 @@
|
|
|
3708
3949
|
|
|
3709
3950
|
|
|
3710
3951
|
|
|
3952
|
+
|
|
3953
|
+
|
|
3954
|
+
|
|
3955
|
+
|
|
3956
|
+
|
|
3957
|
+
|
|
3711
3958
|
|
|
3712
3959
|
|
|
3713
3960
|
|
|
@@ -3727,8 +3974,9 @@
|
|
|
3727
3974
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
|
|
3728
3975
|
|
|
3729
3976
|
|
|
3730
|
-
<
|
|
3731
|
-
|
|
3977
|
+
<div class="md-nav__link md-nav__container">
|
|
3978
|
+
<a href="../project/index.html" class="md-nav__link ">
|
|
3979
|
+
|
|
3732
3980
|
|
|
3733
3981
|
|
|
3734
3982
|
<span class="md-ellipsis">
|
|
@@ -3742,8 +3990,14 @@
|
|
|
3742
3990
|
|
|
3743
3991
|
|
|
3744
3992
|
|
|
3745
|
-
|
|
3746
|
-
|
|
3993
|
+
</a>
|
|
3994
|
+
|
|
3995
|
+
|
|
3996
|
+
<label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
|
|
3997
|
+
<span class="md-nav__icon md-icon"></span>
|
|
3998
|
+
</label>
|
|
3999
|
+
|
|
4000
|
+
</div>
|
|
3747
4001
|
|
|
3748
4002
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
|
|
3749
4003
|
<label class="md-nav__title" for="__nav_8">
|
|
@@ -3757,6 +4011,8 @@
|
|
|
3757
4011
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
3758
4012
|
|
|
3759
4013
|
|
|
4014
|
+
|
|
4015
|
+
|
|
3760
4016
|
|
|
3761
4017
|
|
|
3762
4018
|
|
|
@@ -3790,6 +4046,34 @@
|
|
|
3790
4046
|
|
|
3791
4047
|
|
|
3792
4048
|
|
|
4049
|
+
<li class="md-nav__item">
|
|
4050
|
+
<a href="../project/sbom.html" class="md-nav__link">
|
|
4051
|
+
|
|
4052
|
+
|
|
4053
|
+
|
|
4054
|
+
<span class="md-ellipsis">
|
|
4055
|
+
|
|
4056
|
+
|
|
4057
|
+
Software Bill of Materials
|
|
4058
|
+
|
|
4059
|
+
|
|
4060
|
+
|
|
4061
|
+
</span>
|
|
4062
|
+
|
|
4063
|
+
|
|
4064
|
+
|
|
4065
|
+
</a>
|
|
4066
|
+
</li>
|
|
4067
|
+
|
|
4068
|
+
|
|
4069
|
+
|
|
4070
|
+
|
|
4071
|
+
|
|
4072
|
+
|
|
4073
|
+
|
|
4074
|
+
|
|
4075
|
+
|
|
4076
|
+
|
|
3793
4077
|
<li class="md-nav__item">
|
|
3794
4078
|
<a href="../project/upgrade.html" class="md-nav__link">
|
|
3795
4079
|
|
|
@@ -3861,6 +4145,8 @@
|
|
|
3861
4145
|
|
|
3862
4146
|
|
|
3863
4147
|
|
|
4148
|
+
|
|
4149
|
+
|
|
3864
4150
|
|
|
3865
4151
|
|
|
3866
4152
|
|
|
@@ -3951,6 +4237,34 @@
|
|
|
3951
4237
|
|
|
3952
4238
|
|
|
3953
4239
|
|
|
4240
|
+
<li class="md-nav__item">
|
|
4241
|
+
<a href="../development/releases.html" class="md-nav__link">
|
|
4242
|
+
|
|
4243
|
+
|
|
4244
|
+
|
|
4245
|
+
<span class="md-ellipsis">
|
|
4246
|
+
|
|
4247
|
+
|
|
4248
|
+
Branching & Releases
|
|
4249
|
+
|
|
4250
|
+
|
|
4251
|
+
|
|
4252
|
+
</span>
|
|
4253
|
+
|
|
4254
|
+
|
|
4255
|
+
|
|
4256
|
+
</a>
|
|
4257
|
+
</li>
|
|
4258
|
+
|
|
4259
|
+
|
|
4260
|
+
|
|
4261
|
+
|
|
4262
|
+
|
|
4263
|
+
|
|
4264
|
+
|
|
4265
|
+
|
|
4266
|
+
|
|
4267
|
+
|
|
3954
4268
|
|
|
3955
4269
|
|
|
3956
4270
|
|
|
@@ -3977,7 +4291,7 @@
|
|
|
3977
4291
|
|
|
3978
4292
|
|
|
3979
4293
|
|
|
3980
|
-
<input class="md-nav__toggle md-toggle " type="checkbox" id="
|
|
4294
|
+
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
|
|
3981
4295
|
|
|
3982
4296
|
|
|
3983
4297
|
<div class="md-nav__link md-nav__container">
|
|
@@ -3999,14 +4313,14 @@
|
|
|
3999
4313
|
</a>
|
|
4000
4314
|
|
|
4001
4315
|
|
|
4002
|
-
<label class="md-nav__link " for="
|
|
4316
|
+
<label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="0">
|
|
4003
4317
|
<span class="md-nav__icon md-icon"></span>
|
|
4004
4318
|
</label>
|
|
4005
4319
|
|
|
4006
4320
|
</div>
|
|
4007
4321
|
|
|
4008
|
-
<nav class="md-nav" data-md-level="2" aria-labelledby="
|
|
4009
|
-
<label class="md-nav__title" for="
|
|
4322
|
+
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
|
|
4323
|
+
<label class="md-nav__title" for="__nav_10_4">
|
|
4010
4324
|
<span class="md-nav__icon md-icon"></span>
|
|
4011
4325
|
|
|
4012
4326
|
|
|
@@ -4177,11 +4491,33 @@
|
|
|
4177
4491
|
<nav class="md-nav" aria-label="Paths">
|
|
4178
4492
|
<ul class="md-nav__list">
|
|
4179
4493
|
|
|
4494
|
+
<li class="md-nav__item">
|
|
4495
|
+
<a href="#path-hints" class="md-nav__link">
|
|
4496
|
+
<span class="md-ellipsis">
|
|
4497
|
+
|
|
4498
|
+
Path hints
|
|
4499
|
+
|
|
4500
|
+
</span>
|
|
4501
|
+
</a>
|
|
4502
|
+
|
|
4503
|
+
</li>
|
|
4504
|
+
|
|
4180
4505
|
<li class="md-nav__item">
|
|
4181
4506
|
<a href="#adding-to-paths" class="md-nav__link">
|
|
4182
4507
|
<span class="md-ellipsis">
|
|
4183
4508
|
|
|
4184
|
-
Adding to
|
|
4509
|
+
Adding to paths
|
|
4510
|
+
|
|
4511
|
+
</span>
|
|
4512
|
+
</a>
|
|
4513
|
+
|
|
4514
|
+
</li>
|
|
4515
|
+
|
|
4516
|
+
<li class="md-nav__item">
|
|
4517
|
+
<a href="#same-named-files" class="md-nav__link">
|
|
4518
|
+
<span class="md-ellipsis">
|
|
4519
|
+
|
|
4520
|
+
Same-named files
|
|
4185
4521
|
|
|
4186
4522
|
</span>
|
|
4187
4523
|
</a>
|
|
@@ -4202,6 +4538,28 @@
|
|
|
4202
4538
|
</span>
|
|
4203
4539
|
</a>
|
|
4204
4540
|
|
|
4541
|
+
</li>
|
|
4542
|
+
|
|
4543
|
+
<li class="md-nav__item">
|
|
4544
|
+
<a href="#testing-from-headers" class="md-nav__link">
|
|
4545
|
+
<span class="md-ellipsis">
|
|
4546
|
+
|
|
4547
|
+
Testing from headers
|
|
4548
|
+
|
|
4549
|
+
</span>
|
|
4550
|
+
</a>
|
|
4551
|
+
|
|
4552
|
+
</li>
|
|
4553
|
+
|
|
4554
|
+
<li class="md-nav__item">
|
|
4555
|
+
<a href="#destroying" class="md-nav__link">
|
|
4556
|
+
<span class="md-ellipsis">
|
|
4557
|
+
|
|
4558
|
+
Destroying
|
|
4559
|
+
|
|
4560
|
+
</span>
|
|
4561
|
+
</a>
|
|
4562
|
+
|
|
4205
4563
|
</li>
|
|
4206
4564
|
|
|
4207
4565
|
<li class="md-nav__item">
|
|
@@ -4216,6 +4574,28 @@
|
|
|
4216
4574
|
<nav class="md-nav" aria-label="Configuration">
|
|
4217
4575
|
<ul class="md-nav__list">
|
|
4218
4576
|
|
|
4577
|
+
<li class="md-nav__item">
|
|
4578
|
+
<a href="#naming-convention" class="md-nav__link">
|
|
4579
|
+
<span class="md-ellipsis">
|
|
4580
|
+
|
|
4581
|
+
Naming convention
|
|
4582
|
+
|
|
4583
|
+
</span>
|
|
4584
|
+
</a>
|
|
4585
|
+
|
|
4586
|
+
</li>
|
|
4587
|
+
|
|
4588
|
+
<li class="md-nav__item">
|
|
4589
|
+
<a href="#default-paths" class="md-nav__link">
|
|
4590
|
+
<span class="md-ellipsis">
|
|
4591
|
+
|
|
4592
|
+
Default paths
|
|
4593
|
+
|
|
4594
|
+
</span>
|
|
4595
|
+
</a>
|
|
4596
|
+
|
|
4597
|
+
</li>
|
|
4598
|
+
|
|
4219
4599
|
<li class="md-nav__item">
|
|
4220
4600
|
<a href="#includes" class="md-nav__link">
|
|
4221
4601
|
<span class="md-ellipsis">
|
|
@@ -4236,13 +4616,24 @@
|
|
|
4236
4616
|
</span>
|
|
4237
4617
|
</a>
|
|
4238
4618
|
|
|
4619
|
+
</li>
|
|
4620
|
+
|
|
4621
|
+
<li class="md-nav__item">
|
|
4622
|
+
<a href="#boilerplate-files" class="md-nav__link">
|
|
4623
|
+
<span class="md-ellipsis">
|
|
4624
|
+
|
|
4625
|
+
Boilerplate files
|
|
4626
|
+
|
|
4627
|
+
</span>
|
|
4628
|
+
</a>
|
|
4629
|
+
|
|
4239
4630
|
</li>
|
|
4240
4631
|
|
|
4241
4632
|
<li class="md-nav__item">
|
|
4242
4633
|
<a href="#test-defines" class="md-nav__link">
|
|
4243
4634
|
<span class="md-ellipsis">
|
|
4244
4635
|
|
|
4245
|
-
Test
|
|
4636
|
+
Test defines
|
|
4246
4637
|
|
|
4247
4638
|
</span>
|
|
4248
4639
|
</a>
|
|
@@ -4250,10 +4641,10 @@
|
|
|
4250
4641
|
</li>
|
|
4251
4642
|
|
|
4252
4643
|
<li class="md-nav__item">
|
|
4253
|
-
<a href="#
|
|
4644
|
+
<a href="#test-guards" class="md-nav__link">
|
|
4254
4645
|
<span class="md-ellipsis">
|
|
4255
4646
|
|
|
4256
|
-
|
|
4647
|
+
Test guards
|
|
4257
4648
|
|
|
4258
4649
|
</span>
|
|
4259
4650
|
</a>
|
|
@@ -4334,212 +4725,405 @@
|
|
|
4334
4725
|
|
|
4335
4726
|
|
|
4336
4727
|
<h1 id="module-generator">Module Generator</h1>
|
|
4337
|
-
<p>This plugin adds
|
|
4338
|
-
|
|
4728
|
+
<p>This plugin adds commands to Ceedling that create a module’s source, header, and test
|
|
4729
|
+
files from templates; remove them again; and stub a source file from its header. Files
|
|
4730
|
+
land in your project’s <a href="../configuration/reference/paths.html"><code>:paths</code></a>, guided by optional hints.</p>
|
|
4339
4731
|
<h2 id="overview">Overview</h2>
|
|
4340
|
-
<p>
|
|
4341
|
-
|
|
4342
|
-
|
|
4343
|
-
|
|
4344
|
-
<
|
|
4345
|
-
|
|
4732
|
+
<p>Enable the plugin by adding <code>module_generator</code> to the enabled <a href="../configuration/reference/plugins.html">plugins</a> list in
|
|
4733
|
+
your project configuration:</p>
|
|
4734
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nt">:plugins</span><span class="p">:</span>
|
|
4735
|
+
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="w"> </span><span class="nt">:enabled</span><span class="p">:</span>
|
|
4736
|
+
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">module_generator</span>
|
|
4737
|
+
</code></pre></div>
|
|
4738
|
+
<p>Then a single call creates a new module:</p>
|
|
4739
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[MadScience]"</span>
|
|
4740
|
+
</code></pre></div>
|
|
4741
|
+
<p>This creates <code>MadScience.c</code>, <code>MadScience.h</code>, and <code>test_MadScience.c</code>. The test file
|
|
4742
|
+
carries your project’s <a href="../configuration/reference/project.html#test_file_prefix"><code>:test_file_prefix</code></a>. Names keep the case you type unless you
|
|
4743
|
+
configure a <a href="#naming-convention">naming convention</a>.</p>
|
|
4744
|
+
<p>Several modules can be named in one call, separated by commas. Leave no spaces between
|
|
4745
|
+
the brackets or rely on surrounding quotes; your shell would otherwise split the command.</p>
|
|
4746
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[MadScience,EvilGenius,SecretLair]"</span>
|
|
4346
4747
|
</code></pre></div>
|
|
4347
|
-
<p>
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
<
|
|
4351
|
-
|
|
4748
|
+
<p>The plugin’s three commands take the same arguments:</p>
|
|
4749
|
+
<table>
|
|
4750
|
+
<thead>
|
|
4751
|
+
<tr>
|
|
4752
|
+
<th>Command</th>
|
|
4753
|
+
<th>Does</th>
|
|
4754
|
+
</tr>
|
|
4755
|
+
</thead>
|
|
4756
|
+
<tbody>
|
|
4757
|
+
<tr>
|
|
4758
|
+
<td><code>module:create[...]</code></td>
|
|
4759
|
+
<td>Creates each module’s files, skipping any that already exist and stopping when all of them do</td>
|
|
4760
|
+
</tr>
|
|
4761
|
+
<tr>
|
|
4762
|
+
<td><code>module:destroy[...]</code></td>
|
|
4763
|
+
<td>Removes each module’s files</td>
|
|
4764
|
+
</tr>
|
|
4765
|
+
<tr>
|
|
4766
|
+
<td><code>module:stub[...]</code></td>
|
|
4767
|
+
<td>Writes a source file of function stubs from each module’s header</td>
|
|
4768
|
+
</tr>
|
|
4769
|
+
<tr>
|
|
4770
|
+
<td><code>module:test[...]</code></td>
|
|
4771
|
+
<td>Writes a test file with a test for each function in each module’s header</td>
|
|
4772
|
+
</tr>
|
|
4773
|
+
</tbody>
|
|
4774
|
+
</table>
|
|
4775
|
+
<p>A name that begins with your test file prefix asks for a test file alone.
|
|
4776
|
+
<code>"module:create[test_MadScience]"</code> creates only <code>test_MadScience.c</code>. When the prefix ends
|
|
4777
|
+
in a letter or digit, as a prefix of <code>Test</code> does, the character after the prefix must
|
|
4778
|
+
not be a lowercase letter or digit. An uppercase letter starts the module name, so
|
|
4779
|
+
<code>TestMadScience</code> is a test file for <code>MadScience</code>, while <code>Testimony</code> and <code>Test2Widget</code>
|
|
4780
|
+
are modules. A prefix ending in a separator, like the default <code>test_</code>,
|
|
4781
|
+
needs no such check.</p>
|
|
4352
4782
|
<h2 id="patterns">Patterns</h2>
|
|
4353
|
-
<p>
|
|
4354
|
-
|
|
4355
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>ceedling<span class="w"> </span>module:create<span class="o">[</span>SecretLair,mch<span class="o">]</span>
|
|
4783
|
+
<p>A pattern creates a set of related modules at once. Name it after the module:</p>
|
|
4784
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[SecretLair,mch]"</span>
|
|
4356
4785
|
</code></pre></div>
|
|
4357
|
-
<p>
|
|
4358
|
-
|
|
4359
|
-
|
|
4786
|
+
<p>This creates nine files: a source, header, and test file each for <code>SecretLair_Model</code>,
|
|
4787
|
+
<code>SecretLair_Conductor</code>, and <code>SecretLair_Hardware</code>. With <code>:naming</code> set to <code>:bumpy</code>, the
|
|
4788
|
+
same call creates <code>SecretLairModel</code>, <code>SecretLairConductor</code>, and <code>SecretLairHardware</code>.
|
|
4789
|
+
Each generated module includes the headers its role depends on, and each test includes
|
|
4790
|
+
the mocks of those headers.</p>
|
|
4360
4791
|
<p>The module generator understands the following patterns:</p>
|
|
4361
4792
|
<ul>
|
|
4362
|
-
<li><code>src</code>
|
|
4363
|
-
<li><code>test</code>
|
|
4364
|
-
<li><code>
|
|
4365
|
-
<li><code>
|
|
4366
|
-
<li><code>
|
|
4367
|
-
<li><code>
|
|
4793
|
+
<li><code>src</code> — a source, header, and test file (the default)</li>
|
|
4794
|
+
<li><code>test</code> — only a test file</li>
|
|
4795
|
+
<li><code>mch</code> — 9 files for the <a href="https://cdn.prod.website-files.com/628fcc1631ad0b25b32f223e/62e43a26764867e95fe5a138_ESC-413Paper_KarleskyWilliams.pdf">model-conductor-hardware (pdf)</a> pattern (<a href="https://www.methodsandtools.com/archive/archive.php?id=59">html</a>)</li>
|
|
4796
|
+
<li><code>mvp</code> — 9 files for the <a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter">model-view-presenter</a> pattern</li>
|
|
4797
|
+
<li><code>dh</code> — 6 files for the driver-hardware pattern</li>
|
|
4798
|
+
<li><code>dih</code> — 9 files for the driver-interrupt-hardware pattern</li>
|
|
4368
4799
|
</ul>
|
|
4800
|
+
<p>The <code>dh</code> and <code>dih</code> patterns are alternate namings and conceptual organizations of the
|
|
4801
|
+
model-conductor-hardware pattern.</p>
|
|
4802
|
+
<p>A pattern applies to every module in the call, and a call takes one pattern. The first
|
|
4803
|
+
argument is always a module name, even one spelled like a pattern.</p>
|
|
4369
4804
|
<h2 id="paths">Paths</h2>
|
|
4370
|
-
<p>
|
|
4371
|
-
<
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
<a id="__codelineno-
|
|
4805
|
+
<p>Without any hint, each kind of file goes to the first path listed for it under
|
|
4806
|
+
<a href="../configuration/reference/paths.html"><code>:paths</code></a>. Source files go to the first <code>:source</code> path, headers to the first <code>:include</code>
|
|
4807
|
+
path, and tests to the first <code>:test</code> path. Headers go with the source when your project
|
|
4808
|
+
lists no include paths. To choose other default locations, configure them:</p>
|
|
4809
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
4810
|
+
<a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="nt">:path_src</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">src/</span>
|
|
4811
|
+
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="nt">:path_inc</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">include/</span>
|
|
4812
|
+
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="nt">:path_tst</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test/</span>
|
|
4375
4813
|
</code></pre></div>
|
|
4376
|
-
<
|
|
4377
|
-
<p>
|
|
4378
|
-
|
|
4379
|
-
matches a common pattern. For example, let's say you issue this command:</p>
|
|
4380
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>ceedling<span class="w"> </span>module:create<span class="o">[</span>lab:SecretLair,mch<span class="o">]</span>
|
|
4814
|
+
<h3 id="path-hints">Path hints</h3>
|
|
4815
|
+
<p>A hint before a colon steers a module toward matching paths:</p>
|
|
4816
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[lab:SecretLair,mch]"</span>
|
|
4381
4817
|
</code></pre></div>
|
|
4382
|
-
<p>
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
<
|
|
4388
|
-
<a id="__codelineno-
|
|
4389
|
-
<a id="__codelineno-
|
|
4390
|
-
<a id="__codelineno-
|
|
4391
|
-
<a id="__codelineno-4
|
|
4818
|
+
<p>The hint is matched separately against your source, include, and test paths, and each
|
|
4819
|
+
kind of file goes to the path the hint matches best. A path matches best when its
|
|
4820
|
+
trailing folders match the hint. When the hint matches nothing among one kind of path,
|
|
4821
|
+
those files go to the first path of that kind. When it matches nothing at all, the
|
|
4822
|
+
command stops with an error and creates nothing.</p>
|
|
4823
|
+
<p>Say your project lists these paths:</p>
|
|
4824
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="nt">:paths</span><span class="p">:</span>
|
|
4825
|
+
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span>
|
|
4826
|
+
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lab/src</span>
|
|
4827
|
+
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lair/src</span>
|
|
4828
|
+
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">other/src</span>
|
|
4829
|
+
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="w"> </span><span class="nt">:test</span><span class="p">:</span>
|
|
4830
|
+
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lab/test</span>
|
|
4831
|
+
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">lair/test</span>
|
|
4832
|
+
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">other/test</span>
|
|
4392
4833
|
</code></pre></div>
|
|
4393
|
-
<p>
|
|
4834
|
+
<p>The <code>lab:</code> hint places files here:</p>
|
|
4394
4835
|
<ul>
|
|
4395
|
-
<li>source files: <code>lab/src</code> (
|
|
4396
|
-
<li>include files: <code>lab/src</code> (
|
|
4397
|
-
<li>test files: <code>lab/test</code> (
|
|
4836
|
+
<li>source files: <code>lab/src</code> (a close match)</li>
|
|
4837
|
+
<li>include files: <code>lab/src</code> (no include paths are listed, so headers go with the source)</li>
|
|
4838
|
+
<li>test files: <code>lab/test</code> (a close match)</li>
|
|
4398
4839
|
</ul>
|
|
4399
|
-
<p>Instead,
|
|
4400
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4401
|
-
<a id="__codelineno-
|
|
4402
|
-
<a id="__codelineno-
|
|
4403
|
-
<a id="__codelineno-
|
|
4404
|
-
<a id="__codelineno-
|
|
4405
|
-
<a id="__codelineno-
|
|
4406
|
-
<a id="__codelineno-
|
|
4840
|
+
<p>Instead, say your paths look like this:</p>
|
|
4841
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="nt">:paths</span><span class="p">:</span>
|
|
4842
|
+
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a><span class="w"> </span><span class="nt">:source</span><span class="p">:</span>
|
|
4843
|
+
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">src/**</span><span class="w"> </span><span class="c1"># might contain subfolders lab, lair, and other</span>
|
|
4844
|
+
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="w"> </span><span class="nt">:include</span><span class="p">:</span>
|
|
4845
|
+
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">inc/**</span><span class="w"> </span><span class="c1"># might contain subfolders lab, lair, other, and shared</span>
|
|
4846
|
+
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w"> </span><span class="nt">:test</span><span class="p">:</span>
|
|
4847
|
+
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test</span>
|
|
4407
4848
|
</code></pre></div>
|
|
4408
|
-
<p>
|
|
4849
|
+
<p>Now the <code>lab:</code> hint places files here:</p>
|
|
4409
4850
|
<ul>
|
|
4410
|
-
<li>source files: <code>src/lab</code> (
|
|
4411
|
-
<li>include files: <code>inc/lab</code> (
|
|
4412
|
-
<li>test files: <code>test</code> (
|
|
4851
|
+
<li>source files: <code>src/lab</code> (a close match)</li>
|
|
4852
|
+
<li>include files: <code>inc/lab</code> (a close match)</li>
|
|
4853
|
+
<li>test files: <code>test</code> (no close match, so the first test path)</li>
|
|
4413
4854
|
</ul>
|
|
4414
|
-
<p>
|
|
4415
|
-
time... no worries... you can move the file after it's created... but if your project has any kind of
|
|
4416
|
-
consistent structure, the guessing engine does a good job of making it work.</p>
|
|
4417
|
-
<p>A few more quick notes about the path-matching:</p>
|
|
4855
|
+
<p>A few more notes about hints:</p>
|
|
4418
4856
|
<ol>
|
|
4419
|
-
<li>
|
|
4420
|
-
<
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
<li>
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
</li>
|
|
4427
|
-
<li>
|
|
4428
|
-
<p>If the matcher completely fails to find a good candidate, it will return an error, allowing you
|
|
4429
|
-
to rectify the situation.</p>
|
|
4430
|
-
</li>
|
|
4431
|
-
<li>
|
|
4432
|
-
<p>What path is "first" when you're using <code>**</code> pattern in your <code>:paths:</code> specifications? The parent
|
|
4433
|
-
folder is used first, then its children alphabetically, and so on. This is important when
|
|
4434
|
-
considering where files (or especially subfolders... see below) will be generated.</p>
|
|
4435
|
-
</li>
|
|
4857
|
+
<li>Several hints narrow the match through nested folders. <code>lab:secret:lair</code> places
|
|
4858
|
+
<code>lair.c</code> in a folder like <code>my/lab/secret/</code>.</li>
|
|
4859
|
+
<li>Among equally good matches, and without any hint, the order of your paths in the
|
|
4860
|
+
project file decides.</li>
|
|
4861
|
+
<li>With a <code>**</code> glob under <code>:paths</code>, the parent folder comes first, then its
|
|
4862
|
+
subfolders alphabetically, and so on.</li>
|
|
4863
|
+
<li>A hint may be an absolute path, including one with a Windows drive letter, as in
|
|
4864
|
+
<code>C:/project/lab:SecretLair</code>.</li>
|
|
4436
4865
|
</ol>
|
|
4437
|
-
<
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
<a id="__codelineno-
|
|
4444
|
-
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">src/**</span><span class="w"> </span><span class="c1">#this might contain subfolders lab, lair, and other</span>
|
|
4445
|
-
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="nt">:include</span><span class="p">:</span>
|
|
4446
|
-
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">inc/**</span><span class="w"> </span><span class="c1">#again, this might contain subfolders lab, lair, other, and shared</span>
|
|
4447
|
-
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="w"> </span><span class="nt">:test</span><span class="p">:</span>
|
|
4448
|
-
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test</span>
|
|
4449
|
-
</code></pre></div>
|
|
4450
|
-
<p>Then, use the following command:</p>
|
|
4451
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>ceedling<span class="w"> </span>module:create<span class="o">[</span>newlab/SecretLair<span class="o">]</span>
|
|
4866
|
+
<p>More complicated structures will sometimes place a file in the wrong folder, and you
|
|
4867
|
+
can move it afterward. A project with a consistent structure gets good placement.</p>
|
|
4868
|
+
<h3 id="adding-to-paths">Adding to paths</h3>
|
|
4869
|
+
<p>A slash in the name, rather than a colon, names a subdirectory to use as given. The
|
|
4870
|
+
module generator creates it if it does not exist. With the second set of paths above,
|
|
4871
|
+
this call:</p>
|
|
4872
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[newlab/SecretLair]"</span>
|
|
4452
4873
|
</code></pre></div>
|
|
4453
|
-
<p>
|
|
4874
|
+
<p>creates these files:</p>
|
|
4454
4875
|
<ul>
|
|
4455
4876
|
<li><code>src/newlab/SecretLair.c</code></li>
|
|
4456
4877
|
<li><code>inc/newlab/SecretLair.h</code></li>
|
|
4457
|
-
<li><code>test/newlab/
|
|
4878
|
+
<li><code>test/newlab/test_SecretLair.c</code></li>
|
|
4458
4879
|
</ul>
|
|
4459
|
-
<p>
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
<code>
|
|
4466
|
-
a file
|
|
4880
|
+
<p>A hint and a slash can combine, as in <code>lab:newlab/SecretLair</code>. A hint picks among
|
|
4881
|
+
existing paths, and the slash then adds a subdirectory below the chosen path.</p>
|
|
4882
|
+
<p>The module generator does not check whether a new subdirectory is covered by your
|
|
4883
|
+
<code>:paths</code>. You can create files before updating your project file. You might also create
|
|
4884
|
+
a file Ceedling does not see until you add its folder to <code>:paths</code>.</p>
|
|
4885
|
+
<h3 id="same-named-files">Same-named files</h3>
|
|
4886
|
+
<p><code>module:create</code> warns about each existing source, header, or test file elsewhere in your
|
|
4887
|
+
project that shares a name with a file it is about to create, then creates the module.
|
|
4888
|
+
Ceedling distinguishes same-named files by their paths, so this is allowed. The warning
|
|
4889
|
+
catches the case where you meant to work with the existing module instead.</p>
|
|
4467
4890
|
<h2 id="stubbing">Stubbing</h2>
|
|
4468
|
-
<p>
|
|
4469
|
-
|
|
4470
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4891
|
+
<p><code>module:stub</code> writes a source file containing a stub for each function its header
|
|
4892
|
+
declares:</p>
|
|
4893
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>ceedling<span class="w"> </span><span class="s2">"module:stub[SecretLair]"</span>
|
|
4471
4894
|
</code></pre></div>
|
|
4472
|
-
<p>This
|
|
4473
|
-
|
|
4474
|
-
|
|
4895
|
+
<p>This reads <code>SecretLair.h</code> from your include path and writes <code>SecretLair.c</code> to your
|
|
4896
|
+
source path. If <code>SecretLair.c</code> already exists, only stubs for newly declared functions
|
|
4897
|
+
are added, and your existing code is left alone.</p>
|
|
4898
|
+
<p>Hints and slashes work as they do for <code>module:create</code>. <code>"module:stub[lab:rev/SecretLair]"</code>
|
|
4899
|
+
reads <code>rev/SecretLair.h</code> below the include path <code>lab:</code> matches and writes
|
|
4900
|
+
<code>rev/SecretLair.c</code> below the matching source path.</p>
|
|
4901
|
+
<p>Headers are parsed with your project’s <a href="../configuration/reference/cmock.html"><code>:cmock</code></a> settings, the same ones that generate
|
|
4902
|
+
your mocks, so options like <code>:strippables</code> and <code>:treat_as</code> apply to stubs too.</p>
|
|
4903
|
+
<h2 id="testing-from-headers">Testing from headers</h2>
|
|
4904
|
+
<p><code>module:test</code> writes a test file containing an ignored test for each function its
|
|
4905
|
+
module’s header declares, a starting point for testing a module that already exists:</p>
|
|
4906
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>ceedling<span class="w"> </span><span class="s2">"module:test[SecretLair]"</span>
|
|
4907
|
+
</code></pre></div>
|
|
4908
|
+
<p>This reads <code>SecretLair.h</code> from your include path and writes <code>test_SecretLair.c</code> to your
|
|
4909
|
+
test path, with a <code>test_<function>_NeedToImplement</code> test for each function. Each test
|
|
4910
|
+
calls <code>TEST_IGNORE_MESSAGE()</code> until you fill it in.</p>
|
|
4911
|
+
<p>Run it again after adding functions to the header, and only tests for the new functions
|
|
4912
|
+
are added, ahead of the file’s closing <code>#endif</code>. A function already counts as tested by
|
|
4913
|
+
any test named <code>test_<function></code> or <code>test_<function>_<anything></code>, so your own
|
|
4914
|
+
descriptive test names are respected and your existing tests are left alone.</p>
|
|
4915
|
+
<p>Hints and slashes work as they do for <code>module:create</code>. The test file uses your
|
|
4916
|
+
configured <a href="#includes">includes</a>, <a href="#boilerplates">boilerplate</a>,
|
|
4917
|
+
<a href="#test-defines">test define</a>, and <a href="#test-guards">test guard</a>. Headers are parsed with
|
|
4918
|
+
your project’s <a href="../configuration/reference/cmock.html"><code>:cmock</code></a> settings, as for <a href="#stubbing">stubbing</a>.</p>
|
|
4919
|
+
<h2 id="destroying">Destroying</h2>
|
|
4920
|
+
<p><code>module:destroy</code> removes the files <code>module:create</code> would make for the same arguments,
|
|
4921
|
+
pattern and hints included:</p>
|
|
4922
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>ceedling<span class="w"> </span><span class="s2">"module:destroy[lab:SecretLair,mch]"</span>
|
|
4923
|
+
</code></pre></div>
|
|
4924
|
+
<p>A file that does not exist is reported and skipped.</p>
|
|
4475
4925
|
<h2 id="configuration">Configuration</h2>
|
|
4476
|
-
<p>
|
|
4477
|
-
|
|
4478
|
-
<
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
<
|
|
4483
|
-
<
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
<
|
|
4487
|
-
<
|
|
4488
|
-
<
|
|
4489
|
-
<a
|
|
4490
|
-
<
|
|
4491
|
-
|
|
4926
|
+
<p>The module generator runs as-is with its defaults. Every setting lives under
|
|
4927
|
+
<code>:module_generator</code> in your project file:</p>
|
|
4928
|
+
<table>
|
|
4929
|
+
<thead>
|
|
4930
|
+
<tr>
|
|
4931
|
+
<th>Setting</th>
|
|
4932
|
+
<th>Purpose</th>
|
|
4933
|
+
<th>Default</th>
|
|
4934
|
+
</tr>
|
|
4935
|
+
</thead>
|
|
4936
|
+
<tbody>
|
|
4937
|
+
<tr>
|
|
4938
|
+
<td><code>:naming</code></td>
|
|
4939
|
+
<td>File <a href="#naming-convention">naming convention</a></td>
|
|
4940
|
+
<td>none (names keep their case)</td>
|
|
4941
|
+
</tr>
|
|
4942
|
+
<tr>
|
|
4943
|
+
<td><code>:path_src</code>, <code>:path_inc</code>, <code>:path_tst</code></td>
|
|
4944
|
+
<td><a href="#default-paths">Default locations when no hint is given</a></td>
|
|
4945
|
+
<td>first path of each <code>:paths</code> list</td>
|
|
4946
|
+
</tr>
|
|
4947
|
+
<tr>
|
|
4948
|
+
<td><code>:includes</code></td>
|
|
4949
|
+
<td><a href="#includes">Headers every generated file includes</a></td>
|
|
4950
|
+
<td>none</td>
|
|
4951
|
+
</tr>
|
|
4952
|
+
<tr>
|
|
4953
|
+
<td><code>:boilerplates</code></td>
|
|
4954
|
+
<td><a href="#boilerplates">Text at the top of every generated file</a></td>
|
|
4955
|
+
<td>none</td>
|
|
4956
|
+
</tr>
|
|
4957
|
+
<tr>
|
|
4958
|
+
<td><code>:boilerplate_files</code></td>
|
|
4959
|
+
<td><a href="#boilerplate-files">Files holding that text instead</a></td>
|
|
4960
|
+
<td>none</td>
|
|
4961
|
+
</tr>
|
|
4962
|
+
<tr>
|
|
4963
|
+
<td><code>:test_define</code></td>
|
|
4964
|
+
<td><a href="#test-defines">Symbol guarding each test file</a></td>
|
|
4965
|
+
<td><code>TEST</code></td>
|
|
4966
|
+
</tr>
|
|
4967
|
+
<tr>
|
|
4968
|
+
<td><code>:test_guard</code></td>
|
|
4969
|
+
<td><a href="#test-guards"><code>#ifdef</code> or <code>#if</code> around each test file</a></td>
|
|
4970
|
+
<td><code>:ifdef</code></td>
|
|
4971
|
+
</tr>
|
|
4972
|
+
</tbody>
|
|
4973
|
+
</table>
|
|
4974
|
+
<h3 id="naming-convention">Naming convention</h3>
|
|
4975
|
+
<p>A naming convention keeps everyone’s file names consistent, whatever case a name is
|
|
4976
|
+
typed in. Words are found at underscores, spaces, and changes of case, so
|
|
4977
|
+
<code>mad_science</code> and <code>MadScience</code> name the same module.</p>
|
|
4978
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
4979
|
+
<a id="__codelineno-12-2" name="__codelineno-12-2" href="#__codelineno-12-2"></a><span class="w"> </span><span class="nt">:naming</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:bumpy</span>
|
|
4492
4980
|
</code></pre></div>
|
|
4493
|
-
<p>
|
|
4981
|
+
<p>The options for <code>:naming</code>, and the source file each creates for this command:</p>
|
|
4982
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[mad_science]"</span>
|
|
4983
|
+
</code></pre></div>
|
|
4984
|
+
<table>
|
|
4985
|
+
<thead>
|
|
4986
|
+
<tr>
|
|
4987
|
+
<th><code>:naming</code></th>
|
|
4988
|
+
<th>Style</th>
|
|
4989
|
+
<th>Source file</th>
|
|
4990
|
+
</tr>
|
|
4991
|
+
</thead>
|
|
4992
|
+
<tbody>
|
|
4993
|
+
<tr>
|
|
4994
|
+
<td><code>:bumpy</code></td>
|
|
4995
|
+
<td>BumpyFilesLookLikeSo</td>
|
|
4996
|
+
<td><code>MadScience.c</code></td>
|
|
4997
|
+
</tr>
|
|
4998
|
+
<tr>
|
|
4999
|
+
<td><code>:camel</code></td>
|
|
5000
|
+
<td>camelFilesAreSimilarButStartLow</td>
|
|
5001
|
+
<td><code>madScience.c</code></td>
|
|
5002
|
+
</tr>
|
|
5003
|
+
<tr>
|
|
5004
|
+
<td><code>:snake</code></td>
|
|
5005
|
+
<td>snake_case_is_all_lower_and_uses_underscores</td>
|
|
5006
|
+
<td><code>mad_science.c</code></td>
|
|
5007
|
+
</tr>
|
|
5008
|
+
<tr>
|
|
5009
|
+
<td><code>:caps</code></td>
|
|
5010
|
+
<td>CAPS_FEELS_LIKE_YOU_ARE_SCREAMING</td>
|
|
5011
|
+
<td><code>MAD_SCIENCE.c</code></td>
|
|
5012
|
+
</tr>
|
|
5013
|
+
</tbody>
|
|
5014
|
+
</table>
|
|
5015
|
+
<p>The header and test file follow the same convention, as do a pattern’s module names.
|
|
5016
|
+
Without <code>:naming</code>, names keep the case you type.</p>
|
|
5017
|
+
<h3 id="default-paths">Default paths</h3>
|
|
5018
|
+
<p><code>:path_src</code>, <code>:path_inc</code>, and <code>:path_tst</code> choose where files go when a command gives no
|
|
5019
|
+
<a href="#path-hints">hint</a>. A hint still matches against your <code>:paths</code> and ignores these
|
|
5020
|
+
settings.</p>
|
|
5021
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
5022
|
+
<a id="__codelineno-14-2" name="__codelineno-14-2" href="#__codelineno-14-2"></a><span class="w"> </span><span class="nt">:path_src</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">src/</span>
|
|
5023
|
+
<a id="__codelineno-14-3" name="__codelineno-14-3" href="#__codelineno-14-3"></a><span class="w"> </span><span class="nt">:path_inc</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">include/</span>
|
|
5024
|
+
<a id="__codelineno-14-4" name="__codelineno-14-4" href="#__codelineno-14-4"></a><span class="w"> </span><span class="nt">:path_tst</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">test/</span>
|
|
5025
|
+
</code></pre></div>
|
|
5026
|
+
<p>With these settings, this command:</p>
|
|
5027
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[Widget]"</span>
|
|
5028
|
+
</code></pre></div>
|
|
5029
|
+
<p>creates <code>src/Widget.c</code>, <code>include/Widget.h</code>, and <code>test/test_Widget.c</code>.</p>
|
|
4494
5030
|
<h3 id="includes">Includes</h3>
|
|
4495
|
-
<p>
|
|
4496
|
-
|
|
4497
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-
|
|
4498
|
-
<a id="__codelineno-
|
|
4499
|
-
<a id="__codelineno-
|
|
4500
|
-
<a id="__codelineno-
|
|
4501
|
-
<a id="__codelineno-
|
|
4502
|
-
<a id="__codelineno-
|
|
4503
|
-
<a id="__codelineno-
|
|
5031
|
+
<p>Every generated file of a kind can include a standard list of headers. <code>:src</code> lists
|
|
5032
|
+
those for source files, <code>:inc</code> for headers, and <code>:tst</code> for tests:</p>
|
|
5033
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
5034
|
+
<a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a><span class="w"> </span><span class="nt">:includes</span><span class="p">:</span>
|
|
5035
|
+
<a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a><span class="w"> </span><span class="nt">:src</span><span class="p">:</span>
|
|
5036
|
+
<a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">board.h</span>
|
|
5037
|
+
<a id="__codelineno-16-5" name="__codelineno-16-5" href="#__codelineno-16-5"></a><span class="w"> </span><span class="nt">:inc</span><span class="p">:</span>
|
|
5038
|
+
<a id="__codelineno-16-6" name="__codelineno-16-6" href="#__codelineno-16-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">types.h</span>
|
|
5039
|
+
<a id="__codelineno-16-7" name="__codelineno-16-7" href="#__codelineno-16-7"></a><span class="w"> </span><span class="nt">:tst</span><span class="p">:</span>
|
|
5040
|
+
<a id="__codelineno-16-8" name="__codelineno-16-8" href="#__codelineno-16-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">defs.h</span>
|
|
5041
|
+
<a id="__codelineno-16-9" name="__codelineno-16-9" href="#__codelineno-16-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">board.h</span>
|
|
4504
5042
|
</code></pre></div>
|
|
5043
|
+
<p>With these settings, this command:</p>
|
|
5044
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[Widget]"</span>
|
|
5045
|
+
</code></pre></div>
|
|
5046
|
+
<p>creates <code>Widget.c</code> including <code>board.h</code>, <code>Widget.h</code> including <code>types.h</code>, and
|
|
5047
|
+
<code>test_Widget.c</code> including <code>defs.h</code> and <code>board.h</code>, each ahead of the module’s own
|
|
5048
|
+
includes.</p>
|
|
4505
5049
|
<h3 id="boilerplates">Boilerplates</h3>
|
|
4506
|
-
<p>
|
|
4507
|
-
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
<
|
|
4511
|
-
<a id="__codelineno-
|
|
4512
|
-
<a id="__codelineno-
|
|
4513
|
-
<a id="__codelineno-
|
|
4514
|
-
<a id="__codelineno-
|
|
4515
|
-
<a id="__codelineno-
|
|
4516
|
-
<a id="__codelineno-
|
|
4517
|
-
<a id="__codelineno-
|
|
4518
|
-
<a id="__codelineno-
|
|
4519
|
-
<a id="__codelineno-11
|
|
4520
|
-
<a id="__codelineno-
|
|
4521
|
-
<a id="__codelineno-
|
|
4522
|
-
<a id="__codelineno-
|
|
4523
|
-
<a id="__codelineno-
|
|
4524
|
-
<a id="__codelineno-
|
|
4525
|
-
<a id="__codelineno-11-16" name="__codelineno-11-16" href="#__codelineno-11-16"></a><span class="w"> </span><span class="no">***************************/</span>
|
|
5050
|
+
<p>A boilerplate is text placed at the top of each generated file, the handy place for a
|
|
5051
|
+
copyright notice. Each kind of file has its own. A boilerplate may contain <code>%1$s</code>, which
|
|
5052
|
+
is replaced with the module name.</p>
|
|
5053
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
5054
|
+
<a id="__codelineno-18-2" name="__codelineno-18-2" href="#__codelineno-18-2"></a><span class="w"> </span><span class="nt">:boilerplates</span><span class="p">:</span>
|
|
5055
|
+
<a id="__codelineno-18-3" name="__codelineno-18-3" href="#__codelineno-18-3"></a><span class="w"> </span><span class="nt">:src</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">|</span>
|
|
5056
|
+
<a id="__codelineno-18-4" name="__codelineno-18-4" href="#__codelineno-18-4"></a><span class="w"> </span><span class="no">/***************************</span>
|
|
5057
|
+
<a id="__codelineno-18-5" name="__codelineno-18-5" href="#__codelineno-18-5"></a><span class="w"> </span><span class="no">* %1$s</span>
|
|
5058
|
+
<a id="__codelineno-18-6" name="__codelineno-18-6" href="#__codelineno-18-6"></a><span class="w"> </span><span class="no">* This file is Awesome.</span>
|
|
5059
|
+
<a id="__codelineno-18-7" name="__codelineno-18-7" href="#__codelineno-18-7"></a><span class="w"> </span><span class="no">* That is All.</span>
|
|
5060
|
+
<a id="__codelineno-18-8" name="__codelineno-18-8" href="#__codelineno-18-8"></a><span class="w"> </span><span class="no">***************************/</span>
|
|
5061
|
+
<a id="__codelineno-18-9" name="__codelineno-18-9" href="#__codelineno-18-9"></a><span class="w"> </span><span class="nt">:inc</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">|</span>
|
|
5062
|
+
<a id="__codelineno-18-10" name="__codelineno-18-10" href="#__codelineno-18-10"></a><span class="w"> </span><span class="no">/***************************</span>
|
|
5063
|
+
<a id="__codelineno-18-11" name="__codelineno-18-11" href="#__codelineno-18-11"></a><span class="w"> </span><span class="no">* Header. Woo. *</span>
|
|
5064
|
+
<a id="__codelineno-18-12" name="__codelineno-18-12" href="#__codelineno-18-12"></a><span class="w"> </span><span class="no">***************************/</span>
|
|
5065
|
+
<a id="__codelineno-18-13" name="__codelineno-18-13" href="#__codelineno-18-13"></a><span class="w"> </span><span class="nt">:tst</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">|</span>
|
|
5066
|
+
<a id="__codelineno-18-14" name="__codelineno-18-14" href="#__codelineno-18-14"></a><span class="w"> </span><span class="no">/***************************</span>
|
|
5067
|
+
<a id="__codelineno-18-15" name="__codelineno-18-15" href="#__codelineno-18-15"></a><span class="w"> </span><span class="no">* My Awesome Test For %1$s</span>
|
|
5068
|
+
<a id="__codelineno-18-16" name="__codelineno-18-16" href="#__codelineno-18-16"></a><span class="w"> </span><span class="no">***************************/</span>
|
|
4526
5069
|
</code></pre></div>
|
|
4527
|
-
<
|
|
4528
|
-
<
|
|
4529
|
-
|
|
4530
|
-
<
|
|
4531
|
-
<
|
|
5070
|
+
<p>With these settings, this command:</p>
|
|
5071
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[Widget]"</span>
|
|
5072
|
+
</code></pre></div>
|
|
5073
|
+
<p>creates <code>Widget.c</code> beginning with the source boilerplate, its second line reading
|
|
5074
|
+
<code>* Widget</code>, and <code>test_Widget.c</code> beginning with <code>* My Awesome Test For Widget</code>.</p>
|
|
5075
|
+
<h3 id="boilerplate-files">Boilerplate files</h3>
|
|
5076
|
+
<p>A boilerplate can instead live in a file, which keeps long notices out of your project
|
|
5077
|
+
file. <code>:boilerplate_files</code> names a file for any kind, and that file’s contents replace
|
|
5078
|
+
the kind’s <code>:boilerplates</code> text. A named file that does not exist stops the command.</p>
|
|
5079
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
5080
|
+
<a id="__codelineno-20-2" name="__codelineno-20-2" href="#__codelineno-20-2"></a><span class="w"> </span><span class="nt">:boilerplate_files</span><span class="p">:</span>
|
|
5081
|
+
<a id="__codelineno-20-3" name="__codelineno-20-3" href="#__codelineno-20-3"></a><span class="w"> </span><span class="nt">:src</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">config/boilerplate_source.txt</span>
|
|
5082
|
+
<a id="__codelineno-20-4" name="__codelineno-20-4" href="#__codelineno-20-4"></a><span class="w"> </span><span class="nt">:tst</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">config/boilerplate_test.txt</span>
|
|
5083
|
+
</code></pre></div>
|
|
5084
|
+
<p>With these settings, this command:</p>
|
|
5085
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[Widget]"</span>
|
|
5086
|
+
</code></pre></div>
|
|
5087
|
+
<p>creates <code>Widget.c</code> beginning with the contents of <code>config/boilerplate_source.txt</code> and
|
|
5088
|
+
<code>test_Widget.c</code> beginning with the contents of <code>config/boilerplate_test.txt</code>. <code>Widget.h</code>
|
|
5089
|
+
uses the <code>:inc</code> boilerplate, if any.</p>
|
|
5090
|
+
<h3 id="test-defines">Test defines</h3>
|
|
5091
|
+
<p>Each generated test file is wrapped in <code>#ifdef TEST</code>. <code>:test_define</code> names a
|
|
5092
|
+
different symbol.</p>
|
|
5093
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
5094
|
+
<a id="__codelineno-22-2" name="__codelineno-22-2" href="#__codelineno-22-2"></a><span class="w"> </span><span class="nt">:test_define</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CEEDLING_TEST</span>
|
|
5095
|
+
</code></pre></div>
|
|
5096
|
+
<p>With this setting, this command:</p>
|
|
5097
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[Widget]"</span>
|
|
5098
|
+
</code></pre></div>
|
|
5099
|
+
<p>creates <code>test_Widget.c</code> wrapped in <code>#ifdef CEEDLING_TEST</code> and <code>#endif // CEEDLING_TEST</code>.</p>
|
|
5100
|
+
<p>The symbol must be defined for your test builds, or every generated test compiles to
|
|
5101
|
+
nothing. Add it under <a href="../configuration/reference/defines.html"><code>:defines</code></a> ↳ <code>:test</code>:</p>
|
|
5102
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a><span class="nt">:defines</span><span class="p">:</span>
|
|
5103
|
+
<a id="__codelineno-24-2" name="__codelineno-24-2" href="#__codelineno-24-2"></a><span class="w"> </span><span class="nt">:test</span><span class="p">:</span>
|
|
5104
|
+
<a id="__codelineno-24-3" name="__codelineno-24-3" href="#__codelineno-24-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">CEEDLING_TEST</span>
|
|
5105
|
+
</code></pre></div>
|
|
5106
|
+
<p><code>module:create</code> and <code>module:test</code> warn about each generated test file whose build would
|
|
5107
|
+
not define the symbol. Each file is checked as a test build would compile it, so a symbol
|
|
5108
|
+
under a per-test matcher counts only for the test files that matcher matches.</p>
|
|
5109
|
+
<h3 id="test-guards">Test guards</h3>
|
|
5110
|
+
<p>Each generated test file is guarded with <code>#ifdef</code>. Some coding standards forbid <code>#ifdef</code>
|
|
5111
|
+
in favor of <code>#if</code>, and <code>:test_guard</code> set to <code>:if</code> uses <code>#if</code> instead. The options are
|
|
5112
|
+
<code>:ifdef</code> (the default) and <code>:if</code>.</p>
|
|
5113
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-25-1" name="__codelineno-25-1" href="#__codelineno-25-1"></a><span class="nt">:defines</span><span class="p">:</span>
|
|
5114
|
+
<a id="__codelineno-25-2" name="__codelineno-25-2" href="#__codelineno-25-2"></a><span class="w"> </span><span class="nt">:test</span><span class="p">:</span>
|
|
5115
|
+
<a id="__codelineno-25-3" name="__codelineno-25-3" href="#__codelineno-25-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">UNIT_TEST</span>
|
|
5116
|
+
<a id="__codelineno-25-4" name="__codelineno-25-4" href="#__codelineno-25-4"></a>
|
|
5117
|
+
<a id="__codelineno-25-5" name="__codelineno-25-5" href="#__codelineno-25-5"></a><span class="nt">:module_generator</span><span class="p">:</span>
|
|
5118
|
+
<a id="__codelineno-25-6" name="__codelineno-25-6" href="#__codelineno-25-6"></a><span class="w"> </span><span class="nt">:test_define</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">UNIT_TEST</span>
|
|
5119
|
+
<a id="__codelineno-25-7" name="__codelineno-25-7" href="#__codelineno-25-7"></a><span class="w"> </span><span class="nt">:test_guard</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">:if</span>
|
|
4532
5120
|
</code></pre></div>
|
|
4533
|
-
<
|
|
4534
|
-
<
|
|
4535
|
-
with something like <code>MyNewModule</code>, if they have the naming convention set to <code>:caps</code>, it will
|
|
4536
|
-
generate files like <code>MY_NEW_MODULE.c</code>. This keeps everyone on your team behaving the same way.</p>
|
|
4537
|
-
<p>Your options for <code>:naming:</code> are as follows:</p>
|
|
4538
|
-
<div class="highlight"><pre><span></span><code>- `:bumpy` - BumpyFilesLooksLikeSo
|
|
4539
|
-
- `:camel` - camelFilesAreSimilarButStartLow
|
|
4540
|
-
- `:snake` - snake_case_is_all_lower_and_uses_underscores
|
|
4541
|
-
- `:caps` - CAPS_FEELS_LIKE_YOU_ARE_SCREAMING
|
|
5121
|
+
<p>With these settings, this command:</p>
|
|
5122
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-26-1" name="__codelineno-26-1" href="#__codelineno-26-1"></a>ceedling<span class="w"> </span><span class="s2">"module:create[Widget]"</span>
|
|
4542
5123
|
</code></pre></div>
|
|
5124
|
+
<p>creates <code>test_Widget.c</code> wrapped in <code>#if UNIT_TEST</code> and <code>#endif // UNIT_TEST</code>. With
|
|
5125
|
+
<code>#if</code>, the symbol must be defined to a nonzero value. A bare <code>UNIT_TEST</code> under <code>:defines</code>
|
|
5126
|
+
is defined as <code>1</code>.</p>
|
|
4543
5127
|
<p><br/><br/></p>
|
|
4544
5128
|
|
|
4545
5129
|
|