ceedling 1.2.1 → 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.
Files changed (276) hide show
  1. checksums.yaml +4 -4
  2. data/GIT_COMMIT_SHA +1 -1
  3. data/README.md +11 -9
  4. data/Rakefile +2 -1
  5. data/assets/features/ceedling +1 -1
  6. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_typo.c +14 -0
  7. data/assets/fixtures/tests_with_duplicate_test_names/test_foo.c +21 -0
  8. data/bin/actionator.rb +6 -12
  9. data/bin/app_cfg.rb +14 -1
  10. data/bin/ceedling +13 -3
  11. data/bin/cli.rb +25 -6
  12. data/bin/cli_handler.rb +113 -73
  13. data/bin/cli_helper.rb +51 -78
  14. data/bin/installation_selector.rb +81 -0
  15. data/bin/launchinator.rb +69 -0
  16. data/bin/mixin_resolvinator.rb +26 -36
  17. data/bin/objects.yml +13 -0
  18. data/bin/path_validator.rb +25 -29
  19. data/bin/versionator.rb +47 -48
  20. data/ceedling.gemspec +19 -15
  21. data/docs/BreakingChanges.md +70 -1
  22. data/docs/Changelog.md +74 -3
  23. data/docs/KnownIssues.md +90 -4
  24. data/docs/ReleaseNotes.md +13 -0
  25. data/lib/ceedling/build_log_writer.rb +33 -0
  26. data/lib/ceedling/config/build_root_policy.rb +70 -0
  27. data/lib/ceedling/config/configurator.rb +14 -16
  28. data/lib/ceedling/config/configurator_builder.rb +58 -28
  29. data/lib/ceedling/config/configurator_paths_validator.rb +179 -0
  30. data/lib/ceedling/config/configurator_plugins.rb +1 -1
  31. data/lib/ceedling/config/configurator_setup.rb +15 -28
  32. data/lib/ceedling/config/configurator_validator.rb +1 -110
  33. data/lib/ceedling/defaults.rb +4 -4
  34. data/lib/ceedling/dependencies/README.md +18 -16
  35. data/lib/ceedling/dependencies/dependency_cache_store.rb +20 -3
  36. data/lib/ceedling/dependencies/dependency_hasher.rb +35 -1
  37. data/lib/ceedling/filename_extension.rb +7 -1
  38. data/lib/ceedling/filesystem/FILE_TREE.md +253 -0
  39. data/lib/ceedling/filesystem/PATH_HANDLING.md +304 -0
  40. data/lib/ceedling/filesystem/README.md +41 -0
  41. data/lib/ceedling/filesystem/build_subpath.rb +102 -0
  42. data/lib/ceedling/filesystem/destination_collision.rb +25 -0
  43. data/lib/ceedling/{file_finder.rb → filesystem/file_finder.rb} +159 -104
  44. data/lib/ceedling/{file_finder_helper.rb → filesystem/file_finder_helper.rb} +36 -31
  45. data/lib/ceedling/filesystem/file_path_collection_utils.rb +183 -0
  46. data/lib/ceedling/{file_path_utils.rb → filesystem/file_path_utils.rb} +108 -97
  47. data/lib/ceedling/{file_system_wrapper.rb → filesystem/file_system_wrapper.rb} +6 -5
  48. data/lib/ceedling/filesystem/file_tree.rb +241 -0
  49. data/lib/ceedling/{file_wrapper.rb → filesystem/file_wrapper.rb} +45 -38
  50. data/lib/ceedling/filesystem/path_exclusions.rb +30 -0
  51. data/lib/ceedling/{path_matcher.rb → filesystem/path_matcher.rb} +27 -23
  52. data/lib/ceedling/{path_mirror.rb → filesystem/path_mirror.rb} +19 -18
  53. data/lib/ceedling/filesystem/path_spellings.rb +55 -0
  54. data/lib/ceedling/filesystem/project_paths.rb +184 -0
  55. data/lib/ceedling/filesystem/working_dir.rb +40 -0
  56. data/lib/ceedling/generators/generator.rb +5 -6
  57. data/lib/ceedling/generators/generator_partials.rb +1 -1
  58. data/lib/ceedling/generators/generator_test_results_backtrace.rb +7 -7
  59. data/lib/ceedling/handoff.rb +121 -0
  60. data/lib/ceedling/includes/include_factory.rb +3 -3
  61. data/lib/ceedling/includes/include_pathinator.rb +67 -10
  62. data/lib/ceedling/includes/includes.rb +1 -1
  63. data/lib/ceedling/installation.rb +92 -0
  64. data/lib/ceedling/library_resolver.rb +99 -0
  65. data/lib/ceedling/objects.yml +23 -2
  66. data/lib/ceedling/partials/partializer.rb +4 -4
  67. data/lib/ceedling/partials/partializer_config.rb +3 -1
  68. data/lib/ceedling/plugins/report_log_writer_plugin.rb +3 -5
  69. data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +1 -1
  70. data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +1 -1
  71. data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +1 -1
  72. data/lib/ceedling/rake_app/rakefile_component_resolver.rb +10 -17
  73. data/lib/ceedling/rakefile.rb +15 -1
  74. data/lib/ceedling/rakefiles/base/tasks_base.rake +1 -1
  75. data/lib/ceedling/rakefiles/release/rules_release.rake +4 -7
  76. data/lib/ceedling/release_invoker/release_build_executor.rb +33 -44
  77. data/lib/ceedling/release_invoker/release_build_planner.rb +14 -6
  78. data/lib/ceedling/reportinator.rb +3 -4
  79. data/lib/ceedling/setupinator.rb +94 -90
  80. data/lib/ceedling/test_context_extractor.rb +5 -1
  81. data/lib/ceedling/test_invoker/PIPELINE.md +9 -7
  82. data/lib/ceedling/test_invoker/mock_locator.rb +60 -2
  83. data/lib/ceedling/test_invoker/partials_manager.rb +12 -0
  84. data/lib/ceedling/test_invoker/standin_headerinator.rb +22 -13
  85. data/lib/ceedling/test_invoker/test_build_executor.rb +24 -40
  86. data/lib/ceedling/test_invoker/test_build_planner.rb +37 -18
  87. data/lib/ceedling/test_invoker/test_build_setup.rb +17 -12
  88. data/lib/ceedling/test_invoker/test_build_validations.rb +16 -31
  89. data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +1 -1
  90. data/lib/ceedling/test_invoker/test_invoker.rb +6 -1
  91. data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +1 -1
  92. data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +40 -20
  93. data/lib/ceedling/tool_executor.rb +9 -3
  94. data/lib/ceedling/yaml_wrapper.rb +3 -2
  95. data/lib/version.rb +1 -1
  96. data/plugins/bullseye/config/defaults_bullseye.rb +1 -1
  97. data/plugins/bullseye/lib/bullseye.rb +9 -7
  98. data/plugins/cppcheck/config/defaults_cppcheck.rb +1 -1
  99. data/plugins/dependencies/config/defaults.yml +6 -6
  100. data/plugins/dependencies/dependencies.rake +4 -1
  101. data/plugins/dependencies/lib/dependencies.rb +18 -8
  102. data/plugins/dependencies/lib/dependency_spec.rb +17 -5
  103. data/plugins/fff/lib/fff.rb +45 -39
  104. data/plugins/fff/spec/fff_cmock_wrapper_spec.rb +128 -0
  105. data/plugins/gcov/config/defaults_gcov.rb +1 -1
  106. data/plugins/gcov/lib/console_reportinator.rb +4 -18
  107. data/plugins/gcov/lib/gcov.rb +9 -2
  108. data/plugins/gcov/lib/gcovr_reportinator.rb +8 -40
  109. data/plugins/gcov/lib/gcovr_thresholds.rb +74 -0
  110. data/plugins/gcov/lib/reportgenerator_reportinator.rb +1 -1
  111. data/plugins/module_generator/lib/module_generator.rb +3 -3
  112. data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +53 -80
  113. data/plugins/sanitize/lib/sanitize_records.rb +3 -6
  114. data/plugins/valgrind/lib/valgrind.rb +14 -7
  115. data/site-local/configuration/reference/cmock.html +2 -1
  116. data/site-local/configuration/reference/files.html +9 -3
  117. data/site-local/configuration/reference/libraries.html +21 -3
  118. data/site-local/configuration/reference/paths.html +29 -6
  119. data/site-local/configuration/reference/project.html +17 -7
  120. data/site-local/configuration/reference/release-build.html +2 -0
  121. data/site-local/configuration/reference/tools.html +9 -0
  122. data/site-local/configuration/which-ceedling.html +377 -17
  123. data/site-local/development/releases.html +5 -1
  124. data/site-local/development/workflow.html +48 -43
  125. data/site-local/getting-started/builds.html +2 -0
  126. data/site-local/getting-started/command-line.html +56 -4
  127. data/site-local/plugins/dependencies.html +6 -3
  128. data/site-local/plugins/fff.html +42 -11
  129. data/site-local/plugins/gcov/gcovr.html +15 -12
  130. data/site-local/plugins/gcov/setup.html +2 -1
  131. data/site-local/plugins/report-tests-raw-output-log.html +3 -1
  132. data/site-local/plugins/report-tests-teamcity-stdout.html +6 -3
  133. data/site-local/plugins/sanitize.html +7 -6
  134. data/site-local/plugins/valgrind.html +8 -7
  135. data/site-local/project/upgrade.html +3 -0
  136. data/site-local/reference/command-line.html +9 -2
  137. data/site-local/sitemap.xml.gz +0 -0
  138. data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +1 -1
  139. data/site-local/snapshot/plugins/gcov/config/defaults_gcov.rb +1 -1
  140. data/site-local/testing-guide/conventions.html +53 -0
  141. data/spec/integration/actionator_file_operations_spec.rb +91 -1
  142. data/spec/integration/compile_commands_json_db_spec.rb +1 -1
  143. data/spec/integration/configurator_validation_spec.rb +1 -1
  144. data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +26 -0
  145. data/spec/integration/dependencies/dependency_tracker_core_spec.rb +22 -0
  146. data/spec/integration/launcher_handoff_spec.rb +297 -0
  147. data/spec/integration/mixin_loading_spec.rb +1 -1
  148. data/spec/integration/module_generator_spec.rb +3 -3
  149. data/spec/integration/nested_test_artifacts_spec.rb +99 -0
  150. data/spec/integration/partials_module_resolution_spec.rb +7 -4
  151. data/spec/integration/path_intake_scenarios_spec.rb +101 -0
  152. data/spec/integration/path_scenarios_spec.rb +322 -0
  153. data/spec/integration/quote_include_isolator_spec.rb +1 -1
  154. data/spec/integration/report_build_warnings_log_spec.rb +1 -1
  155. data/spec/integration/report_tests_log_factory_spec.rb +1 -1
  156. data/spec/integration/test_executable_manifest_spec.rb +1 -1
  157. data/spec/integration/test_includes_extractinator_spec.rb +2 -1
  158. data/spec/integration/test_naming_spec.rb +198 -0
  159. data/spec/integration/test_source_file_checks_spec.rb +166 -0
  160. data/spec/integration/tool_validator_spec.rb +1 -1
  161. data/spec/integration/upgrade_docs_spec.rb +84 -0
  162. data/spec/integration/vendor_copy_transient_io_retry_spec.rb +74 -5
  163. data/spec/support/file_tree_helper.rb +88 -0
  164. data/spec/support/integration/configurator_integration_helper.rb +6 -6
  165. data/spec/support/integration/dependency_tracker_integration_helper.rb +1 -1
  166. data/spec/support/integration/partials_generation_integration_helper.rb +2 -2
  167. data/spec/support/integration/path_scenario_harness.rb +173 -0
  168. data/spec/support/integration/spec_integration_helper.rb +1 -1
  169. data/spec/support/integration/test_includes_harness.rb +13 -2
  170. data/spec/support/spec_helper.rb +2 -0
  171. data/spec/support/system/spec_system_helper.rb +7 -6
  172. data/spec/support/system/system_context.rb +21 -3
  173. data/spec/support/working_dir_tracking.rb +49 -0
  174. data/spec/system/build_output_mirroring_spec.rb +2 -2
  175. data/spec/system/conditional_mock_includes_spec.rb +1 -1
  176. data/spec/system/delta_builds_spec.rb +137 -11
  177. data/spec/system/gcov_deployment_spec.rb +1 -0
  178. data/spec/system/header_include_path_validation_spec.rb +4 -4
  179. data/spec/system/launcher_handoff_spec.rb +82 -0
  180. data/spec/system/mock_include_folders_spec.rb +91 -0
  181. data/spec/system/parent_directory_reference_spec.rb +5 -3
  182. data/spec/system/path_handling_probes_spec.rb +192 -0
  183. data/spec/system/preprocessing_parameterized_tests_spec.rb +1 -1
  184. data/spec/system/rake_release_task_path_disambiguation_spec.rb +6 -6
  185. data/spec/system/rake_test_task_path_disambiguation_spec.rb +85 -0
  186. data/spec/system/special_path_characters_spec.rb +86 -0
  187. data/spec/system/support/common_test_cases.rb +23 -21
  188. data/spec/system/support/gcov_common_test_cases.rb +37 -9
  189. data/spec/system/support/sanitize_common_test_cases.rb +2 -2
  190. data/spec/system/support/valgrind_common_test_cases.rb +12 -12
  191. data/spec/system/test_pipeline_stop_points_spec.rb +4 -4
  192. data/spec/system/test_runner_system_include_spec.rb +1 -1
  193. data/spec/system/test_source_file_directive_spec.rb +34 -5
  194. data/spec/units/bin/actionator_spec.rb +14 -17
  195. data/spec/units/bin/app_cfg_spec.rb +37 -0
  196. data/spec/units/bin/cli_handler_spec.rb +282 -6
  197. data/spec/units/bin/cli_helper_spec.rb +116 -45
  198. data/spec/units/bin/installation_selector_spec.rb +114 -0
  199. data/spec/units/bin/launchinator_spec.rb +171 -0
  200. data/spec/units/bin/path_validator_spec.rb +10 -0
  201. data/spec/units/bin/versionator_spec.rb +38 -6
  202. data/spec/units/build_log_writer_spec.rb +57 -0
  203. data/spec/units/config/build_root_policy_spec.rb +61 -0
  204. data/spec/units/config/configurator_builder_spec.rb +37 -6
  205. data/spec/units/config/configurator_paths_validator_spec.rb +292 -0
  206. data/spec/units/config/configurator_setup_spec.rb +9 -65
  207. data/spec/units/config/configurator_spec.rb +27 -5
  208. data/spec/units/config/configurator_validator_spec.rb +1 -172
  209. data/spec/units/default_tools_quoting_spec.rb +83 -0
  210. data/spec/units/dependencies/dependency_cache_store_spec.rb +33 -2
  211. data/spec/units/dependencies/dependency_debug_tree_spec.rb +1 -1
  212. data/spec/units/dependencies/dependency_hasher_spec.rb +42 -1
  213. data/spec/units/dependencies/dependency_path_normalizer_spec.rb +1 -1
  214. data/spec/units/dependencies/dependency_tracker_spec.rb +3 -1
  215. data/spec/units/filename_extension_spec.rb +11 -0
  216. data/spec/units/filesystem/build_subpath_spec.rb +122 -0
  217. data/spec/units/filesystem/destination_collision_spec.rb +30 -0
  218. data/spec/units/{file_finder_helper_spec.rb → filesystem/file_finder_helper_spec.rb} +46 -1
  219. data/spec/units/{file_finder_spec.rb → filesystem/file_finder_spec.rb} +188 -22
  220. data/spec/units/{file_path_collection_utils_spec.rb → filesystem/file_path_collection_utils_spec.rb} +181 -1
  221. data/spec/units/{file_path_utils_spec.rb → filesystem/file_path_utils_spec.rb} +204 -87
  222. data/spec/units/filesystem/file_system_wrapper_spec.rb +33 -0
  223. data/spec/units/filesystem/file_tree_spec.rb +511 -0
  224. data/spec/units/filesystem/file_tree_windows_spec.rb +78 -0
  225. data/spec/units/{file_wrapper_spec.rb → filesystem/file_wrapper_spec.rb} +95 -12
  226. data/spec/units/{path_matcher_spec.rb → filesystem/path_matcher_spec.rb} +12 -1
  227. data/spec/units/{path_mirror_spec.rb → filesystem/path_mirror_spec.rb} +32 -4
  228. data/spec/units/filesystem/project_paths_spec.rb +147 -0
  229. data/spec/units/filesystem/working_dir_spec.rb +71 -0
  230. data/spec/units/generators/generator_spec.rb +12 -6
  231. data/spec/units/generators/generator_test_results_backtrace_spec.rb +50 -46
  232. data/spec/units/generators/generator_test_results_spec.rb +1 -1
  233. data/spec/units/handoff_spec.rb +205 -0
  234. data/spec/units/includes/include_factory_spec.rb +3 -3
  235. data/spec/units/includes/include_pathinator_spec.rb +46 -0
  236. data/spec/units/installation_spec.rb +228 -0
  237. data/spec/units/library_resolver_spec.rb +157 -0
  238. data/spec/units/mock_locator_spec.rb +76 -1
  239. data/spec/units/partials/partializer_config_spec.rb +7 -0
  240. data/spec/units/partials/partializer_spec.rb +1 -0
  241. data/spec/units/partials_manager_spec.rb +17 -0
  242. data/spec/units/plugins/bullseye_spec.rb +15 -2
  243. data/spec/units/plugins/console_reportinator_spec.rb +18 -20
  244. data/spec/units/plugins/dependencies_spec.rb +33 -7
  245. data/spec/units/plugins/dependency_spec_spec.rb +17 -0
  246. data/spec/units/plugins/gcov_spec.rb +28 -3
  247. data/spec/units/plugins/gcovr_reportinator_spec.rb +19 -47
  248. data/spec/units/plugins/gcovr_thresholds_spec.rb +95 -0
  249. data/spec/units/plugins/module_generator_spec.rb +5 -5
  250. data/spec/units/plugins/report_build_warnings_log_spec.rb +3 -3
  251. data/spec/units/plugins/report_log_writer_plugin_spec.rb +10 -1
  252. data/spec/units/plugins/report_tests_raw_output_log_spec.rb +13 -2
  253. data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +77 -3
  254. data/spec/units/plugins/reportgenerator_reportinator_spec.rb +1 -1
  255. data/spec/units/plugins/sanitize_records_spec.rb +3 -1
  256. data/spec/units/plugins/sanitize_spec.rb +1 -1
  257. data/spec/units/plugins/valgrind_spec.rb +23 -8
  258. data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +1 -1
  259. data/spec/units/rake_app/rakefile_component_resolver_spec.rb +21 -0
  260. data/spec/units/release_build_executor_spec.rb +53 -14
  261. data/spec/units/release_build_planner_spec.rb +15 -3
  262. data/spec/units/reportinator_spec.rb +5 -5
  263. data/spec/units/standin_headerinator_spec.rb +31 -1
  264. data/spec/units/test_build_executor_spec.rb +65 -3
  265. data/spec/units/test_build_planner_spec.rb +104 -2
  266. data/spec/units/test_build_setup_spec.rb +96 -12
  267. data/spec/units/test_context_extractor_spec.rb +25 -0
  268. data/spec/units/test_file_preprocessinator_spec.rb +17 -1
  269. data/spec/units/test_includes_extractinator_spec.rb +5 -1
  270. data/spec/units/test_invoker/objects_wiring_spec.rb +6 -3
  271. data/spec/units/test_invoker_spec.rb +14 -1
  272. data/spec/units/test_source_file_directive_resolver_spec.rb +38 -7
  273. data/spec/units/tool_executor_spec.rb +26 -0
  274. data/spec/units/yaml_wrapper_spec.rb +11 -0
  275. metadata +109 -25
  276. data/lib/ceedling/file_path_collection_utils.rb +0 -164
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ceedling
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark VanderVoord
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-10-24 00:00:00.000000000 Z
13
+ date: 2026-10-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -239,6 +239,7 @@ files:
239
239
  - assets/fixtures/test_source_file_duplicate_basenames/test_calc_alpha.c
240
240
  - assets/fixtures/test_source_file_duplicate_basenames/test_calc_ambiguous.c
241
241
  - assets/fixtures/test_source_file_duplicate_basenames/test_calc_beta.c
242
+ - assets/fixtures/test_source_file_duplicate_basenames/test_calc_typo.c
242
243
  - assets/fixtures/tests_with_conditional_includes/src/feature_config.h
243
244
  - assets/fixtures/tests_with_conditional_includes/src/feature_extra.h
244
245
  - assets/fixtures/tests_with_conditional_includes/src/feature_extra2.h
@@ -277,6 +278,7 @@ files:
277
278
  - assets/fixtures/tests_with_defines/test/test_adc_hardware.c
278
279
  - assets/fixtures/tests_with_defines/test/test_adc_hardware_special.c
279
280
  - assets/fixtures/tests_with_duplicate_test_names/integration/test_foo.c
281
+ - assets/fixtures/tests_with_duplicate_test_names/test_foo.c
280
282
  - assets/fixtures/tests_with_duplicate_test_names/unit/test_foo.c
281
283
  - assets/fixtures/tests_with_encoding/src/unicoder.c
282
284
  - assets/fixtures/tests_with_encoding/src/unicoder.h
@@ -327,6 +329,8 @@ files:
327
329
  - bin/cli_helper.rb
328
330
  - bin/cli_options_transform.rb
329
331
  - bin/composinator.rb
332
+ - bin/installation_selector.rb
333
+ - bin/launchinator.rb
330
334
  - bin/merginator.rb
331
335
  - bin/mixin_resolvinator.rb
332
336
  - bin/mixin_standardizer.rb
@@ -493,6 +497,7 @@ files:
493
497
  - lib/ceedling/array_patches.rb
494
498
  - lib/ceedling/backtrace.gdb
495
499
  - lib/ceedling/batchinator.rb
500
+ - lib/ceedling/build_log_writer.rb
496
501
  - lib/ceedling/c_extractor/README.md
497
502
  - lib/ceedling/c_extractor/c_extractor.rb
498
503
  - lib/ceedling/c_extractor/c_extractor_code_text.rb
@@ -503,10 +508,12 @@ files:
503
508
  - lib/ceedling/c_extractor/c_extractor_preprocessing.rb
504
509
  - lib/ceedling/c_extractor/c_extractor_types.rb
505
510
  - lib/ceedling/ceedling.h
511
+ - lib/ceedling/config/build_root_policy.rb
506
512
  - lib/ceedling/config/config_matchinator.rb
507
513
  - lib/ceedling/config/config_walkinator.rb
508
514
  - lib/ceedling/config/configurator.rb
509
515
  - lib/ceedling/config/configurator_builder.rb
516
+ - lib/ceedling/config/configurator_paths_validator.rb
510
517
  - lib/ceedling/config/configurator_plugins.rb
511
518
  - lib/ceedling/config/configurator_setup.rb
512
519
  - lib/ceedling/config/configurator_validator.rb
@@ -525,13 +532,25 @@ files:
525
532
  - lib/ceedling/dependencies/gcc_dependency_parser.rb
526
533
  - lib/ceedling/encodinator.rb
527
534
  - lib/ceedling/exceptions.rb
528
- - lib/ceedling/file_finder.rb
529
- - lib/ceedling/file_finder_helper.rb
530
- - lib/ceedling/file_path_collection_utils.rb
531
- - lib/ceedling/file_path_utils.rb
532
- - lib/ceedling/file_system_wrapper.rb
533
- - lib/ceedling/file_wrapper.rb
534
535
  - lib/ceedling/filename_extension.rb
536
+ - lib/ceedling/filesystem/FILE_TREE.md
537
+ - lib/ceedling/filesystem/PATH_HANDLING.md
538
+ - lib/ceedling/filesystem/README.md
539
+ - lib/ceedling/filesystem/build_subpath.rb
540
+ - lib/ceedling/filesystem/destination_collision.rb
541
+ - lib/ceedling/filesystem/file_finder.rb
542
+ - lib/ceedling/filesystem/file_finder_helper.rb
543
+ - lib/ceedling/filesystem/file_path_collection_utils.rb
544
+ - lib/ceedling/filesystem/file_path_utils.rb
545
+ - lib/ceedling/filesystem/file_system_wrapper.rb
546
+ - lib/ceedling/filesystem/file_tree.rb
547
+ - lib/ceedling/filesystem/file_wrapper.rb
548
+ - lib/ceedling/filesystem/path_exclusions.rb
549
+ - lib/ceedling/filesystem/path_matcher.rb
550
+ - lib/ceedling/filesystem/path_mirror.rb
551
+ - lib/ceedling/filesystem/path_spellings.rb
552
+ - lib/ceedling/filesystem/project_paths.rb
553
+ - lib/ceedling/filesystem/working_dir.rb
535
554
  - lib/ceedling/flaginator.rb
536
555
  - lib/ceedling/generators/generator.rb
537
556
  - lib/ceedling/generators/generator_helper.rb
@@ -541,9 +560,12 @@ files:
541
560
  - lib/ceedling/generators/generator_test_results_backtrace.rb
542
561
  - lib/ceedling/generators/generator_test_results_sanity_checker.rb
543
562
  - lib/ceedling/generators/generator_test_runner.rb
563
+ - lib/ceedling/handoff.rb
544
564
  - lib/ceedling/includes/include_factory.rb
545
565
  - lib/ceedling/includes/include_pathinator.rb
546
566
  - lib/ceedling/includes/includes.rb
567
+ - lib/ceedling/installation.rb
568
+ - lib/ceedling/library_resolver.rb
547
569
  - lib/ceedling/loginator.rb
548
570
  - lib/ceedling/objects.yml
549
571
  - lib/ceedling/parsing_parcels.rb
@@ -554,8 +576,6 @@ files:
554
576
  - lib/ceedling/partials/partializer_runtime.rb
555
577
  - lib/ceedling/partials/partializer_utils.rb
556
578
  - lib/ceedling/partials/partials.rb
557
- - lib/ceedling/path_matcher.rb
558
- - lib/ceedling/path_mirror.rb
559
579
  - lib/ceedling/plugins/plugin.rb
560
580
  - lib/ceedling/plugins/plugin_manager.rb
561
581
  - lib/ceedling/plugins/plugin_manager_helper.rb
@@ -692,6 +712,7 @@ files:
692
712
  - plugins/fff/examples/fff_example/test/test_foo.c
693
713
  - plugins/fff/lib/fff.rb
694
714
  - plugins/fff/lib/fff_mock_generator.rb
715
+ - plugins/fff/spec/fff_cmock_wrapper_spec.rb
695
716
  - plugins/fff/spec/fff_mock_header_generator_spec.rb
696
717
  - plugins/fff/spec/fff_mock_source_generator_spec.rb
697
718
  - plugins/fff/spec/header_generator.rb
@@ -710,6 +731,7 @@ files:
710
731
  - plugins/gcov/lib/gcov_reportinator.rb
711
732
  - plugins/gcov/lib/gcov_types.rb
712
733
  - plugins/gcov/lib/gcovr_reportinator.rb
734
+ - plugins/gcov/lib/gcovr_thresholds.rb
713
735
  - plugins/gcov/lib/reportgenerator_reportinator.rb
714
736
  - plugins/module_generator/Rakefile
715
737
  - plugins/module_generator/assets/stubby1.h
@@ -946,12 +968,16 @@ files:
946
968
  - spec/integration/dependencies_plugin_spec.rb
947
969
  - spec/integration/erb_dependency_removed_spec.rb
948
970
  - spec/integration/includes_extraction_spec.rb
971
+ - spec/integration/launcher_handoff_spec.rb
949
972
  - spec/integration/mixin_loading_spec.rb
950
973
  - spec/integration/module_generator_spec.rb
974
+ - spec/integration/nested_test_artifacts_spec.rb
951
975
  - spec/integration/partials_fallback_preprocessing_spec.rb
952
976
  - spec/integration/partials_header_composition_spec.rb
953
977
  - spec/integration/partials_module_resolution_spec.rb
954
978
  - spec/integration/partials_symbol_linkage_spec.rb
979
+ - spec/integration/path_intake_scenarios_spec.rb
980
+ - spec/integration/path_scenarios_spec.rb
955
981
  - spec/integration/preprocessing_transient_io_retry_spec.rb
956
982
  - spec/integration/quote_include_isolator_spec.rb
957
983
  - spec/integration/rake_task_registry_plugins_spec.rb
@@ -962,11 +988,15 @@ files:
962
988
  - spec/integration/test_build_parallel_barrier_spec.rb
963
989
  - spec/integration/test_executable_manifest_spec.rb
964
990
  - spec/integration/test_includes_extractinator_spec.rb
991
+ - spec/integration/test_naming_spec.rb
992
+ - spec/integration/test_source_file_checks_spec.rb
965
993
  - spec/integration/tool_executor_spec.rb
966
994
  - spec/integration/tool_validator_spec.rb
995
+ - spec/integration/upgrade_docs_spec.rb
967
996
  - spec/integration/vendor_copy_transient_io_retry_spec.rb
968
997
  - spec/manual/stress_test.rb
969
998
  - spec/support/config_yaml_helper.rb
999
+ - spec/support/file_tree_helper.rb
970
1000
  - spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt
971
1001
  - spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt
972
1002
  - spec/support/fixtures/sanitizer_reports/gcc_heap.txt
@@ -1021,6 +1051,7 @@ files:
1021
1051
  - spec/support/integration/configurator_integration_helper.rb
1022
1052
  - spec/support/integration/dependency_tracker_integration_helper.rb
1023
1053
  - spec/support/integration/partials_generation_integration_helper.rb
1054
+ - spec/support/integration/path_scenario_harness.rb
1024
1055
  - spec/support/integration/spec_integration_helper.rb
1025
1056
  - spec/support/integration/test_includes_harness.rb
1026
1057
  - spec/support/integration/tool_executor_integration_helper.rb
@@ -1041,6 +1072,7 @@ files:
1041
1072
  - spec/support/test_example_ignore.pass
1042
1073
  - spec/support/test_example_mangled.pass
1043
1074
  - spec/support/test_example_with_time.pass
1075
+ - spec/support/working_dir_tracking.rb
1044
1076
  - spec/system/bracket_path_handling_spec.rb
1045
1077
  - spec/system/build_output_mirroring_spec.rb
1046
1078
  - spec/system/build_recovery_spec.rb
@@ -1064,10 +1096,13 @@ files:
1064
1096
  - spec/system/header_include_path_validation_spec.rb
1065
1097
  - spec/system/implicit_source_header_correspondence_disambiguation_spec.rb
1066
1098
  - spec/system/include_path_reconciliation_spec.rb
1099
+ - spec/system/launcher_handoff_spec.rb
1067
1100
  - spec/system/mixin_ordering_spec.rb
1101
+ - spec/system/mock_include_folders_spec.rb
1068
1102
  - spec/system/mocks_partials_configuration_validation_spec.rb
1069
1103
  - spec/system/parent_directory_reference_spec.rb
1070
1104
  - spec/system/partials_module_disambiguation_spec.rb
1105
+ - spec/system/path_handling_probes_spec.rb
1071
1106
  - spec/system/pinned_thread_count_spec.rb
1072
1107
  - spec/system/plugin_delta_builds_spec.rb
1073
1108
  - spec/system/preprocessing_encoding_spec.rb
@@ -1082,6 +1117,7 @@ files:
1082
1117
  - spec/system/sanitize_deployment_spec.rb
1083
1118
  - spec/system/shuffle_tests_spec.rb
1084
1119
  - spec/system/sibling_header_collision_spec.rb
1120
+ - spec/system/special_path_characters_spec.rb
1085
1121
  - spec/system/subdir_include_preservation_spec.rb
1086
1122
  - spec/system/support/bullseye_common_test_cases.rb
1087
1123
  - spec/system/support/bullseye_helpers.rb
@@ -1107,6 +1143,8 @@ files:
1107
1143
  - spec/units/bin/cli_helper_spec.rb
1108
1144
  - spec/units/bin/cli_options_transform_spec.rb
1109
1145
  - spec/units/bin/composinator_spec.rb
1146
+ - spec/units/bin/installation_selector_spec.rb
1147
+ - spec/units/bin/launchinator_spec.rb
1110
1148
  - spec/units/bin/merginator_spec.rb
1111
1149
  - spec/units/bin/mixin_resolvinator_spec.rb
1112
1150
  - spec/units/bin/mixin_standardizer_spec.rb
@@ -1116,6 +1154,7 @@ files:
1116
1154
  - spec/units/bin/rake_patches_spec.rb
1117
1155
  - spec/units/bin/recursive_merger_spec.rb
1118
1156
  - spec/units/bin/versionator_spec.rb
1157
+ - spec/units/build_log_writer_spec.rb
1119
1158
  - spec/units/c_extractor/c_extractor_code_text_spec.rb
1120
1159
  - spec/units/c_extractor/c_extractor_declarations_spec.rb
1121
1160
  - spec/units/c_extractor/c_extractor_definitions_spec.rb
@@ -1124,7 +1163,9 @@ files:
1124
1163
  - spec/units/c_extractor/c_extractor_spec.rb
1125
1164
  - spec/units/ceedling/templateinator_golden_spec.rb
1126
1165
  - spec/units/ceedling/templateinator_spec.rb
1166
+ - spec/units/config/build_root_policy_spec.rb
1127
1167
  - spec/units/config/configurator_builder_spec.rb
1168
+ - spec/units/config/configurator_paths_validator_spec.rb
1128
1169
  - spec/units/config/configurator_plugins_spec.rb
1129
1170
  - spec/units/config/configurator_setup_spec.rb
1130
1171
  - spec/units/config/configurator_spec.rb
@@ -1132,6 +1173,7 @@ files:
1132
1173
  - spec/units/config/line_marker_suppressors_spec.rb
1133
1174
  - spec/units/config_matchinator_spec.rb
1134
1175
  - spec/units/config_walkinator_spec.rb
1176
+ - spec/units/default_tools_quoting_spec.rb
1135
1177
  - spec/units/defineinator_spec.rb
1136
1178
  - spec/units/dependencies/dependency_cache_store_spec.rb
1137
1179
  - spec/units/dependencies/dependency_debug_tree_spec.rb
@@ -1142,12 +1184,21 @@ files:
1142
1184
  - spec/units/dependencies/dependinator_spec.rb
1143
1185
  - spec/units/dependencies/gcc_dependency_parser_spec.rb
1144
1186
  - spec/units/encodinator_spec.rb
1145
- - spec/units/file_finder_helper_spec.rb
1146
- - spec/units/file_finder_spec.rb
1147
- - spec/units/file_path_collection_utils_spec.rb
1148
- - spec/units/file_path_utils_spec.rb
1149
- - spec/units/file_wrapper_spec.rb
1150
1187
  - spec/units/filename_extension_spec.rb
1188
+ - spec/units/filesystem/build_subpath_spec.rb
1189
+ - spec/units/filesystem/destination_collision_spec.rb
1190
+ - spec/units/filesystem/file_finder_helper_spec.rb
1191
+ - spec/units/filesystem/file_finder_spec.rb
1192
+ - spec/units/filesystem/file_path_collection_utils_spec.rb
1193
+ - spec/units/filesystem/file_path_utils_spec.rb
1194
+ - spec/units/filesystem/file_system_wrapper_spec.rb
1195
+ - spec/units/filesystem/file_tree_spec.rb
1196
+ - spec/units/filesystem/file_tree_windows_spec.rb
1197
+ - spec/units/filesystem/file_wrapper_spec.rb
1198
+ - spec/units/filesystem/path_matcher_spec.rb
1199
+ - spec/units/filesystem/path_mirror_spec.rb
1200
+ - spec/units/filesystem/project_paths_spec.rb
1201
+ - spec/units/filesystem/working_dir_spec.rb
1151
1202
  - spec/units/flaginator_spec.rb
1152
1203
  - spec/units/generators/generator_helper_spec.rb
1153
1204
  - spec/units/generators/generator_mocks_spec.rb
@@ -1157,10 +1208,13 @@ files:
1157
1208
  - spec/units/generators/generator_test_results_sanity_checker_spec.rb
1158
1209
  - spec/units/generators/generator_test_results_spec.rb
1159
1210
  - spec/units/generators/generator_test_runner_spec.rb
1211
+ - spec/units/handoff_spec.rb
1160
1212
  - spec/units/includes/include_factory_spec.rb
1161
1213
  - spec/units/includes/include_pathinator_spec.rb
1162
1214
  - spec/units/includes/include_spec.rb
1163
1215
  - spec/units/includes/includes_spec.rb
1216
+ - spec/units/installation_spec.rb
1217
+ - spec/units/library_resolver_spec.rb
1164
1218
  - spec/units/mock_locator_spec.rb
1165
1219
  - spec/units/parsing_parcels_spec.rb
1166
1220
  - spec/units/partials/partializer_config_spec.rb
@@ -1168,8 +1222,6 @@ files:
1168
1222
  - spec/units/partials/partializer_spec.rb
1169
1223
  - spec/units/partials/partializer_utils_spec.rb
1170
1224
  - spec/units/partials_manager_spec.rb
1171
- - spec/units/path_matcher_spec.rb
1172
- - spec/units/path_mirror_spec.rb
1173
1225
  - spec/units/plugin_manager_spec.rb
1174
1226
  - spec/units/plugin_reportinator_spec.rb
1175
1227
  - spec/units/plugins/bullseye_spec.rb
@@ -1185,6 +1237,7 @@ files:
1185
1237
  - spec/units/plugins/gcov_reportinator_spec.rb
1186
1238
  - spec/units/plugins/gcov_spec.rb
1187
1239
  - spec/units/plugins/gcovr_reportinator_spec.rb
1240
+ - spec/units/plugins/gcovr_thresholds_spec.rb
1188
1241
  - spec/units/plugins/gtestlike_report_spec.rb
1189
1242
  - spec/units/plugins/html_tests_reporter_spec.rb
1190
1243
  - spec/units/plugins/ide_report_lines_spec.rb
@@ -2005,7 +2058,7 @@ metadata:
2005
2058
  source_code_uri: https://github.com/ThrowTheSwitch/Ceedling
2006
2059
  funding_uri: https://github.com/sponsors/ThrowTheSwitch
2007
2060
  changelog_uri: https://github.com/ThrowTheSwitch/Ceedling/blob/master/docs/Changelog.md
2008
- sbom_uri: https://github.com/ThrowTheSwitch/Ceedling/releases/download/v1.2.1/ceedling-1.2.1.cdx.json
2061
+ sbom_uri: https://github.com/ThrowTheSwitch/Ceedling/releases/download/v1.2.2/ceedling-1.2.2.cdx.json
2009
2062
  post_install_message:
2010
2063
  rdoc_options: []
2011
2064
  require_paths:
@@ -2047,12 +2100,16 @@ test_files:
2047
2100
  - spec/integration/dependencies_plugin_spec.rb
2048
2101
  - spec/integration/erb_dependency_removed_spec.rb
2049
2102
  - spec/integration/includes_extraction_spec.rb
2103
+ - spec/integration/launcher_handoff_spec.rb
2050
2104
  - spec/integration/mixin_loading_spec.rb
2051
2105
  - spec/integration/module_generator_spec.rb
2106
+ - spec/integration/nested_test_artifacts_spec.rb
2052
2107
  - spec/integration/partials_fallback_preprocessing_spec.rb
2053
2108
  - spec/integration/partials_header_composition_spec.rb
2054
2109
  - spec/integration/partials_module_resolution_spec.rb
2055
2110
  - spec/integration/partials_symbol_linkage_spec.rb
2111
+ - spec/integration/path_intake_scenarios_spec.rb
2112
+ - spec/integration/path_scenarios_spec.rb
2056
2113
  - spec/integration/preprocessing_transient_io_retry_spec.rb
2057
2114
  - spec/integration/quote_include_isolator_spec.rb
2058
2115
  - spec/integration/rake_task_registry_plugins_spec.rb
@@ -2063,11 +2120,15 @@ test_files:
2063
2120
  - spec/integration/test_build_parallel_barrier_spec.rb
2064
2121
  - spec/integration/test_executable_manifest_spec.rb
2065
2122
  - spec/integration/test_includes_extractinator_spec.rb
2123
+ - spec/integration/test_naming_spec.rb
2124
+ - spec/integration/test_source_file_checks_spec.rb
2066
2125
  - spec/integration/tool_executor_spec.rb
2067
2126
  - spec/integration/tool_validator_spec.rb
2127
+ - spec/integration/upgrade_docs_spec.rb
2068
2128
  - spec/integration/vendor_copy_transient_io_retry_spec.rb
2069
2129
  - spec/manual/stress_test.rb
2070
2130
  - spec/support/config_yaml_helper.rb
2131
+ - spec/support/file_tree_helper.rb
2071
2132
  - spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt
2072
2133
  - spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt
2073
2134
  - spec/support/fixtures/sanitizer_reports/gcc_heap.txt
@@ -2122,6 +2183,7 @@ test_files:
2122
2183
  - spec/support/integration/configurator_integration_helper.rb
2123
2184
  - spec/support/integration/dependency_tracker_integration_helper.rb
2124
2185
  - spec/support/integration/partials_generation_integration_helper.rb
2186
+ - spec/support/integration/path_scenario_harness.rb
2125
2187
  - spec/support/integration/spec_integration_helper.rb
2126
2188
  - spec/support/integration/test_includes_harness.rb
2127
2189
  - spec/support/integration/tool_executor_integration_helper.rb
@@ -2142,6 +2204,7 @@ test_files:
2142
2204
  - spec/support/test_example_ignore.pass
2143
2205
  - spec/support/test_example_mangled.pass
2144
2206
  - spec/support/test_example_with_time.pass
2207
+ - spec/support/working_dir_tracking.rb
2145
2208
  - spec/system/bracket_path_handling_spec.rb
2146
2209
  - spec/system/build_output_mirroring_spec.rb
2147
2210
  - spec/system/build_recovery_spec.rb
@@ -2165,10 +2228,13 @@ test_files:
2165
2228
  - spec/system/header_include_path_validation_spec.rb
2166
2229
  - spec/system/implicit_source_header_correspondence_disambiguation_spec.rb
2167
2230
  - spec/system/include_path_reconciliation_spec.rb
2231
+ - spec/system/launcher_handoff_spec.rb
2168
2232
  - spec/system/mixin_ordering_spec.rb
2233
+ - spec/system/mock_include_folders_spec.rb
2169
2234
  - spec/system/mocks_partials_configuration_validation_spec.rb
2170
2235
  - spec/system/parent_directory_reference_spec.rb
2171
2236
  - spec/system/partials_module_disambiguation_spec.rb
2237
+ - spec/system/path_handling_probes_spec.rb
2172
2238
  - spec/system/pinned_thread_count_spec.rb
2173
2239
  - spec/system/plugin_delta_builds_spec.rb
2174
2240
  - spec/system/preprocessing_encoding_spec.rb
@@ -2183,6 +2249,7 @@ test_files:
2183
2249
  - spec/system/sanitize_deployment_spec.rb
2184
2250
  - spec/system/shuffle_tests_spec.rb
2185
2251
  - spec/system/sibling_header_collision_spec.rb
2252
+ - spec/system/special_path_characters_spec.rb
2186
2253
  - spec/system/subdir_include_preservation_spec.rb
2187
2254
  - spec/system/support/bullseye_common_test_cases.rb
2188
2255
  - spec/system/support/bullseye_helpers.rb
@@ -2208,6 +2275,8 @@ test_files:
2208
2275
  - spec/units/bin/cli_helper_spec.rb
2209
2276
  - spec/units/bin/cli_options_transform_spec.rb
2210
2277
  - spec/units/bin/composinator_spec.rb
2278
+ - spec/units/bin/installation_selector_spec.rb
2279
+ - spec/units/bin/launchinator_spec.rb
2211
2280
  - spec/units/bin/merginator_spec.rb
2212
2281
  - spec/units/bin/mixin_resolvinator_spec.rb
2213
2282
  - spec/units/bin/mixin_standardizer_spec.rb
@@ -2217,6 +2286,7 @@ test_files:
2217
2286
  - spec/units/bin/rake_patches_spec.rb
2218
2287
  - spec/units/bin/recursive_merger_spec.rb
2219
2288
  - spec/units/bin/versionator_spec.rb
2289
+ - spec/units/build_log_writer_spec.rb
2220
2290
  - spec/units/c_extractor/c_extractor_code_text_spec.rb
2221
2291
  - spec/units/c_extractor/c_extractor_declarations_spec.rb
2222
2292
  - spec/units/c_extractor/c_extractor_definitions_spec.rb
@@ -2225,7 +2295,9 @@ test_files:
2225
2295
  - spec/units/c_extractor/c_extractor_spec.rb
2226
2296
  - spec/units/ceedling/templateinator_golden_spec.rb
2227
2297
  - spec/units/ceedling/templateinator_spec.rb
2298
+ - spec/units/config/build_root_policy_spec.rb
2228
2299
  - spec/units/config/configurator_builder_spec.rb
2300
+ - spec/units/config/configurator_paths_validator_spec.rb
2229
2301
  - spec/units/config/configurator_plugins_spec.rb
2230
2302
  - spec/units/config/configurator_setup_spec.rb
2231
2303
  - spec/units/config/configurator_spec.rb
@@ -2233,6 +2305,7 @@ test_files:
2233
2305
  - spec/units/config/line_marker_suppressors_spec.rb
2234
2306
  - spec/units/config_matchinator_spec.rb
2235
2307
  - spec/units/config_walkinator_spec.rb
2308
+ - spec/units/default_tools_quoting_spec.rb
2236
2309
  - spec/units/defineinator_spec.rb
2237
2310
  - spec/units/dependencies/dependency_cache_store_spec.rb
2238
2311
  - spec/units/dependencies/dependency_debug_tree_spec.rb
@@ -2243,12 +2316,21 @@ test_files:
2243
2316
  - spec/units/dependencies/dependinator_spec.rb
2244
2317
  - spec/units/dependencies/gcc_dependency_parser_spec.rb
2245
2318
  - spec/units/encodinator_spec.rb
2246
- - spec/units/file_finder_helper_spec.rb
2247
- - spec/units/file_finder_spec.rb
2248
- - spec/units/file_path_collection_utils_spec.rb
2249
- - spec/units/file_path_utils_spec.rb
2250
- - spec/units/file_wrapper_spec.rb
2251
2319
  - spec/units/filename_extension_spec.rb
2320
+ - spec/units/filesystem/build_subpath_spec.rb
2321
+ - spec/units/filesystem/destination_collision_spec.rb
2322
+ - spec/units/filesystem/file_finder_helper_spec.rb
2323
+ - spec/units/filesystem/file_finder_spec.rb
2324
+ - spec/units/filesystem/file_path_collection_utils_spec.rb
2325
+ - spec/units/filesystem/file_path_utils_spec.rb
2326
+ - spec/units/filesystem/file_system_wrapper_spec.rb
2327
+ - spec/units/filesystem/file_tree_spec.rb
2328
+ - spec/units/filesystem/file_tree_windows_spec.rb
2329
+ - spec/units/filesystem/file_wrapper_spec.rb
2330
+ - spec/units/filesystem/path_matcher_spec.rb
2331
+ - spec/units/filesystem/path_mirror_spec.rb
2332
+ - spec/units/filesystem/project_paths_spec.rb
2333
+ - spec/units/filesystem/working_dir_spec.rb
2252
2334
  - spec/units/flaginator_spec.rb
2253
2335
  - spec/units/generators/generator_helper_spec.rb
2254
2336
  - spec/units/generators/generator_mocks_spec.rb
@@ -2258,10 +2340,13 @@ test_files:
2258
2340
  - spec/units/generators/generator_test_results_sanity_checker_spec.rb
2259
2341
  - spec/units/generators/generator_test_results_spec.rb
2260
2342
  - spec/units/generators/generator_test_runner_spec.rb
2343
+ - spec/units/handoff_spec.rb
2261
2344
  - spec/units/includes/include_factory_spec.rb
2262
2345
  - spec/units/includes/include_pathinator_spec.rb
2263
2346
  - spec/units/includes/include_spec.rb
2264
2347
  - spec/units/includes/includes_spec.rb
2348
+ - spec/units/installation_spec.rb
2349
+ - spec/units/library_resolver_spec.rb
2265
2350
  - spec/units/mock_locator_spec.rb
2266
2351
  - spec/units/parsing_parcels_spec.rb
2267
2352
  - spec/units/partials/partializer_config_spec.rb
@@ -2269,8 +2354,6 @@ test_files:
2269
2354
  - spec/units/partials/partializer_spec.rb
2270
2355
  - spec/units/partials/partializer_utils_spec.rb
2271
2356
  - spec/units/partials_manager_spec.rb
2272
- - spec/units/path_matcher_spec.rb
2273
- - spec/units/path_mirror_spec.rb
2274
2357
  - spec/units/plugin_manager_spec.rb
2275
2358
  - spec/units/plugin_reportinator_spec.rb
2276
2359
  - spec/units/plugins/bullseye_spec.rb
@@ -2286,6 +2369,7 @@ test_files:
2286
2369
  - spec/units/plugins/gcov_reportinator_spec.rb
2287
2370
  - spec/units/plugins/gcov_spec.rb
2288
2371
  - spec/units/plugins/gcovr_reportinator_spec.rb
2372
+ - spec/units/plugins/gcovr_thresholds_spec.rb
2289
2373
  - spec/units/plugins/gtestlike_report_spec.rb
2290
2374
  - spec/units/plugins/html_tests_reporter_spec.rb
2291
2375
  - spec/units/plugins/ide_report_lines_spec.rb
@@ -1,164 +0,0 @@
1
- # =========================================================================
2
- # Ceedling - Test-Centered Build System for C
3
- # ThrowTheSwitch.org
4
- # Copyright (c) 2010-26 Mike Karlesky, Mark VanderVoord, & Greg Williams
5
- # SPDX-License-Identifier: MIT
6
- # =========================================================================
7
-
8
- require 'set'
9
- require 'pathname'
10
- require 'fileutils'
11
- require 'ceedling/file_path_utils'
12
- require 'ceedling/exceptions'
13
-
14
-
15
- class FilePathCollectionUtils
16
-
17
- constructor :file_wrapper
18
-
19
- def setup()
20
- # TODO: Update Dir.pwd() to use a project root once it has been figured out
21
- @working_dir_path = Pathname.new( Dir.pwd() )
22
- end
23
-
24
- # Build up a directory path list from one or more strings or arrays of (+:/-:) simple paths & globs
25
- def collect_paths(paths)
26
- # Nil input (e.g. unconfigured section) is treated as an empty list
27
- return [] if paths.nil?
28
-
29
- plus = Set.new # All real, expanded directory paths to add
30
- minus = Set.new # All real, expanded paths to exclude
31
-
32
- # Iterate each path possibly decorated with aggregation modifiers and/or containing glob characters
33
- paths.each do |path|
34
- dirs = [] # Working list for evaluated directory paths
35
-
36
- # Get path stripped of any +:/-: aggregation modifier
37
- _path = FilePathUtils.no_aggregation_decorators( path )
38
-
39
- # If it's a glob, modify it for Ceedling's recursive subdirectory convention
40
- # #104 -- FilePathUtils.subdirectory_glob escapes a literal `[`/`]` in the
41
- # user's own path before reforming the glob suffix, so it's matched literally
42
- # rather than misread as glob character-class syntax. `_path` itself
43
- # (unescaped) is still used below for suffix checks and decorator-stripping,
44
- # neither of which is a glob operation.
45
- _reformed = FilePathUtils.subdirectory_glob( _path )
46
-
47
- # Expand paths using Ruby's Dir.glob()
48
- # - A simple path will yield that path
49
- # - A path glob will expand to one or more paths
50
- # Note: `sort()` because of Github Issue #860
51
- @file_wrapper.directory_listing( _reformed ).sort.each do |entry|
52
- # For each result, add it to the working list *only* if it's a directory
53
- # Previous validation has already made warnings about filepaths in the list
54
- dirs << entry if @file_wrapper.directory?(entry)
55
- end
56
-
57
- # For recursive directory glob at end of a path, collect parent directories too.
58
- # Ceedling's recursive glob convention includes parent directories (unlike Ruby's glob).
59
- # Use _path (decorator-stripped) so the suffix check is not sensitive to +:/-: prefix format.
60
- # path.end_with? also works today (decorators are always prefixes, never suffixes),
61
- # but _path expresses the correct intent and removes the implicit coupling.
62
- if _path.end_with?('/**', '/*')
63
- parents = []
64
-
65
- dirs.each {|dir| parents << File.join(dir, '..')}
66
-
67
- # Handle edge case of subdirectory glob but no subdirectories and therefore no parents
68
- # (Containing parent directory still exists)
69
- parents << FilePathUtils.no_decorators( _path ) if dirs.empty?
70
-
71
- dirs = parents + dirs
72
- end
73
-
74
- # Based on aggregation modifiers, add entries to plus and minus sets.
75
- # Use full, absolute paths to ensure logical paths are compared properly.
76
- # './<path>' is logically equivalent to '<path>' but is not equivalent as strings.
77
- # Because plus and minus are sets, each insertion eliminates any duplicates
78
- # (such as the parent directories for each directory as added above).
79
- dirs.each do |dir|
80
- abs_path = File.expand_path( dir )
81
- if FilePathUtils.add_path?( path )
82
- plus << abs_path
83
- else
84
- minus << abs_path
85
- end
86
- end
87
- end
88
-
89
- # Collect the final set as an array and convert each absolute path to the shortest
90
- # relative form from the working directory.
91
- result = (plus - minus).to_a
92
- result.map! {|path| shortest_path_from_working(path) }
93
-
94
- return result
95
- end
96
-
97
-
98
- # Given a file list, add to it or remove from it considering (+:/-:) aggregation operators.
99
- # Rake's FileList does not robustly handle relative filepaths and patterns.
100
- # So, we rebuild the FileList ourselves and return it.
101
- # TODO: Replace FileList with our own, better version.
102
- def revise_filelist(list, revisions)
103
- # Nil list produces an empty FileList; nil revisions leaves the list unchanged
104
- return FileList.new([]) if list.nil?
105
- revisions ||= []
106
-
107
- plus = Set.new # All real, expanded file paths to add
108
- minus = Set.new # All real, expanded file paths to exclude
109
-
110
- # Build base plus set: expand all existing list entries to absolute paths
111
- list.each do |path|
112
- plus << File.expand_path( path )
113
- end
114
-
115
- revisions.each do |revision|
116
- # Include or exclude revisions in file list
117
- path = FilePathUtils.no_aggregation_decorators( revision )
118
-
119
- # Working list of revisions
120
- filepaths = []
121
-
122
- # Expand path by pattern as needed and add only filepaths to working list.
123
- # Sort for deterministic ordering — see collect_paths and Github Issue #860
124
- # #104 -- escape a literal `[`/`]` in the user's own path so it's matched
125
- # literally rather than misread as glob character-class syntax.
126
- @file_wrapper.directory_listing( FilePathUtils.escape_glob_brackets( path ) ).sort.each do |entry|
127
- filepaths << File.expand_path( entry ) if !@file_wrapper.directory?( entry )
128
- end
129
-
130
- # Handle +: / -: revisions
131
- if FilePathUtils.add_path?( revision )
132
- plus.merge( filepaths )
133
- else
134
- minus.merge( filepaths )
135
- end
136
- end
137
-
138
- # Collect the final set as an array and convert each absolute path to the shortest
139
- # relative form from the working directory.
140
- result_paths = (plus - minus).to_a
141
- result_paths.map! {|path| shortest_path_from_working(path) }
142
-
143
- # #104 -- every entry here is already a concrete, real file (nothing left to glob-
144
- # expand -- this method's whole job already resolved it from any actual glob), but
145
- # plain FileList.new/#include re-interprets each entry as a glob pattern to
146
- # re-resolve via Dir.glob regardless, silently dropping a literal `[`/`]` survivor
147
- # all over again. FileWrapper#instantiate_file_list_literal (`<<`, not `.new`) adds
148
- # every entry as-is, with no glob interpretation at all.
149
- result = @file_wrapper.instantiate_file_list_literal( result_paths )
150
- result.resolve() # Force expansion to prevent race conditions in threaded context
151
- return result
152
- end
153
-
154
- def shortest_path_from_working(path)
155
- begin
156
- # Reform path from full absolute to nice, neat relative path instead
157
- (Pathname.new( path ).relative_path_from( @working_dir_path )).to_s
158
- rescue StandardError
159
- # If we can't form a relative path between these paths, use the absolute
160
- path
161
- end
162
- end
163
-
164
- end