ceedling 1.2.0 → 1.2.2
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/GIT_COMMIT_SHA +1 -1
- data/README.md +57 -58
- data/Rakefile +5 -3
- data/assets/features/ceedling +1 -1
- data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_typo.c +14 -0
- data/assets/fixtures/tests_with_duplicate_test_names/test_foo.c +21 -0
- data/bin/actionator.rb +6 -12
- data/bin/app_cfg.rb +35 -1
- data/bin/ceedling +13 -3
- data/bin/cli.rb +25 -6
- data/bin/cli_handler.rb +119 -73
- data/bin/cli_helper.rb +56 -78
- data/bin/installation_selector.rb +81 -0
- data/bin/launchinator.rb +69 -0
- data/bin/mixin_resolvinator.rb +26 -36
- data/bin/objects.yml +13 -0
- data/bin/path_validator.rb +25 -29
- data/bin/versionator.rb +47 -48
- data/ceedling.gemspec +19 -15
- data/docs/BreakingChanges.md +70 -1
- data/docs/Changelog.md +84 -3
- data/docs/KnownIssues.md +90 -4
- data/docs/ReleaseNotes.md +13 -0
- data/docs/overrides/main.html +11 -8
- data/lib/ceedling/build_log_writer.rb +33 -0
- data/lib/ceedling/config/build_root_policy.rb +70 -0
- data/lib/ceedling/config/configurator.rb +19 -18
- data/lib/ceedling/config/configurator_builder.rb +58 -28
- data/lib/ceedling/config/configurator_paths_validator.rb +179 -0
- data/lib/ceedling/config/configurator_plugins.rb +1 -1
- data/lib/ceedling/config/configurator_setup.rb +39 -41
- data/lib/ceedling/config/configurator_validator.rb +1 -110
- data/lib/ceedling/defaults.rb +4 -4
- data/lib/ceedling/dependencies/README.md +18 -16
- data/lib/ceedling/dependencies/dependency_cache_store.rb +20 -3
- data/lib/ceedling/dependencies/dependency_hasher.rb +35 -1
- data/lib/ceedling/filename_extension.rb +7 -1
- data/lib/ceedling/filesystem/FILE_TREE.md +253 -0
- data/lib/ceedling/filesystem/PATH_HANDLING.md +304 -0
- data/lib/ceedling/filesystem/README.md +41 -0
- data/lib/ceedling/filesystem/build_subpath.rb +102 -0
- data/lib/ceedling/filesystem/destination_collision.rb +25 -0
- data/lib/ceedling/{file_finder.rb → filesystem/file_finder.rb} +159 -104
- data/lib/ceedling/{file_finder_helper.rb → filesystem/file_finder_helper.rb} +36 -31
- data/lib/ceedling/filesystem/file_path_collection_utils.rb +183 -0
- data/lib/ceedling/{file_path_utils.rb → filesystem/file_path_utils.rb} +108 -97
- data/lib/ceedling/{file_system_wrapper.rb → filesystem/file_system_wrapper.rb} +6 -5
- data/lib/ceedling/filesystem/file_tree.rb +241 -0
- data/lib/ceedling/{file_wrapper.rb → filesystem/file_wrapper.rb} +65 -28
- data/lib/ceedling/filesystem/path_exclusions.rb +30 -0
- data/lib/ceedling/{path_matcher.rb → filesystem/path_matcher.rb} +27 -23
- data/lib/ceedling/{path_mirror.rb → filesystem/path_mirror.rb} +19 -18
- data/lib/ceedling/filesystem/path_spellings.rb +55 -0
- data/lib/ceedling/filesystem/project_paths.rb +184 -0
- data/lib/ceedling/filesystem/working_dir.rb +40 -0
- data/lib/ceedling/generators/generator.rb +5 -6
- data/lib/ceedling/generators/generator_partials.rb +1 -1
- data/lib/ceedling/generators/generator_test_results_backtrace.rb +7 -7
- data/lib/ceedling/handoff.rb +121 -0
- data/lib/ceedling/includes/include_factory.rb +3 -3
- data/lib/ceedling/includes/include_pathinator.rb +67 -10
- data/lib/ceedling/includes/includes.rb +1 -1
- data/lib/ceedling/installation.rb +92 -0
- data/lib/ceedling/library_resolver.rb +99 -0
- data/lib/ceedling/objects.yml +23 -2
- data/lib/ceedling/partials/partializer.rb +4 -4
- data/lib/ceedling/partials/partializer_config.rb +3 -1
- data/lib/ceedling/plugins/report_log_writer_plugin.rb +3 -5
- data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +1 -1
- data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +1 -1
- data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +1 -1
- data/lib/ceedling/rake_app/rakefile_component_resolver.rb +10 -17
- data/lib/ceedling/rake_app/test_task_name.rb +29 -0
- data/lib/ceedling/rakefile.rb +16 -1
- data/lib/ceedling/rakefiles/base/tasks_base.rake +1 -1
- data/lib/ceedling/rakefiles/release/rules_release.rake +4 -7
- data/lib/ceedling/rakefiles/tests/rules_tests.rake +3 -20
- data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +4 -30
- data/lib/ceedling/release_invoker/release_build_executor.rb +33 -44
- data/lib/ceedling/release_invoker/release_build_planner.rb +14 -6
- data/lib/ceedling/reportinator.rb +3 -4
- data/lib/ceedling/setupinator.rb +95 -87
- data/lib/ceedling/test_context_extractor.rb +5 -1
- data/lib/ceedling/test_invoker/PIPELINE.md +9 -7
- data/lib/ceedling/test_invoker/mock_locator.rb +60 -2
- data/lib/ceedling/test_invoker/partials_manager.rb +12 -0
- data/lib/ceedling/test_invoker/standin_headerinator.rb +22 -13
- data/lib/ceedling/test_invoker/test_build_executor.rb +42 -41
- data/lib/ceedling/test_invoker/test_build_planner.rb +37 -18
- data/lib/ceedling/test_invoker/test_build_setup.rb +17 -12
- data/lib/ceedling/test_invoker/test_build_validations.rb +16 -31
- data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +1 -1
- data/lib/ceedling/test_invoker/test_invoker.rb +6 -1
- data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +1 -1
- data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +40 -20
- data/lib/ceedling/tool_executor.rb +9 -3
- data/lib/ceedling/yaml_wrapper.rb +3 -2
- data/lib/version.rb +1 -1
- data/plugins/bullseye/bullseye.rake +6 -9
- data/plugins/bullseye/config/defaults_bullseye.rb +1 -1
- data/plugins/bullseye/lib/bullseye.rb +9 -7
- data/plugins/cppcheck/config/defaults_cppcheck.rb +1 -1
- data/plugins/dependencies/config/defaults.yml +6 -6
- data/plugins/dependencies/dependencies.rake +4 -1
- data/plugins/dependencies/lib/dependencies.rb +18 -8
- data/plugins/dependencies/lib/dependency_spec.rb +17 -5
- data/plugins/fff/lib/fff.rb +45 -39
- data/plugins/fff/spec/fff_cmock_wrapper_spec.rb +128 -0
- data/plugins/gcov/config/defaults_gcov.rb +1 -1
- data/plugins/gcov/gcov.rake +6 -9
- data/plugins/gcov/lib/console_reportinator.rb +4 -18
- data/plugins/gcov/lib/gcov.rb +9 -2
- data/plugins/gcov/lib/gcovr_reportinator.rb +8 -40
- data/plugins/gcov/lib/gcovr_thresholds.rb +74 -0
- data/plugins/gcov/lib/reportgenerator_reportinator.rb +1 -1
- data/plugins/module_generator/lib/module_generator.rb +3 -3
- data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +53 -80
- data/plugins/sanitize/lib/sanitize_records.rb +3 -6
- data/plugins/sanitize/sanitize.rake +6 -6
- data/plugins/valgrind/lib/valgrind.rb +14 -7
- data/plugins/valgrind/valgrind.rake +6 -6
- data/site-local/404.html +6 -20
- data/site-local/assets/javascripts/{bundle.d7400e89.min.js → bundle.c21346df.min.js} +3 -3
- data/site-local/assets/javascripts/{bundle.d7400e89.min.js.map → bundle.c21346df.min.js.map} +2 -2
- data/site-local/assets/javascripts/workers/{search.2c215733.min.js → search.a7633da7.min.js} +2 -2
- data/site-local/assets/javascripts/workers/{search.2c215733.min.js.map → search.a7633da7.min.js.map} +1 -1
- data/site-local/assets/stylesheets/main.57a0d79d.min.css +6 -0
- data/site-local/assets/stylesheets/main.57a0d79d.min.css.map +1 -0
- data/site-local/assets/stylesheets/palette.fb2fffe2.min.css +4 -0
- data/site-local/assets/stylesheets/palette.fb2fffe2.min.css.map +1 -0
- data/site-local/configuration/environment-vars.html +6 -20
- data/site-local/configuration/global-collections.html +6 -20
- data/site-local/configuration/index.html +6 -20
- data/site-local/configuration/loading.html +6 -20
- data/site-local/configuration/mixins.html +10 -24
- data/site-local/configuration/parallel-builds.html +6 -20
- data/site-local/configuration/project-file.html +8 -22
- data/site-local/configuration/reference/cexception.html +6 -20
- data/site-local/configuration/reference/cmock.html +8 -21
- data/site-local/configuration/reference/defines.html +16 -30
- data/site-local/configuration/reference/environment.html +10 -24
- data/site-local/configuration/reference/extension.html +6 -20
- data/site-local/configuration/reference/files.html +22 -30
- data/site-local/configuration/reference/flags.html +13 -27
- data/site-local/configuration/reference/index.html +6 -20
- data/site-local/configuration/reference/libraries.html +27 -23
- data/site-local/configuration/reference/mixins.html +6 -20
- data/site-local/configuration/reference/partials.html +6 -20
- data/site-local/configuration/reference/paths.html +38 -29
- data/site-local/configuration/reference/plugins.html +6 -20
- data/site-local/configuration/reference/project.html +32 -36
- data/site-local/configuration/reference/release-build.html +8 -20
- data/site-local/configuration/reference/test-build.html +6 -20
- data/site-local/configuration/reference/test-runner.html +6 -20
- data/site-local/configuration/reference/tools.html +27 -32
- data/site-local/configuration/reference/unity.html +6 -20
- data/site-local/configuration/which-ceedling.html +383 -37
- data/site-local/development/index.html +6 -20
- data/site-local/development/plugins/configuration.html +6 -20
- data/site-local/development/plugins/index.html +6 -20
- data/site-local/development/plugins/plugin-subclass.html +54 -68
- data/site-local/development/plugins/rake-tasks.html +8 -22
- data/site-local/development/releases.html +84 -29
- data/site-local/development/workflow.html +62 -71
- data/site-local/getting-started/builds.html +8 -20
- data/site-local/getting-started/command-line.html +62 -24
- data/site-local/getting-started/example-projects/cipher-quest.html +6 -20
- data/site-local/getting-started/example-projects/index.html +6 -20
- data/site-local/getting-started/example-projects/temp-sensor.html +6 -20
- data/site-local/getting-started/example-projects/wondrous-forest.html +6 -20
- data/site-local/getting-started/index.html +6 -20
- data/site-local/getting-started/installation.html +6 -20
- data/site-local/getting-started/quick-start.html +6 -20
- data/site-local/help.html +6 -20
- data/site-local/index.html +11 -24
- data/site-local/overview/build-system.html +6 -20
- data/site-local/overview/index.html +6 -20
- data/site-local/overview/test-environments.html +6 -20
- data/site-local/overview/tools-and-frameworks.html +6 -20
- data/site-local/plugins/beep.html +6 -20
- data/site-local/plugins/bullseye/index.html +13 -24
- data/site-local/plugins/bullseye/licensing.html +14 -28
- data/site-local/plugins/command-hooks.html +8 -22
- data/site-local/plugins/compile-commands-json-db.html +6 -20
- data/site-local/plugins/cppcheck.html +8 -22
- data/site-local/plugins/dependencies.html +16 -27
- data/site-local/plugins/fff.html +49 -32
- data/site-local/plugins/gcov/examples.html +7 -21
- data/site-local/plugins/gcov/gcovr.html +22 -33
- data/site-local/plugins/gcov/index.html +6 -20
- data/site-local/plugins/gcov/overview.html +9 -20
- data/site-local/plugins/gcov/reportgenerator.html +9 -23
- data/site-local/plugins/gcov/reporting.html +6 -20
- data/site-local/plugins/gcov/setup.html +8 -21
- data/site-local/plugins/gcov/tool-versions.html +6 -20
- data/site-local/plugins/gcov/troubleshooting.html +10 -24
- data/site-local/plugins/index.html +6 -20
- data/site-local/plugins/module-generator.html +21 -35
- data/site-local/plugins/report-build-warnings-log.html +53 -67
- data/site-local/plugins/report-tests-gtestlike-stdout.html +6 -20
- data/site-local/plugins/report-tests-ide-stdout.html +43 -57
- data/site-local/plugins/report-tests-log-factory.html +50 -64
- data/site-local/plugins/report-tests-pretty-stdout.html +7 -21
- data/site-local/plugins/report-tests-raw-output-log.html +9 -21
- data/site-local/plugins/report-tests-teamcity-stdout.html +20 -31
- data/site-local/plugins/sanitize.html +56 -65
- data/site-local/plugins/valgrind.html +49 -58
- data/site-local/project/index.html +6 -20
- data/site-local/project/release-history.html +6 -20
- data/site-local/project/sbom.html +6 -20
- data/site-local/project/upgrade.html +9 -20
- data/site-local/reference/build-directives.html +6 -20
- data/site-local/reference/command-line.html +15 -22
- data/site-local/reference/environment-vars.html +6 -20
- data/site-local/reference/gcov-plugin.html +6 -20
- data/site-local/reference/global-collections.html +6 -20
- data/site-local/reference/index.html +6 -20
- data/site-local/reference/partials-macros.html +6 -20
- data/site-local/reference/project-configuration.html +6 -20
- data/site-local/sitemap.xml.gz +0 -0
- data/site-local/snapshot/examples/cipher_quest/index.html +16 -30
- data/site-local/snapshot/examples/temp_sensor/index.html +8 -22
- data/site-local/snapshot/examples/wondrous_forest/index.html +6 -20
- data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +1 -1
- data/site-local/snapshot/plugins/gcov/config/defaults_gcov.rb +1 -1
- data/site-local/testing-guide/build-directives.html +14 -28
- data/site-local/testing-guide/conventions.html +66 -27
- data/site-local/testing-guide/frameworks.html +11 -25
- data/site-local/testing-guide/index.html +6 -20
- data/site-local/testing-guide/partials/configuration.html +8 -22
- data/site-local/testing-guide/partials/conventions.html +8 -22
- data/site-local/testing-guide/partials/directives.html +16 -30
- data/site-local/testing-guide/partials/example.html +14 -28
- data/site-local/testing-guide/partials/index.html +6 -20
- data/site-local/testing-guide/partials/overview.html +6 -20
- data/site-local/testing-guide/partials/variables.html +11 -25
- data/site-local/testing-guide/test-cases.html +13 -27
- data/site-local/testing-guide/test-sample.html +12 -26
- data/site-local/testing-guide/test-suite-anatomy.html +6 -20
- data/spec/integration/actionator_file_operations_spec.rb +91 -1
- data/spec/integration/compile_commands_json_db_spec.rb +1 -1
- data/spec/integration/configurator_pipeline_spec.rb +10 -0
- data/spec/integration/configurator_validation_spec.rb +1 -1
- data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +26 -0
- data/spec/integration/dependencies/dependency_tracker_core_spec.rb +62 -0
- data/spec/integration/launcher_handoff_spec.rb +297 -0
- data/spec/integration/mixin_loading_spec.rb +1 -1
- data/spec/integration/module_generator_spec.rb +3 -3
- data/spec/integration/nested_test_artifacts_spec.rb +99 -0
- data/spec/integration/partials_module_resolution_spec.rb +7 -4
- data/spec/integration/path_intake_scenarios_spec.rb +101 -0
- data/spec/integration/path_scenarios_spec.rb +322 -0
- data/spec/integration/quote_include_isolator_spec.rb +1 -1
- data/spec/integration/rake_task_registry_plugins_spec.rb +95 -0
- data/spec/integration/report_build_warnings_log_spec.rb +1 -1
- data/spec/integration/report_tests_log_factory_spec.rb +1 -1
- data/spec/integration/test_executable_manifest_spec.rb +1 -1
- data/spec/integration/test_includes_extractinator_spec.rb +2 -1
- data/spec/integration/test_naming_spec.rb +198 -0
- data/spec/integration/test_source_file_checks_spec.rb +166 -0
- data/spec/integration/tool_validator_spec.rb +1 -1
- data/spec/integration/upgrade_docs_spec.rb +84 -0
- data/spec/integration/vendor_copy_transient_io_retry_spec.rb +192 -75
- data/spec/support/file_tree_helper.rb +88 -0
- data/spec/support/integration/configurator_integration_helper.rb +10 -7
- data/spec/support/integration/dependency_tracker_integration_helper.rb +1 -1
- data/spec/support/integration/partials_generation_integration_helper.rb +2 -2
- data/spec/support/integration/path_scenario_harness.rb +173 -0
- data/spec/support/integration/spec_integration_helper.rb +1 -1
- data/spec/support/integration/test_includes_harness.rb +13 -2
- data/spec/support/spec_helper.rb +2 -0
- data/spec/support/system/spec_system_helper.rb +7 -6
- data/spec/support/system/system_context.rb +21 -3
- data/spec/support/working_dir_tracking.rb +49 -0
- data/spec/system/build_output_mirroring_spec.rb +2 -2
- data/spec/system/conditional_mock_includes_spec.rb +1 -1
- data/spec/system/delta_builds_spec.rb +137 -11
- data/spec/system/gcov_deployment_spec.rb +1 -0
- data/spec/system/header_include_path_validation_spec.rb +4 -4
- data/spec/system/launcher_handoff_spec.rb +82 -0
- data/spec/system/mock_include_folders_spec.rb +91 -0
- data/spec/system/parent_directory_reference_spec.rb +5 -3
- data/spec/system/path_handling_probes_spec.rb +192 -0
- data/spec/system/preprocessing_parameterized_tests_spec.rb +1 -1
- data/spec/system/rake_release_task_path_disambiguation_spec.rb +6 -6
- data/spec/system/rake_test_task_path_disambiguation_spec.rb +85 -0
- data/spec/system/special_path_characters_spec.rb +86 -0
- data/spec/system/support/common_test_cases.rb +23 -21
- data/spec/system/support/gcov_common_test_cases.rb +37 -9
- data/spec/system/support/sanitize_common_test_cases.rb +2 -2
- data/spec/system/support/valgrind_common_test_cases.rb +12 -12
- data/spec/system/test_pipeline_stop_points_spec.rb +4 -4
- data/spec/system/test_runner_system_include_spec.rb +1 -1
- data/spec/system/test_source_file_directive_spec.rb +34 -5
- data/spec/units/bin/actionator_spec.rb +14 -17
- data/spec/units/bin/app_cfg_spec.rb +47 -0
- data/spec/units/bin/cli_handler_spec.rb +284 -7
- data/spec/units/bin/cli_helper_spec.rb +126 -45
- data/spec/units/bin/installation_selector_spec.rb +114 -0
- data/spec/units/bin/launchinator_spec.rb +171 -0
- data/spec/units/bin/path_validator_spec.rb +10 -0
- data/spec/units/bin/versionator_spec.rb +38 -6
- data/spec/units/build_log_writer_spec.rb +57 -0
- data/spec/units/config/build_root_policy_spec.rb +61 -0
- data/spec/units/config/configurator_builder_spec.rb +37 -6
- data/spec/units/config/configurator_paths_validator_spec.rb +292 -0
- data/spec/units/config/configurator_setup_spec.rb +65 -103
- data/spec/units/config/configurator_spec.rb +37 -6
- data/spec/units/config/configurator_validator_spec.rb +1 -172
- data/spec/units/default_tools_quoting_spec.rb +83 -0
- data/spec/units/dependencies/dependency_cache_store_spec.rb +33 -2
- data/spec/units/dependencies/dependency_debug_tree_spec.rb +1 -1
- data/spec/units/dependencies/dependency_hasher_spec.rb +42 -1
- data/spec/units/dependencies/dependency_path_normalizer_spec.rb +1 -1
- data/spec/units/dependencies/dependency_tracker_spec.rb +3 -1
- data/spec/units/filename_extension_spec.rb +11 -0
- data/spec/units/filesystem/build_subpath_spec.rb +122 -0
- data/spec/units/filesystem/destination_collision_spec.rb +30 -0
- data/spec/units/{file_finder_helper_spec.rb → filesystem/file_finder_helper_spec.rb} +46 -1
- data/spec/units/{file_finder_spec.rb → filesystem/file_finder_spec.rb} +188 -22
- data/spec/units/{file_path_collection_utils_spec.rb → filesystem/file_path_collection_utils_spec.rb} +181 -1
- data/spec/units/{file_path_utils_spec.rb → filesystem/file_path_utils_spec.rb} +204 -87
- data/spec/units/filesystem/file_system_wrapper_spec.rb +33 -0
- data/spec/units/filesystem/file_tree_spec.rb +511 -0
- data/spec/units/filesystem/file_tree_windows_spec.rb +78 -0
- data/spec/units/{file_wrapper_spec.rb → filesystem/file_wrapper_spec.rb} +154 -32
- data/spec/units/{path_matcher_spec.rb → filesystem/path_matcher_spec.rb} +12 -1
- data/spec/units/{path_mirror_spec.rb → filesystem/path_mirror_spec.rb} +32 -4
- data/spec/units/filesystem/project_paths_spec.rb +147 -0
- data/spec/units/filesystem/working_dir_spec.rb +71 -0
- data/spec/units/generators/generator_spec.rb +12 -6
- data/spec/units/generators/generator_test_results_backtrace_spec.rb +50 -46
- data/spec/units/generators/generator_test_results_spec.rb +1 -1
- data/spec/units/handoff_spec.rb +205 -0
- data/spec/units/includes/include_factory_spec.rb +3 -3
- data/spec/units/includes/include_pathinator_spec.rb +46 -0
- data/spec/units/installation_spec.rb +228 -0
- data/spec/units/library_resolver_spec.rb +157 -0
- data/spec/units/mock_locator_spec.rb +76 -1
- data/spec/units/partials/partializer_config_spec.rb +7 -0
- data/spec/units/partials/partializer_spec.rb +1 -0
- data/spec/units/partials_manager_spec.rb +17 -0
- data/spec/units/plugins/bullseye_spec.rb +15 -2
- data/spec/units/plugins/console_reportinator_spec.rb +18 -20
- data/spec/units/plugins/dependencies_spec.rb +33 -7
- data/spec/units/plugins/dependency_spec_spec.rb +17 -0
- data/spec/units/plugins/gcov_spec.rb +28 -3
- data/spec/units/plugins/gcovr_reportinator_spec.rb +19 -47
- data/spec/units/plugins/gcovr_thresholds_spec.rb +95 -0
- data/spec/units/plugins/module_generator_spec.rb +5 -5
- data/spec/units/plugins/report_build_warnings_log_spec.rb +3 -3
- data/spec/units/plugins/report_log_writer_plugin_spec.rb +10 -1
- data/spec/units/plugins/report_tests_raw_output_log_spec.rb +13 -2
- data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +77 -3
- data/spec/units/plugins/reportgenerator_reportinator_spec.rb +1 -1
- data/spec/units/plugins/sanitize_records_spec.rb +3 -1
- data/spec/units/plugins/sanitize_spec.rb +1 -1
- data/spec/units/plugins/valgrind_spec.rb +23 -8
- data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +1 -1
- data/spec/units/rake_app/rakefile_component_resolver_spec.rb +21 -0
- data/spec/units/rake_app/test_task_name_spec.rb +47 -0
- data/spec/units/release_build_executor_spec.rb +53 -14
- data/spec/units/release_build_planner_spec.rb +15 -3
- data/spec/units/reportinator_spec.rb +5 -5
- data/spec/units/standin_headerinator_spec.rb +31 -1
- data/spec/units/test_build_executor_spec.rb +107 -5
- data/spec/units/test_build_planner_spec.rb +104 -2
- data/spec/units/test_build_setup_spec.rb +96 -12
- data/spec/units/test_context_extractor_spec.rb +25 -0
- data/spec/units/test_file_preprocessinator_spec.rb +17 -1
- data/spec/units/test_includes_extractinator_spec.rb +5 -1
- data/spec/units/test_invoker/objects_wiring_spec.rb +6 -3
- data/spec/units/test_invoker_spec.rb +14 -1
- data/spec/units/test_source_file_directive_resolver_spec.rb +38 -7
- data/spec/units/tool_executor_spec.rb +26 -0
- data/spec/units/yaml_wrapper_spec.rb +11 -0
- metadata +122 -33
- data/lib/ceedling/file_path_collection_utils.rb +0 -164
- data/site-local/assets/stylesheets/main.ec1eaa64.min.css +0 -1
- data/site-local/assets/stylesheets/main.ec1eaa64.min.css.map +0 -1
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css +0 -1
- data/site-local/assets/stylesheets/palette.ab4e12ef.min.css.map +0 -1
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
<link rel="icon" href="../assets/images/favicon.png">
|
|
24
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.
|
|
24
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.8.0">
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<link rel="stylesheet" href="../assets/stylesheets/main.
|
|
32
|
+
<link rel="stylesheet" href="../assets/stylesheets/main.57a0d79d.min.css">
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
<link rel="stylesheet" href="../assets/stylesheets/palette.
|
|
35
|
+
<link rel="stylesheet" href="../assets/stylesheets/palette.fb2fffe2.min.css">
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -89,30 +89,16 @@
|
|
|
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
|
-
|
|
102
92
|
</div>
|
|
103
93
|
|
|
104
94
|
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
|
|
105
95
|
|
|
106
96
|
<aside class="md-banner md-banner--warning">
|
|
107
97
|
<div class="md-banner__inner md-grid md-typeset">
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
You are not viewing the latest version.
|
|
98
|
+
You are not viewing the latest version.
|
|
111
99
|
<a href="../..">
|
|
112
100
|
<strong>Click here to go to latest.</strong>
|
|
113
101
|
</a>
|
|
114
|
-
|
|
115
|
-
|
|
116
102
|
</div>
|
|
117
103
|
<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL(".."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
|
|
118
104
|
</aside>
|
|
@@ -4494,14 +4480,14 @@ assertions right is actually a bit tricky. Unity does all that
|
|
|
4494
4480
|
hard work for you and has been thoroughly tested itself and battle
|
|
4495
4481
|
hardened through use by many, many developers.</p>
|
|
4496
4482
|
<h2 id="super-simple-passing-test-case">Super simple passing test case</h2>
|
|
4497
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4483
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"unity.h"</span>
|
|
4498
4484
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a>
|
|
4499
4485
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="kt">void</span><span class="w"> </span><span class="nf">test_case</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
4500
4486
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="w"> </span><span class="n">TEST_ASSERT_TRUE</span><span class="p">(</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">);</span>
|
|
4501
4487
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="p">}</span>
|
|
4502
4488
|
</code></pre></div>
|
|
4503
4489
|
<h2 id="super-simple-failing-test-case">Super simple failing test case</h2>
|
|
4504
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4490
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"unity.h"</span>
|
|
4505
4491
|
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>
|
|
4506
4492
|
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a><span class="kt">void</span><span class="w"> </span><span class="nf">test_a_different_case</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
4507
4493
|
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a><span class="w"> </span><span class="n">TEST_ASSERT_TRUE</span><span class="p">(</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="p">);</span>
|
|
@@ -4511,8 +4497,8 @@ hardened through use by many, many developers.</p>
|
|
|
4511
4497
|
<p>In reality, we're probably not testing the static value of an integer
|
|
4512
4498
|
against itself. Instead, we're calling functions in our source code
|
|
4513
4499
|
and making assertions against return values.</p>
|
|
4514
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4515
|
-
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4500
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"unity.h"</span>
|
|
4501
|
+
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"my_math.h"</span>
|
|
4516
4502
|
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>
|
|
4517
4503
|
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="kt">void</span><span class="w"> </span><span class="nf">test_some_sums</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
4518
4504
|
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="n">TEST_ASSERT_EQUALS</span><span class="p">(</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="n">mySum</span><span class="p">(</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="p">);</span>
|
|
@@ -4544,7 +4530,7 @@ cases and tally up all the results.</p>
|
|
|
4544
4530
|
<a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a>-------------------
|
|
4545
4531
|
<a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a>[test/TestModel.c]
|
|
4546
4532
|
<a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> Test: testInitShouldCallSchedulerAndTemperatureFilterInit
|
|
4547
|
-
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> At line (21):
|
|
4533
|
+
<a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> At line (21): "Function TaskScheduler_Init() called more times than expected."
|
|
4548
4534
|
<a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a>
|
|
4549
4535
|
<a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a>--------------------
|
|
4550
4536
|
<a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a>OVERALL TEST SUMMARY
|
|
@@ -4574,7 +4560,7 @@ all of this can be managed and checked.</p>
|
|
|
4574
4560
|
to rely on something else to do it for you. Ceedling uses the <a href="http://github.com/ThrowTheSwitch/CMock">CMock</a>
|
|
4575
4561
|
framework to perform mocking for you.</p>
|
|
4576
4562
|
<p>Here's some sample code you might want to test:</p>
|
|
4577
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4563
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"other_code.h"</span>
|
|
4578
4564
|
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>
|
|
4579
4565
|
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="kt">void</span><span class="w"> </span><span class="nf">doTheThingYo</span><span class="p">(</span><span class="kt">mode_t</span><span class="w"> </span><span class="n">input</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
4580
4566
|
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="kt">mode_t</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">processMode</span><span class="p">(</span><span class="n">input</span><span class="p">);</span>
|
|
@@ -4588,7 +4574,7 @@ framework to perform mocking for you.</p>
|
|
|
4588
4574
|
</code></pre></div>
|
|
4589
4575
|
<p>And, here's what test cases using mocks for that code could look
|
|
4590
4576
|
like:</p>
|
|
4591
|
-
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4577
|
+
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"mock_other_code.h"</span>
|
|
4592
4578
|
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>
|
|
4593
4579
|
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a><span class="kt">void</span><span class="w"> </span><span class="nf">test_doTheThingYo_should_enableOutputF</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|
4594
4580
|
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="w"> </span><span class="c1">// Mocks</span>
|
|
@@ -4690,10 +4676,10 @@ and details on how everything fits together.</p>
|
|
|
4690
4676
|
|
|
4691
4677
|
|
|
4692
4678
|
|
|
4693
|
-
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.
|
|
4679
|
+
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
|
|
4694
4680
|
|
|
4695
4681
|
|
|
4696
|
-
<script src="../assets/javascripts/bundle.
|
|
4682
|
+
<script src="../assets/javascripts/bundle.c21346df.min.js"></script>
|
|
4697
4683
|
|
|
4698
4684
|
|
|
4699
4685
|
</body>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
<link rel="icon" href="../assets/images/favicon.png">
|
|
24
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.
|
|
24
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.8.0">
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<link rel="stylesheet" href="../assets/stylesheets/main.
|
|
32
|
+
<link rel="stylesheet" href="../assets/stylesheets/main.57a0d79d.min.css">
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
<link rel="stylesheet" href="../assets/stylesheets/palette.
|
|
35
|
+
<link rel="stylesheet" href="../assets/stylesheets/palette.fb2fffe2.min.css">
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -89,30 +89,16 @@
|
|
|
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
|
-
|
|
102
92
|
</div>
|
|
103
93
|
|
|
104
94
|
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
|
|
105
95
|
|
|
106
96
|
<aside class="md-banner md-banner--warning">
|
|
107
97
|
<div class="md-banner__inner md-grid md-typeset">
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
You are not viewing the latest version.
|
|
98
|
+
You are not viewing the latest version.
|
|
111
99
|
<a href="../..">
|
|
112
100
|
<strong>Click here to go to latest.</strong>
|
|
113
101
|
</a>
|
|
114
|
-
|
|
115
|
-
|
|
116
102
|
</div>
|
|
117
103
|
<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL(".."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
|
|
118
104
|
</aside>
|
|
@@ -4402,13 +4388,13 @@ test assertions, mocks, partials, release builds, mixins, and system & embed
|
|
|
4402
4388
|
programming.</p>
|
|
4403
4389
|
</div>
|
|
4404
4390
|
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="c1">// test_foo.c -----------------------------------------------</span>
|
|
4405
|
-
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4406
|
-
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4407
|
-
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4408
|
-
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4409
|
-
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf"
|
|
4391
|
+
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"unity.h"</span><span class="w"> </span><span class="c1">// Compile/link in Unity test framework</span>
|
|
4392
|
+
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"types.h"</span><span class="w"> </span><span class="c1">// Header file with no *.c file -- no compilation/linking</span>
|
|
4393
|
+
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"foo.h"</span><span class="w"> </span><span class="c1">// Corresponding source file, foo.c, under test will be compiled and linked</span>
|
|
4394
|
+
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"mock_bar.h"</span><span class="w"> </span><span class="c1">// bar.h will be found and mocked as mock_bar.c + compiled/linked in;</span>
|
|
4395
|
+
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a><span class="cp">#include</span><span class="w"> </span><span class="cpf">"mock_baz.h"</span><span class="w"> </span><span class="c1">// baz.h will be found and mocked as mock_baz.c + compiled/linked in</span>
|
|
4410
4396
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a>
|
|
4411
|
-
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="n">TEST_SOURCE_FILE</span><span class="p">(</span><span class="s"
|
|
4397
|
+
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a><span class="n">TEST_SOURCE_FILE</span><span class="p">(</span><span class="s">"more.c"</span><span class="p">)</span><span class="w"> </span><span class="c1">// foo.c depends on symbols from more.c, but more.c has no matching more.h</span>
|
|
4412
4398
|
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a>
|
|
4413
4399
|
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a><span class="kt">void</span><span class="w"> </span><span class="n">setUp</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"> </span><span class="p">{}</span><span class="w"> </span><span class="c1">// Every test file requires this function;</span>
|
|
4414
4400
|
<a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class="w"> </span><span class="c1">// setUp() is called by the generated runner before each test case function</span>
|
|
@@ -4519,10 +4505,10 @@ to be reported to the developer at the command line.</p>
|
|
|
4519
4505
|
|
|
4520
4506
|
|
|
4521
4507
|
|
|
4522
|
-
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.
|
|
4508
|
+
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
|
|
4523
4509
|
|
|
4524
4510
|
|
|
4525
|
-
<script src="../assets/javascripts/bundle.
|
|
4511
|
+
<script src="../assets/javascripts/bundle.c21346df.min.js"></script>
|
|
4526
4512
|
|
|
4527
4513
|
|
|
4528
4514
|
</body>
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
<link rel="icon" href="../assets/images/favicon.png">
|
|
24
|
-
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.
|
|
24
|
+
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.8.0">
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
<link rel="stylesheet" href="../assets/stylesheets/main.
|
|
32
|
+
<link rel="stylesheet" href="../assets/stylesheets/main.57a0d79d.min.css">
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
<link rel="stylesheet" href="../assets/stylesheets/palette.
|
|
35
|
+
<link rel="stylesheet" href="../assets/stylesheets/palette.fb2fffe2.min.css">
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -89,30 +89,16 @@
|
|
|
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
|
-
|
|
102
92
|
</div>
|
|
103
93
|
|
|
104
94
|
<div data-md-color-scheme="default" data-md-component="outdated" hidden>
|
|
105
95
|
|
|
106
96
|
<aside class="md-banner md-banner--warning">
|
|
107
97
|
<div class="md-banner__inner md-grid md-typeset">
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
You are not viewing the latest version.
|
|
98
|
+
You are not viewing the latest version.
|
|
111
99
|
<a href="../..">
|
|
112
100
|
<strong>Click here to go to latest.</strong>
|
|
113
101
|
</a>
|
|
114
|
-
|
|
115
|
-
|
|
116
102
|
</div>
|
|
117
103
|
<script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL(".."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
|
|
118
104
|
</aside>
|
|
@@ -4503,10 +4489,10 @@ executables and tallying all the test results.</p>
|
|
|
4503
4489
|
|
|
4504
4490
|
|
|
4505
4491
|
|
|
4506
|
-
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.
|
|
4492
|
+
<script id="__config" type="application/json">{"annotate": null, "base": "..", "features": ["navigation.tabs", "navigation.sections", "navigation.top", "navigation.indexes", "navigation.path", "search.suggest", "search.highlight", "content.code.copy", "content.code.annotate"], "search": "../assets/javascripts/workers/search.a7633da7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": {"default": "latest", "provider": "mike"}}</script>
|
|
4507
4493
|
|
|
4508
4494
|
|
|
4509
|
-
<script src="../assets/javascripts/bundle.
|
|
4495
|
+
<script src="../assets/javascripts/bundle.c21346df.min.js"></script>
|
|
4510
4496
|
|
|
4511
4497
|
|
|
4512
4498
|
</body>
|
|
@@ -23,8 +23,9 @@
|
|
|
23
23
|
|
|
24
24
|
require 'spec_helper'
|
|
25
25
|
require 'spec_integration_helper'
|
|
26
|
+
require 'file_tree_helper'
|
|
26
27
|
require 'actionator'
|
|
27
|
-
require 'ceedling/file_wrapper'
|
|
28
|
+
require 'ceedling/filesystem/file_wrapper'
|
|
28
29
|
|
|
29
30
|
describe 'Actionator file operations (integration)' do
|
|
30
31
|
include IntegrationSpecHelpers
|
|
@@ -144,6 +145,95 @@ describe 'Actionator file operations (integration)' do
|
|
|
144
145
|
])
|
|
145
146
|
end
|
|
146
147
|
end
|
|
148
|
+
|
|
149
|
+
# Status lines follow a sorted listing of full paths, so a file sorts ahead of the
|
|
150
|
+
# contents of a directory named like it
|
|
151
|
+
it 'reports files in sorted path order' do
|
|
152
|
+
with_source_tree({ 'tree/a/b.c' => 'b', 'tree/a.c' => 'a', 'tree/a-z.c' => 'z' }) do |dir|
|
|
153
|
+
actionator = build_actionator( dir )
|
|
154
|
+
|
|
155
|
+
actionator.copy_directory( 'tree', File.join( dir, 'out' ), force: true )
|
|
156
|
+
|
|
157
|
+
expect(@loginator.lines).to eq([
|
|
158
|
+
' create out',
|
|
159
|
+
' create out/a-z.c',
|
|
160
|
+
' create out/a.c',
|
|
161
|
+
' create out/a/b.c',
|
|
162
|
+
])
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
it 'leaves hidden files and hidden directories out' do
|
|
167
|
+
with_source_tree({ 'tree/keep.c' => 'k', 'tree/.rspec' => 'r', 'tree/.hidden/x.c' => 'x' }) do |dir|
|
|
168
|
+
actionator = build_actionator( dir )
|
|
169
|
+
|
|
170
|
+
actionator.copy_directory( 'tree', File.join( dir, 'out' ), force: true )
|
|
171
|
+
|
|
172
|
+
expect(Dir.children( File.join( dir, 'out' ) )).to eq( ['keep.c'] )
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
it 'never enters a hidden directory, so nothing inside one stops the copy' do
|
|
177
|
+
with_source_tree({ 'tree/keep.c' => 'k', 'tree/.venv/x.c' => 'x' }) do |dir|
|
|
178
|
+
begin
|
|
179
|
+
File.symlink( File.join( dir, 'nowhere' ), File.join( dir, 'tree', '.venv', 'dangling.c' ) )
|
|
180
|
+
rescue NotImplementedError, SystemCallError => e
|
|
181
|
+
skip "symlinks are unavailable here (#{e.class})"
|
|
182
|
+
end
|
|
183
|
+
actionator = build_actionator( dir )
|
|
184
|
+
|
|
185
|
+
actionator.copy_directory( 'tree', File.join( dir, 'out' ), force: true )
|
|
186
|
+
|
|
187
|
+
expect(Dir.children( File.join( dir, 'out' ) )).to eq( ['keep.c'] )
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
it 'copies a file below a directory named with glob metacharacters' do
|
|
192
|
+
with_source_tree({ 'tree/dir[1]/a{b}.c' => 'odd' }) do |dir|
|
|
193
|
+
actionator = build_actionator( dir )
|
|
194
|
+
|
|
195
|
+
actionator.copy_directory( 'tree', File.join( dir, 'out' ), force: true )
|
|
196
|
+
|
|
197
|
+
expect(File.read( File.join( dir, 'out', 'dir[1]', 'a{b}.c' ) )).to eq( 'odd' )
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# GH #1376: the tree is listed and classified without lstat, and a linked directory's
|
|
202
|
+
# contents are copied
|
|
203
|
+
it 'descends a linked directory' do
|
|
204
|
+
with_source_tree({ 'elsewhere/inner.c' => 'inner', 'tree/keep.c' => 'k' }) do |dir|
|
|
205
|
+
begin
|
|
206
|
+
File.symlink( File.join( dir, 'elsewhere' ), File.join( dir, 'tree', 'linked' ) )
|
|
207
|
+
rescue NotImplementedError, SystemCallError => e
|
|
208
|
+
skip "symlinks are unavailable here (#{e.class})"
|
|
209
|
+
end
|
|
210
|
+
actionator = build_actionator( dir )
|
|
211
|
+
|
|
212
|
+
actionator.copy_directory( 'tree', File.join( dir, 'out' ), force: true )
|
|
213
|
+
|
|
214
|
+
expect(File.read( File.join( dir, 'out', 'linked', 'inner.c' ) )).to eq( 'inner' )
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
it 'copies every file as a file when lstat reports files as directories' do
|
|
219
|
+
with_source_tree({ 'tree/unity.c' => 'u', 'tree/sub/unity.h' => 'h' }) do |dir|
|
|
220
|
+
actionator = build_actionator( dir )
|
|
221
|
+
allow(File).to receive(:lstat).and_wrap_original do |original, path, *rest|
|
|
222
|
+
status = original.call( path, *rest )
|
|
223
|
+
path.to_s.include?( '/tree/' ) ? FileTreeHelper::LyingStat.new( status ) : status
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
begin
|
|
227
|
+
actionator.copy_directory( 'tree', File.join( dir, 'out' ), force: true )
|
|
228
|
+
ensure
|
|
229
|
+
# The temporary directory is removed by an lstat-based remover
|
|
230
|
+
allow(File).to receive(:lstat).and_call_original
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
expect(File.file?( File.join( dir, 'out', 'unity.c' ) )).to be true
|
|
234
|
+
expect(File.file?( File.join( dir, 'out', 'sub', 'unity.h' ) )).to be true
|
|
235
|
+
end
|
|
236
|
+
end
|
|
147
237
|
end
|
|
148
238
|
|
|
149
239
|
describe 'copy_file' do
|
|
@@ -17,7 +17,7 @@ require 'json'
|
|
|
17
17
|
require 'tmpdir'
|
|
18
18
|
require 'ceedling/constants'
|
|
19
19
|
require 'ceedling/plugins/plugin'
|
|
20
|
-
require 'ceedling/file_wrapper'
|
|
20
|
+
require 'ceedling/filesystem/file_wrapper'
|
|
21
21
|
|
|
22
22
|
$: << File.expand_path('../../../plugins/compile_commands_json_db/lib', __FILE__)
|
|
23
23
|
require 'compile_commands_json_db'
|
|
@@ -35,6 +35,16 @@ describe 'Configurator pipeline (integration)' do
|
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
+
# A command that only reads the project, such as files:test, leaves build/vendor alone (GH #1361)
|
|
39
|
+
it 'vendors nothing for a command that builds nothing' do
|
|
40
|
+
in_temp_project( minimal_project_files ) do
|
|
41
|
+
configure( minimal_project_yaml, test_build: false )
|
|
42
|
+
|
|
43
|
+
expect(File.exist?( 'build/vendor/unity/src/unity.c' )).to be false
|
|
44
|
+
expect(File.exist?( 'build/vendor/cmock/src/cmock.c' )).to be false
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
38
48
|
it 'adds and removes files through :files' do
|
|
39
49
|
files = minimal_project_files.merge( 'extra/adder_extra.c' => "\n", 'src/generated.c' => "\n" )
|
|
40
50
|
|
|
@@ -20,7 +20,7 @@ describe 'Configurator validation (integration)' do
|
|
|
20
20
|
include ConfigYamlHelper
|
|
21
21
|
include ConfiguratorIntegrationHelpers
|
|
22
22
|
|
|
23
|
-
let(:validator) { configurator_objects( quiet_loginator )[:
|
|
23
|
+
let(:validator) { configurator_objects( quiet_loginator )[:configurator_paths_validator] }
|
|
24
24
|
|
|
25
25
|
let(:files) do
|
|
26
26
|
{
|
|
@@ -161,6 +161,32 @@ describe 'DependencyTracker cache hardening (integration)' do
|
|
|
161
161
|
end
|
|
162
162
|
end
|
|
163
163
|
|
|
164
|
+
# GH #1364: a build after upgrading from a version-1 layout rebuilds everything once, and
|
|
165
|
+
# the next build trusts the cache it then wrote
|
|
166
|
+
it 'rebuilds once after an upgrade from the version-1 build layout, then trusts its own cache' do
|
|
167
|
+
in_temp_dir do |dir|
|
|
168
|
+
store_path = File.join(dir, '.dep_cache.json')
|
|
169
|
+
target = write_fixture( File.join(dir, 'foo.o'), 'object bytes' )
|
|
170
|
+
|
|
171
|
+
write_fixture( store_path, JSON.generate(
|
|
172
|
+
'schema_version' => 1, 'hash_algorithm' => DependencyHasher::HASH_ALGORITHM,
|
|
173
|
+
'entries' => { target => { 'self_hash' => real_sha256(target), 'meta_hash' => nil, 'deps' => {} } }
|
|
174
|
+
) )
|
|
175
|
+
|
|
176
|
+
upgraded = build_dependency_tracker( store_path: store_path )
|
|
177
|
+
upgraded.register( target, files: [] )
|
|
178
|
+
expect( upgraded.stale?( target ) ).to be(true)
|
|
179
|
+
upgraded.mark_fresh( target )
|
|
180
|
+
upgraded.flush
|
|
181
|
+
|
|
182
|
+
expect( JSON.parse( File.read( store_path ) )['schema_version'] ).to eq( DependencyCacheStore::CACHE_SCHEMA_VERSION )
|
|
183
|
+
|
|
184
|
+
rebuilt = build_dependency_tracker( store_path: store_path )
|
|
185
|
+
rebuilt.register( target, files: [] )
|
|
186
|
+
expect( rebuilt.stale?( target ) ).to be(false)
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
164
190
|
# Same principle, but for a mismatched hash_algorithm field rather than
|
|
165
191
|
# schema_version -- the two are independent, both-checked axes.
|
|
166
192
|
it 'discards an entire cache whose hash_algorithm does not match' do
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
require 'spec_helper'
|
|
9
9
|
require 'dependency_tracker_integration_helper'
|
|
10
|
+
require 'ceedling/test_invoker/test_build_executor'
|
|
10
11
|
|
|
11
12
|
# Integration-level coverage of DependencyTracker's core query API -- register,
|
|
12
13
|
# stale?, mark_fresh, invalidate, flush -- against a real FileWrapper, real
|
|
@@ -241,4 +242,65 @@ describe 'DependencyTracker core tracking (integration)' do
|
|
|
241
242
|
end
|
|
242
243
|
end
|
|
243
244
|
|
|
245
|
+
# Staleness checks only the dependencies registered this build, so one dropped from the list
|
|
246
|
+
# leaves the rest as they were. A link registers the list itself as meta, which a shorter list
|
|
247
|
+
# changes, for when a source leaves the build.
|
|
248
|
+
it 'is stale when a dependency drops out of a list registered as meta' do
|
|
249
|
+
in_temp_dir do |dir|
|
|
250
|
+
store_path = File.join(dir, '.dep_cache.json')
|
|
251
|
+
kept = write_fixture( File.join(dir, 'kept.o'), 'kept object' )
|
|
252
|
+
dropped = write_fixture( File.join(dir, 'dropped.o'), 'dropped object' )
|
|
253
|
+
listed = write_fixture( File.join(dir, 'listed.out'), 'executable bytes' )
|
|
254
|
+
|
|
255
|
+
first_run = build_dependency_tracker( store_path: store_path )
|
|
256
|
+
first_run.register( listed, files: [kept, dropped], meta: { objects: [kept, dropped] } )
|
|
257
|
+
first_run.mark_fresh( listed )
|
|
258
|
+
first_run.flush
|
|
259
|
+
|
|
260
|
+
second_run = build_dependency_tracker( store_path: store_path )
|
|
261
|
+
second_run.register( listed, files: [kept], meta: { objects: [kept] } )
|
|
262
|
+
|
|
263
|
+
expect( second_run.stale?( listed ) ).to be(true)
|
|
264
|
+
end
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
# A delta build skips running an unchanged test executable and reports its cached results.
|
|
268
|
+
# An executable linked with command line arguments enabled is identical with or without a
|
|
269
|
+
# test case filter, so the fixture's own metadata must carry the filter (GH #1360).
|
|
270
|
+
it 'reruns a fixture in a later run only when its test case filters changed' do
|
|
271
|
+
in_temp_dir do |dir|
|
|
272
|
+
store_path = File.join(dir, '.dep_cache.json')
|
|
273
|
+
executable = write_fixture( File.join(dir, 'test_foo.out'), 'executable bytes' )
|
|
274
|
+
target = write_fixture( File.join(dir, 'test_foo.fixture_run'), '' )
|
|
275
|
+
|
|
276
|
+
executor = TestBuildExecutor.allocate
|
|
277
|
+
configurator = double( 'configurator' )
|
|
278
|
+
executor.instance_variable_set( :@configurator, configurator )
|
|
279
|
+
|
|
280
|
+
meta_for = lambda do |include, exclude|
|
|
281
|
+
allow(configurator).to receive(:include_test_case).and_return( include )
|
|
282
|
+
allow(configurator).to receive(:exclude_test_case).and_return( exclude )
|
|
283
|
+
executor.fixture_meta( fixture_tool: { executable: '${1}' }, use_backtrace: :simple, backtrace_tools: [] )
|
|
284
|
+
end
|
|
285
|
+
|
|
286
|
+
first_run = build_dependency_tracker( store_path: store_path )
|
|
287
|
+
first_run.register( target, files: [executable], meta: meta_for.call( 'test_wakeup', '' ) )
|
|
288
|
+
first_run.mark_fresh( target )
|
|
289
|
+
first_run.flush
|
|
290
|
+
|
|
291
|
+
runs = {
|
|
292
|
+
'the same filter' => [['test_wakeup', ''], false],
|
|
293
|
+
'no filter' => [['', ''], true],
|
|
294
|
+
'a different filter' => [['test_error', ''], true],
|
|
295
|
+
'an exclusion added' => [['test_wakeup', 'test_error'], true]
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
runs.each do |label, ((include, exclude), stale)|
|
|
299
|
+
later_run = build_dependency_tracker( store_path: store_path )
|
|
300
|
+
later_run.register( target, files: [executable], meta: meta_for.call( include, exclude ) )
|
|
301
|
+
expect( later_run.stale?( target ) ).to be(stale), "expected #{label} to be #{stale ? 'stale' : 'fresh'}"
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
end
|
|
305
|
+
|
|
244
306
|
end
|