ceedling 1.1.10 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1131) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.simplecov +73 -0
  4. data/GIT_COMMIT_SHA +1 -1
  5. data/Gemfile +84 -8
  6. data/Gemfile.lock +38 -8
  7. data/README.md +51 -29
  8. data/Rakefile +768 -16
  9. data/assets/{project.yml → features/project.yml} +4 -1
  10. data/assets/fixtures/bullseye_branch_coverage/src/branchy.c +24 -0
  11. data/assets/fixtures/bullseye_branch_coverage/src/branchy.h +14 -0
  12. data/assets/fixtures/bullseye_branch_coverage/test/test_branchy.c +18 -0
  13. data/assets/fixtures/cppcheck_findings/findings.c +23 -0
  14. data/assets/fixtures/cppcheck_findings/findings.h +13 -0
  15. data/assets/fixtures/header_include_path_validation/alt_drivers/foo.h +6 -0
  16. data/assets/fixtures/header_include_path_validation/bar.h +6 -0
  17. data/assets/fixtures/header_include_path_validation/drivers/foo.h +6 -0
  18. data/assets/fixtures/header_include_path_validation/dup.h +6 -0
  19. data/assets/fixtures/header_include_path_validation/other_inc/dup.h +6 -0
  20. data/assets/fixtures/header_include_path_validation/test_ambiguous_mock.c +15 -0
  21. data/assets/fixtures/header_include_path_validation/test_bare_mock.c +11 -0
  22. data/assets/fixtures/header_include_path_validation/test_bogus_mock_path.c +11 -0
  23. data/assets/fixtures/header_include_path_validation/test_bogus_vanilla_path.c +10 -0
  24. data/assets/fixtures/header_include_path_validation/test_include_outranks_test_include_path.c +16 -0
  25. data/assets/fixtures/header_include_path_validation/test_pathed_mock.c +11 -0
  26. data/assets/fixtures/header_include_path_validation/test_pathed_mock_ambiguous.c +14 -0
  27. data/assets/fixtures/header_include_path_validation/test_test_include_path_outranks_include.c +17 -0
  28. data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.c +6 -0
  29. data/assets/fixtures/implicit_source_header_correspondence/alpha/dup.h +6 -0
  30. data/assets/fixtures/implicit_source_header_correspondence/beta/dup.c +6 -0
  31. data/assets/fixtures/implicit_source_header_correspondence/beta/dup.h +6 -0
  32. data/assets/fixtures/implicit_source_header_correspondence/gamma/dup_gamma.c +6 -0
  33. data/assets/fixtures/implicit_source_header_correspondence/test_dup_alpha.c +10 -0
  34. data/assets/fixtures/implicit_source_header_correspondence/test_dup_bare.c +10 -0
  35. data/assets/fixtures/implicit_source_header_correspondence/test_dup_beta.c +10 -0
  36. data/assets/fixtures/implicit_source_header_correspondence/test_dup_override.c +19 -0
  37. data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive.c +19 -0
  38. data/assets/fixtures/implicit_source_header_correspondence/test_dup_subtractive_noop.c +16 -0
  39. data/assets/fixtures/parent_directory_references/alpha/extra.c +4 -0
  40. data/assets/fixtures/parent_directory_references/common/helper.c +6 -0
  41. data/assets/fixtures/parent_directory_references/common/helper.h +6 -0
  42. data/assets/fixtures/parent_directory_references/unit/test_dotdot_include.c +10 -0
  43. data/assets/fixtures/parent_directory_references/unit/test_dotdot_source.c +16 -0
  44. data/assets/fixtures/plain_inline_module.h +9 -0
  45. data/assets/fixtures/same_named_modules/include/drivers/spi/config.h +6 -0
  46. data/assets/fixtures/same_named_modules/include/drivers/uart/config.h +6 -0
  47. data/assets/fixtures/same_named_modules/src/drivers/spi/config.c +8 -0
  48. data/assets/fixtures/same_named_modules/src/drivers/uart/config.c +10 -0
  49. data/assets/fixtures/same_named_modules/test/test_both_configs.c +26 -0
  50. data/assets/fixtures/same_named_modules/test/test_both_configs_mocked.c +20 -0
  51. data/assets/fixtures/same_named_modules/test/test_both_configs_mocked_traditional.c +19 -0
  52. data/assets/fixtures/same_named_modules/test/test_both_modules.c +19 -0
  53. data/assets/fixtures/same_named_modules/test/test_uart_config_bare.c +19 -0
  54. data/assets/fixtures/same_named_modules/test/test_uart_config_partial_only.c +20 -0
  55. data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.c +6 -0
  56. data/assets/fixtures/sources_with_duplicate_basenames/baz/bar.h +6 -0
  57. data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.c +6 -0
  58. data/assets/fixtures/sources_with_duplicate_basenames/foo/bar.h +6 -0
  59. data/assets/fixtures/sources_with_duplicate_basenames/main.c +11 -0
  60. data/assets/fixtures/sources_with_duplicate_basenames/test_baz_bar.c +10 -0
  61. data/assets/fixtures/sources_with_duplicate_basenames/test_both_bars.c +12 -0
  62. data/assets/fixtures/sources_with_duplicate_basenames/test_foo_bar.c +10 -0
  63. data/assets/{test_example_file_boom.c → fixtures/test_nosanitize_boom.c} +9 -0
  64. data/assets/{test_example_file_crash_assert.c → fixtures/test_nosanitize_crash_assert.c} +8 -0
  65. data/assets/{test_example_file_crash_sigsegv.c → fixtures/test_nosanitize_crash_sigsegv.c} +8 -0
  66. data/assets/{test_example_file_crash_sigsegv_with_param.c → fixtures/test_nosanitize_crash_sigsegv_with_param.c} +8 -0
  67. data/assets/fixtures/test_nosanitize_heap_buffer_overflow.c +31 -0
  68. data/assets/fixtures/test_nosanitize_leak.c +34 -0
  69. data/assets/fixtures/test_nosanitize_two_findings.c +36 -0
  70. data/assets/{test_example_file_ub_shift_overflow.c → fixtures/test_nosanitize_ub_shift_overflow.c} +9 -0
  71. data/assets/fixtures/test_plain_inline_module.c +15 -0
  72. data/assets/fixtures/test_source_file_duplicate_basenames/alpha/calc.c +4 -0
  73. data/assets/fixtures/test_source_file_duplicate_basenames/beta/calc.c +4 -0
  74. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_alpha.c +15 -0
  75. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_ambiguous.c +15 -0
  76. data/assets/fixtures/test_source_file_duplicate_basenames/test_calc_beta.c +15 -0
  77. data/assets/fixtures/tests_with_conditional_includes/src/feature_extra2.h +13 -0
  78. data/assets/fixtures/tests_with_conditional_includes/src/macro_target_extra.h +13 -0
  79. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.c +19 -3
  80. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget.h +1 -0
  81. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.c +17 -1
  82. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget.c +12 -4
  83. data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/test/test_widget_feature.c +8 -5
  84. data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.c +7 -0
  85. data/assets/fixtures/tests_with_conditional_mocks/src/Case_01.h +6 -0
  86. data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.c +16 -0
  87. data/assets/fixtures/tests_with_conditional_mocks/src/Case_02.h +6 -0
  88. data/assets/fixtures/tests_with_conditional_mocks/src/FeatureConfig.h +6 -0
  89. data/assets/fixtures/tests_with_conditional_mocks/src/Gpt.h +6 -0
  90. data/assets/fixtures/tests_with_conditional_mocks/src/MyModuleConfig.h +17 -0
  91. data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart1.h +6 -0
  92. data/assets/fixtures/tests_with_conditional_mocks/src/MyModulePart2.h +6 -0
  93. data/assets/fixtures/tests_with_conditional_mocks/src/drivers/widget.h +6 -0
  94. data/assets/fixtures/tests_with_conditional_mocks/src/reader.c +7 -0
  95. data/assets/fixtures/tests_with_conditional_mocks/src/reader.h +6 -0
  96. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01.c +21 -0
  97. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_01_legacy.c +16 -0
  98. data/assets/fixtures/tests_with_conditional_mocks/test/test_Case_02.c +31 -0
  99. data/assets/fixtures/tests_with_conditional_mocks/test/test_FeatureConfig.c +15 -0
  100. data/assets/fixtures/tests_with_conditional_mocks/test/test_reader.c +13 -0
  101. data/assets/fixtures/tests_with_duplicate_test_names/integration/test_foo.c +21 -0
  102. data/assets/fixtures/tests_with_duplicate_test_names/unit/test_foo.c +21 -0
  103. data/assets/fixtures/tests_with_fallback_conditionals/src/conditional_module.c +28 -0
  104. data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/test/test_conditionals.c +8 -1
  105. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_lower.s +2 -0
  106. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/asm_helper_upper.S +13 -0
  107. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.c +13 -0
  108. data/assets/fixtures/tests_with_multiple_assembly_extensions/src/counter_module.h +13 -0
  109. data/assets/fixtures/tests_with_multiple_assembly_extensions/test/test_counter_module.c +27 -0
  110. data/assets/fixtures/tests_with_subdir_includes/src/module/app/config.h +13 -0
  111. data/assets/fixtures/tests_with_subdir_includes/src/module/drivers/config.h +13 -0
  112. data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.c +30 -0
  113. data/assets/fixtures/tests_with_subdir_includes/src/module/sensor.h +13 -0
  114. data/assets/fixtures/tests_with_subdir_includes/src/shared/config.h +13 -0
  115. data/assets/fixtures/tests_with_subdir_includes/test/test_sensor.c +32 -0
  116. data/bin/actionator.rb +234 -0
  117. data/bin/app_cfg.rb +7 -0
  118. data/bin/cli.rb +78 -47
  119. data/bin/cli_handler.rb +89 -57
  120. data/bin/cli_helper.rb +90 -49
  121. data/bin/cli_options_transform.rb +22 -0
  122. data/bin/{configinator.rb → composinator.rb} +39 -32
  123. data/bin/mixin_resolvinator.rb +124 -0
  124. data/bin/mixin_standardizer.rb +31 -61
  125. data/bin/mixinator.rb +27 -29
  126. data/bin/mixins.rb +0 -5
  127. data/bin/objects.yml +20 -7
  128. data/bin/path_validator.rb +6 -5
  129. data/bin/projectinator.rb +51 -142
  130. data/bin/rake_patches.rb +36 -2
  131. data/bin/recursive_merger.rb +7 -1
  132. data/bin/versionator.rb +2 -3
  133. data/ceedling.gemspec +83 -12
  134. data/docs/BreakingChanges.md +46 -2
  135. data/docs/CONTRIBUTING.md +45 -29
  136. data/docs/CeedlingPullRequestChecklist.md +10 -9
  137. data/docs/Changelog.md +327 -37
  138. data/docs/KnownIssues.md +30 -4
  139. data/docs/ReleaseNotes.md +288 -12
  140. data/docs/SECURITY.md +46 -2
  141. data/docs/ThrowTheSwitchCodingStandard.md +21 -3
  142. data/docs/overrides/main.html +32 -0
  143. data/examples/temp_sensor/mixin/add_bullseye.yml +19 -0
  144. data/examples/wondrous_forest/README.md +3 -0
  145. data/examples/wondrous_forest/src/sensors/light/Calibration.c +21 -0
  146. data/examples/wondrous_forest/src/sensors/light/Calibration.h +14 -0
  147. data/examples/wondrous_forest/src/sensors/soil/Calibration.c +23 -0
  148. data/examples/wondrous_forest/src/sensors/soil/Calibration.h +14 -0
  149. data/examples/wondrous_forest/test/TestCalibration.c +39 -0
  150. data/lib/ceedling/batchinator.rb +81 -22
  151. data/lib/ceedling/c_extractor/README.md +61 -0
  152. data/lib/ceedling/c_extractor/c_extractor.rb +33 -2
  153. data/lib/ceedling/c_extractor/c_extractor_code_text.rb +18 -10
  154. data/lib/ceedling/c_extractor/c_extractor_constants.rb +10 -10
  155. data/lib/ceedling/c_extractor/c_extractor_declarations.rb +14 -14
  156. data/lib/ceedling/c_extractor/c_extractor_functions.rb +10 -13
  157. data/lib/ceedling/c_extractor/c_extractor_preprocessing.rb +77 -0
  158. data/lib/ceedling/c_extractor/c_extractor_types.rb +8 -5
  159. data/lib/ceedling/ceedling.h +33 -0
  160. data/lib/ceedling/config/config_matchinator.rb +36 -13
  161. data/lib/ceedling/config/configurator.rb +366 -530
  162. data/lib/ceedling/config/configurator_builder.rb +253 -365
  163. data/lib/ceedling/config/configurator_plugins.rb +68 -102
  164. data/lib/ceedling/config/configurator_setup.rb +343 -610
  165. data/lib/ceedling/config/configurator_validator.rb +114 -142
  166. data/lib/ceedling/config/line_marker_suppressors.rb +67 -0
  167. data/lib/ceedling/constants.rb +60 -6
  168. data/lib/ceedling/defaults.rb +28 -14
  169. data/lib/ceedling/defineinator.rb +9 -4
  170. data/lib/ceedling/dependencies/README.md +69 -0
  171. data/lib/ceedling/dependencies/dependency_cache_store.rb +160 -0
  172. data/lib/ceedling/dependencies/dependency_debug_tree.rb +129 -0
  173. data/lib/ceedling/dependencies/dependency_differ.rb +127 -0
  174. data/lib/ceedling/dependencies/dependency_hasher.rb +94 -0
  175. data/lib/ceedling/dependencies/dependency_path_normalizer.rb +80 -0
  176. data/lib/ceedling/dependencies/dependency_tracker.rb +405 -0
  177. data/lib/ceedling/dependencies/dependinator.rb +65 -0
  178. data/lib/ceedling/dependencies/gcc_dependency_parser.rb +86 -0
  179. data/lib/ceedling/encodinator.rb +23 -11
  180. data/lib/ceedling/file_finder.rb +373 -89
  181. data/lib/ceedling/file_finder_helper.rb +44 -33
  182. data/lib/ceedling/file_path_collection_utils.rb +17 -4
  183. data/lib/ceedling/file_path_utils.rb +310 -52
  184. data/lib/ceedling/file_wrapper.rb +245 -8
  185. data/lib/ceedling/filename_extension.rb +91 -0
  186. data/lib/ceedling/flaginator.rb +6 -2
  187. data/lib/ceedling/generators/generator.rb +192 -70
  188. data/lib/ceedling/generators/generator_helper.rb +116 -69
  189. data/lib/ceedling/generators/generator_mocks.rb +13 -8
  190. data/lib/ceedling/generators/generator_partials.rb +47 -15
  191. data/lib/ceedling/generators/generator_test_results.rb +29 -17
  192. data/lib/ceedling/generators/generator_test_results_backtrace.rb +199 -107
  193. data/lib/ceedling/generators/generator_test_results_sanity_checker.rb +1 -1
  194. data/lib/ceedling/includes/include_factory.rb +21 -6
  195. data/lib/ceedling/includes/include_pathinator.rb +40 -4
  196. data/lib/ceedling/includes/includes.rb +215 -61
  197. data/lib/ceedling/loginator.rb +13 -4
  198. data/lib/ceedling/objects.yml +216 -33
  199. data/lib/ceedling/parsing_parcels.rb +39 -13
  200. data/lib/ceedling/partials/README.md +53 -0
  201. data/lib/ceedling/partials/partializer.rb +118 -26
  202. data/lib/ceedling/partials/partializer_config.rb +141 -8
  203. data/lib/ceedling/partials/partializer_helper.rb +88 -2
  204. data/lib/ceedling/partials/partializer_utils.rb +1 -1
  205. data/lib/ceedling/partials/partials.rb +4 -4
  206. data/lib/ceedling/path_matcher.rb +163 -0
  207. data/lib/ceedling/path_mirror.rb +73 -0
  208. data/lib/ceedling/plugins/plugin.rb +1 -1
  209. data/lib/ceedling/plugins/plugin_manager.rb +31 -15
  210. data/lib/ceedling/plugins/plugin_manager_helper.rb +5 -1
  211. data/lib/ceedling/plugins/plugin_reportinator.rb +36 -7
  212. data/lib/ceedling/plugins/plugin_reportinator_helper.rb +3 -3
  213. data/lib/ceedling/plugins/report_log_writer_plugin.rb +66 -0
  214. data/lib/ceedling/plugins/report_tests_stdout_plugin.rb +18 -5
  215. data/lib/ceedling/preprocess/README.md +135 -120
  216. data/lib/ceedling/preprocess/c_comment_scanner.rb +9 -7
  217. data/lib/ceedling/preprocess/c_preprocessor_conditionals.rb +27 -10
  218. data/lib/ceedling/preprocess/preprocessinator.rb +253 -217
  219. data/lib/ceedling/preprocess/preprocessinator_bare_includes_extractor.rb +7 -10
  220. data/lib/ceedling/preprocess/preprocessinator_code_finder.rb +8 -6
  221. data/lib/ceedling/preprocess/preprocessinator_comment_stripper.rb +5 -3
  222. data/lib/ceedling/preprocess/preprocessinator_file_assembler.rb +86 -82
  223. data/lib/ceedling/preprocess/preprocessinator_includes_handler.rb +182 -163
  224. data/lib/ceedling/preprocess/preprocessinator_line_marker_includes_extractor.rb +174 -8
  225. data/lib/ceedling/preprocess/preprocessinator_reconstructor.rb +41 -20
  226. data/lib/ceedling/quote_include_isolator.rb +129 -0
  227. data/lib/ceedling/rake_app/rake_task_registry.rb +9 -9
  228. data/lib/ceedling/rake_app/rake_wrapper.rb +0 -13
  229. data/lib/ceedling/rake_app/rakefile_component_resolver.rb +24 -12
  230. data/lib/ceedling/rakefile.rb +2 -1
  231. data/lib/ceedling/{tasks_base.rake → rakefiles/base/tasks_base.rake} +1 -1
  232. data/lib/ceedling/{tasks_filesystem.rake → rakefiles/base/tasks_filesystem.rake} +3 -0
  233. data/lib/ceedling/rakefiles/release/rules_release.rake +52 -0
  234. data/lib/ceedling/{erb_wrapper.rb → rakefiles/release/tasks_release.rake} +5 -8
  235. data/lib/ceedling/rakefiles/tests/rules_tests.rake +43 -0
  236. data/lib/ceedling/rakefiles/tests/rules_tests_generate.rake +80 -0
  237. data/lib/ceedling/{tasks_tests.rake → rakefiles/tests/tasks_tests.rake} +11 -20
  238. data/lib/ceedling/rakefiles/tests/tasks_tests_generate.rake +55 -0
  239. data/lib/ceedling/release_invoker/README.md +35 -0
  240. data/lib/ceedling/release_invoker/release_build_executor.rb +263 -0
  241. data/lib/ceedling/release_invoker/release_build_planner.rb +80 -0
  242. data/lib/ceedling/release_invoker/release_invoker.rb +78 -0
  243. data/lib/ceedling/release_invoker/release_invoker_types.rb +40 -0
  244. data/lib/ceedling/reportinator.rb +18 -2
  245. data/lib/ceedling/ruby_expandinator.rb +40 -1
  246. data/lib/ceedling/setupinator.rb +9 -3
  247. data/lib/ceedling/system_wrapper.rb +17 -0
  248. data/lib/ceedling/templateinator.rb +146 -0
  249. data/lib/ceedling/test_context_extractor.rb +59 -28
  250. data/lib/ceedling/test_invoker/HEADER_COLLISIONS.md +41 -0
  251. data/lib/ceedling/test_invoker/PIPELINE.md +142 -0
  252. data/lib/ceedling/test_invoker/README.md +6 -0
  253. data/lib/ceedling/test_invoker/mock_locator.rb +49 -0
  254. data/lib/ceedling/test_invoker/partials_manager.rb +426 -0
  255. data/lib/ceedling/test_invoker/standin_headerinator.rb +136 -0
  256. data/lib/ceedling/test_invoker/test_bare_includes_extractinator.rb +117 -0
  257. data/lib/ceedling/test_invoker/test_build_executor.rb +783 -429
  258. data/lib/ceedling/test_invoker/test_build_planner.rb +175 -70
  259. data/lib/ceedling/test_invoker/test_build_setup.rb +132 -241
  260. data/lib/ceedling/test_invoker/test_build_validations.rb +102 -0
  261. data/lib/ceedling/test_invoker/test_file_preprocessinator.rb +148 -0
  262. data/lib/ceedling/test_invoker/test_includes_extractinator.rb +34 -0
  263. data/lib/ceedling/test_invoker/test_includes_preprocessinator.rb +118 -0
  264. data/lib/ceedling/test_invoker/test_includes_reconcilinator.rb +149 -0
  265. data/lib/ceedling/test_invoker/test_invoker.rb +16 -183
  266. data/lib/ceedling/test_invoker/test_invoker_types.rb +85 -16
  267. data/lib/ceedling/test_invoker/test_pipeline_helpers.rb +121 -0
  268. data/lib/ceedling/test_invoker/test_pipeline_manager.rb +303 -0
  269. data/lib/ceedling/test_invoker/test_runner_generatinator.rb +105 -0
  270. data/lib/ceedling/test_invoker/test_search_paths.rb +73 -0
  271. data/lib/ceedling/test_invoker/test_source_file_directive_resolver.rb +78 -0
  272. data/lib/ceedling/tool_executor.rb +42 -13
  273. data/lib/ceedling/tool_executor_helper.rb +1 -1
  274. data/lib/ceedling/tool_validator.rb +124 -123
  275. data/lib/ceedling/yaml_wrapper.rb +5 -3
  276. data/lib/version.rb +19 -2
  277. data/mkdocs.prerelease.yml +42 -0
  278. data/mkdocs.yml +10 -2
  279. data/plugins/bullseye/bullseye.rake +70 -107
  280. data/plugins/bullseye/config/defaults.yml +12 -54
  281. data/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  282. data/plugins/bullseye/lib/bullseye.rb +511 -120
  283. data/plugins/bullseye/lib/bullseye_constants.rb +100 -0
  284. data/plugins/command_hooks/lib/command_hooks.rb +117 -199
  285. data/plugins/compile_commands_json_db/lib/compile_commands_json_db.rb +72 -27
  286. data/plugins/cppcheck/config/defaults.yml +6 -1
  287. data/plugins/cppcheck/config/defaults_cppcheck.rb +5 -1
  288. data/plugins/cppcheck/cppcheck.rake +7 -1
  289. data/plugins/cppcheck/lib/cppcheck.rb +175 -26
  290. data/plugins/cppcheck/lib/cppcheck_constants.rb +12 -0
  291. data/plugins/cppcheck/lib/cppcheck_reports.rb +5 -1
  292. data/plugins/dependencies/Rakefile +14 -2
  293. data/plugins/dependencies/config/defaults.yml +9 -6
  294. data/plugins/dependencies/dependencies.rake +46 -76
  295. data/plugins/dependencies/example/boss/project.yml +1 -1
  296. data/plugins/dependencies/example/supervisor/project.yml +1 -1
  297. data/plugins/dependencies/example/version.tar.gzip +0 -0
  298. data/plugins/dependencies/lib/dependencies.rb +232 -427
  299. data/plugins/dependencies/lib/dependency_commands.rb +72 -0
  300. data/plugins/dependencies/lib/dependency_environment.rb +57 -0
  301. data/plugins/dependencies/lib/dependency_spec.rb +145 -0
  302. data/plugins/fff/.rspec +1 -0
  303. data/plugins/fff/Rakefile +14 -2
  304. data/plugins/fff/examples/fff_example/project.yml +1 -1
  305. data/plugins/fff/lib/fff.rb +30 -9
  306. data/plugins/fff/lib/fff_mock_generator.rb +142 -128
  307. data/plugins/fff/spec/fff_mock_header_generator_spec.rb +15 -0
  308. data/plugins/fff/spec/fff_mock_source_generator_spec.rb +14 -0
  309. data/plugins/fff/spec/spec_helper.rb +45 -0
  310. data/plugins/fff/src/fff_unity_helper.h +5 -0
  311. data/plugins/fff/vendor/fff/fakegen.rb +5 -4
  312. data/plugins/fff/vendor/fff/fff.h +4 -4
  313. data/plugins/gcov/config/defaults.yml +5 -0
  314. data/plugins/gcov/gcov.rake +12 -8
  315. data/plugins/gcov/lib/console_reportinator.rb +140 -20
  316. data/plugins/gcov/lib/gcov.rb +155 -60
  317. data/plugins/gcov/lib/gcov_constants.rb +4 -7
  318. data/plugins/gcov/lib/gcov_reportinator.rb +90 -0
  319. data/plugins/gcov/lib/gcov_types.rb +62 -1
  320. data/plugins/gcov/lib/gcovr_reportinator.rb +255 -213
  321. data/plugins/gcov/lib/reportgenerator_reportinator.rb +122 -44
  322. data/plugins/module_generator/Rakefile +4 -4
  323. data/plugins/module_generator/config/module_generator.yml +0 -1
  324. data/plugins/module_generator/example/project.yml +1 -1
  325. data/plugins/module_generator/lib/module_generator.rb +117 -87
  326. data/plugins/module_generator/lib/module_generator_options.rb +150 -0
  327. data/plugins/module_generator/lib/module_generator_project.rb +45 -0
  328. data/plugins/module_generator/lib/module_generator_request.rb +83 -0
  329. data/plugins/module_generator/lib/module_generator_test_file.rb +68 -0
  330. data/plugins/module_generator/lib/module_generator_unity.rb +24 -0
  331. data/plugins/module_generator/module_generator.rake +24 -46
  332. data/plugins/report_build_warnings_log/config/defaults.yml +4 -1
  333. data/plugins/report_build_warnings_log/lib/report_build_warnings_log.rb +47 -55
  334. data/plugins/report_build_warnings_log/lib/warning_collector.rb +140 -0
  335. data/plugins/report_build_warnings_log/lib/warning_reports.rb +135 -0
  336. data/plugins/report_tests_gtestlike_stdout/assets/test_results.template +3 -0
  337. data/{spec/units/configurator_builder_spec.rb → plugins/report_tests_gtestlike_stdout/config/defaults.yml} +6 -10
  338. data/plugins/report_tests_gtestlike_stdout/lib/gtestlike_report.rb +168 -0
  339. data/plugins/report_tests_gtestlike_stdout/lib/report_tests_gtestlike_stdout.rb +25 -1
  340. data/plugins/report_tests_ide_stdout/assets/test_results.template +50 -0
  341. data/plugins/report_tests_ide_stdout/config/defaults.yml +13 -0
  342. data/plugins/report_tests_ide_stdout/lib/ide_report_lines.rb +103 -0
  343. data/plugins/report_tests_ide_stdout/lib/report_tests_ide_stdout.rb +12 -4
  344. data/plugins/report_tests_log_factory/lib/cppunit_tests_reporter.rb +33 -51
  345. data/plugins/report_tests_log_factory/lib/html_tests_reporter.rb +286 -295
  346. data/plugins/report_tests_log_factory/lib/json_tests_reporter.rb +22 -35
  347. data/plugins/report_tests_log_factory/lib/junit_tests_reporter.rb +91 -133
  348. data/plugins/report_tests_log_factory/lib/report_tests_log_factory.rb +72 -86
  349. data/plugins/report_tests_log_factory/lib/tests_reporter.rb +31 -12
  350. data/plugins/report_tests_pretty_stdout/assets/{template.erb → test_results.template} +8 -8
  351. data/plugins/report_tests_raw_output_log/lib/report_tests_raw_output_log.rb +18 -48
  352. data/plugins/report_tests_teamcity_stdout/lib/report_tests_teamcity_stdout.rb +13 -2
  353. data/plugins/sanitize/config/defaults.yml +44 -0
  354. data/plugins/sanitize/config/defaults_sanitize.rb +20 -0
  355. data/plugins/sanitize/lib/sanitize.rb +174 -0
  356. data/plugins/sanitize/lib/sanitize_config.rb +110 -0
  357. data/plugins/sanitize/lib/sanitize_constants.rb +13 -0
  358. data/plugins/sanitize/lib/sanitize_findings.rb +85 -0
  359. data/plugins/sanitize/lib/sanitize_records.rb +115 -0
  360. data/plugins/sanitize/lib/sanitize_reports.rb +135 -0
  361. data/plugins/sanitize/sanitize.rake +108 -0
  362. data/plugins/valgrind/config/defaults.yml +7 -1
  363. data/plugins/valgrind/config/defaults_valgrind.rb +6 -1
  364. data/plugins/valgrind/lib/valgrind.rb +202 -39
  365. data/plugins/valgrind/lib/valgrind_constants.rb +4 -0
  366. data/plugins/valgrind/lib/valgrind_report.rb +52 -0
  367. data/plugins/valgrind/valgrind.rake +33 -11
  368. data/site-local/404.html +248 -14
  369. data/site-local/configuration/environment-vars.html +248 -14
  370. data/site-local/configuration/global-collections.html +248 -19
  371. data/site-local/configuration/index.html +249 -15
  372. data/site-local/configuration/loading.html +260 -22
  373. data/site-local/configuration/mixins.html +252 -17
  374. data/site-local/configuration/parallel-builds.html +248 -14
  375. data/site-local/configuration/project-file.html +275 -30
  376. data/site-local/configuration/reference/cexception.html +255 -20
  377. data/site-local/configuration/reference/cmock.html +281 -14
  378. data/site-local/configuration/reference/defines.html +262 -19
  379. data/site-local/configuration/reference/environment.html +251 -17
  380. data/site-local/configuration/reference/extension.html +361 -16
  381. data/site-local/configuration/reference/files.html +262 -14
  382. data/site-local/configuration/reference/flags.html +270 -19
  383. data/site-local/configuration/reference/index.html +248 -14
  384. data/site-local/configuration/reference/libraries.html +248 -14
  385. data/site-local/configuration/reference/mixins.html +248 -14
  386. data/site-local/configuration/reference/partials.html +249 -19
  387. data/site-local/configuration/reference/paths.html +275 -15
  388. data/site-local/configuration/reference/plugins.html +248 -14
  389. data/site-local/configuration/reference/project.html +291 -14
  390. data/site-local/configuration/reference/release-build.html +256 -14
  391. data/site-local/configuration/reference/test-build.html +290 -24
  392. data/site-local/configuration/reference/test-runner.html +288 -17
  393. data/site-local/configuration/reference/tools.html +254 -14
  394. data/site-local/configuration/reference/unity.html +280 -15
  395. data/site-local/configuration/which-ceedling.html +248 -14
  396. data/site-local/development/index.html +254 -14
  397. data/site-local/development/plugins/configuration.html +269 -17
  398. data/site-local/development/plugins/index.html +267 -15
  399. data/site-local/development/plugins/plugin-subclass.html +906 -154
  400. data/site-local/development/plugins/rake-tasks.html +276 -14
  401. data/site-local/development/releases.html +4708 -0
  402. data/site-local/development/workflow.html +1030 -51
  403. data/site-local/getting-started/builds.html +4607 -0
  404. data/site-local/getting-started/command-line.html +418 -34
  405. data/site-local/getting-started/example-projects/cipher-quest.html +248 -14
  406. data/site-local/getting-started/example-projects/index.html +249 -15
  407. data/site-local/getting-started/example-projects/temp-sensor.html +248 -14
  408. data/site-local/getting-started/example-projects/wondrous-forest.html +248 -14
  409. data/site-local/getting-started/index.html +255 -14
  410. data/site-local/getting-started/installation.html +258 -22
  411. data/site-local/getting-started/quick-start.html +251 -15
  412. data/site-local/help.html +255 -14
  413. data/site-local/index.html +292 -22
  414. data/site-local/overview/build-system.html +249 -15
  415. data/site-local/overview/index.html +248 -14
  416. data/site-local/overview/test-environments.html +257 -14
  417. data/site-local/overview/tools-and-frameworks.html +248 -14
  418. data/site-local/plugins/beep.html +251 -14
  419. data/site-local/plugins/bullseye/index.html +5079 -0
  420. data/site-local/plugins/bullseye/licensing.html +4840 -0
  421. data/site-local/plugins/command-hooks.html +265 -27
  422. data/site-local/plugins/compile-commands-json-db.html +256 -17
  423. data/site-local/plugins/cppcheck.html +1081 -262
  424. data/site-local/plugins/dependencies.html +934 -242
  425. data/site-local/plugins/fff.html +296 -15
  426. data/site-local/plugins/gcov/examples.html +251 -14
  427. data/site-local/plugins/gcov/gcovr.html +567 -65
  428. data/site-local/plugins/gcov/index.html +251 -14
  429. data/site-local/plugins/gcov/overview.html +259 -18
  430. data/site-local/plugins/gcov/reportgenerator.html +386 -38
  431. data/site-local/plugins/gcov/reporting.html +348 -100
  432. data/site-local/plugins/gcov/setup.html +253 -15
  433. data/site-local/plugins/gcov/tool-versions.html +301 -19
  434. data/site-local/plugins/gcov/troubleshooting.html +273 -36
  435. data/site-local/plugins/index.html +294 -36
  436. data/site-local/plugins/module-generator.html +779 -195
  437. data/site-local/plugins/report-build-warnings-log.html +578 -33
  438. data/site-local/plugins/report-tests-gtestlike-stdout.html +467 -84
  439. data/site-local/plugins/report-tests-ide-stdout.html +654 -51
  440. data/site-local/plugins/report-tests-log-factory.html +337 -70
  441. data/site-local/plugins/report-tests-pretty-stdout.html +251 -14
  442. data/site-local/plugins/report-tests-raw-output-log.html +251 -14
  443. data/site-local/plugins/report-tests-teamcity-stdout.html +251 -14
  444. data/site-local/plugins/sanitize.html +5332 -0
  445. data/site-local/plugins/valgrind.html +416 -26
  446. data/site-local/{plugins/bullseye.html → project/index.html} +297 -217
  447. data/site-local/project/release-history.html +251 -17
  448. data/site-local/project/sbom.html +4726 -0
  449. data/site-local/project/upgrade.html +250 -16
  450. data/site-local/reference/build-directives.html +257 -14
  451. data/site-local/reference/command-line.html +373 -16
  452. data/site-local/reference/environment-vars.html +248 -14
  453. data/site-local/reference/gcov-plugin.html +492 -18
  454. data/site-local/reference/global-collections.html +249 -15
  455. data/site-local/reference/index.html +248 -14
  456. data/site-local/reference/partials-macros.html +258 -14
  457. data/site-local/reference/project-configuration.html +248 -14
  458. data/site-local/sitemap.xml.gz +0 -0
  459. data/{docs/mkdocs/snapshot/assets → site-local/snapshot/assets/features}/project.yml +4 -1
  460. data/site-local/snapshot/examples/cipher_quest/index.html +248 -14
  461. data/site-local/snapshot/examples/temp_sensor/index.html +248 -14
  462. data/site-local/snapshot/examples/wondrous_forest/index.html +265 -25
  463. data/site-local/snapshot/plugins/bullseye/config/defaults.yml +24 -0
  464. data/site-local/snapshot/plugins/bullseye/config/defaults_bullseye.rb +182 -0
  465. data/site-local/snapshot/plugins/gcov/config/defaults.yml +5 -0
  466. data/site-local/testing-guide/build-directives.html +332 -22
  467. data/site-local/testing-guide/conventions.html +678 -153
  468. data/site-local/testing-guide/frameworks.html +248 -14
  469. data/site-local/testing-guide/index.html +248 -21
  470. data/site-local/testing-guide/partials/configuration.html +248 -14
  471. data/site-local/testing-guide/partials/conventions.html +316 -17
  472. data/site-local/testing-guide/partials/directives.html +456 -48
  473. data/site-local/testing-guide/partials/example.html +248 -14
  474. data/site-local/testing-guide/partials/index.html +255 -14
  475. data/site-local/testing-guide/partials/overview.html +248 -14
  476. data/site-local/testing-guide/partials/variables.html +248 -14
  477. data/site-local/testing-guide/test-cases.html +248 -14
  478. data/site-local/testing-guide/test-sample.html +248 -14
  479. data/site-local/testing-guide/test-suite-anatomy.html +248 -14
  480. data/spec/integration/actionator_file_operations_spec.rb +287 -0
  481. data/spec/integration/analysis_tool_output_spec.rb +204 -0
  482. data/spec/{units/c_extractor/c_extractor_integration_spec.rb → integration/c_extractor_composition_spec.rb} +196 -17
  483. data/spec/integration/command_hooks_plugin_spec.rb +152 -0
  484. data/spec/integration/compile_commands_json_db_spec.rb +76 -0
  485. data/spec/integration/configurator_pipeline_spec.rb +180 -0
  486. data/spec/integration/configurator_plugins_spec.rb +122 -0
  487. data/spec/integration/configurator_validation_spec.rb +98 -0
  488. data/spec/integration/dependencies/dependency_tracker_cache_hardening_spec.rb +396 -0
  489. data/spec/integration/dependencies/dependency_tracker_core_spec.rb +244 -0
  490. data/spec/integration/dependencies/dependency_tracker_diagnose_spec.rb +224 -0
  491. data/spec/integration/dependencies/dependency_tracker_filename_handling_spec.rb +118 -0
  492. data/spec/integration/dependencies/dependency_tracker_gcc_deps_spec.rb +199 -0
  493. data/spec/integration/dependencies/dependency_tracker_pruning_spec.rb +167 -0
  494. data/spec/integration/dependencies_plugin_spec.rb +473 -0
  495. data/spec/integration/erb_dependency_removed_spec.rb +167 -0
  496. data/spec/integration/includes_extraction_spec.rb +612 -0
  497. data/spec/integration/mixin_loading_spec.rb +414 -0
  498. data/spec/integration/module_generator_spec.rb +436 -0
  499. data/spec/integration/partials_fallback_preprocessing_spec.rb +316 -0
  500. data/spec/integration/partials_header_composition_spec.rb +889 -0
  501. data/spec/integration/partials_module_resolution_spec.rb +372 -0
  502. data/spec/integration/partials_symbol_linkage_spec.rb +371 -0
  503. data/spec/integration/preprocessing_transient_io_retry_spec.rb +135 -0
  504. data/spec/integration/quote_include_isolator_spec.rb +167 -0
  505. data/spec/integration/report_build_warnings_log_spec.rb +170 -0
  506. data/spec/integration/report_tests_log_factory_spec.rb +100 -0
  507. data/spec/integration/sanitizer_exclusions_spec.rb +126 -0
  508. data/spec/integration/system_harness_sanitizers_spec.rb +104 -0
  509. data/spec/integration/test_build_parallel_barrier_spec.rb +89 -0
  510. data/spec/integration/test_executable_manifest_spec.rb +118 -0
  511. data/spec/integration/test_includes_extractinator_spec.rb +293 -0
  512. data/spec/integration/tool_executor_spec.rb +224 -0
  513. data/spec/integration/tool_validator_spec.rb +133 -0
  514. data/spec/integration/vendor_copy_transient_io_retry_spec.rb +130 -0
  515. data/spec/manual/stress_test.rb +1 -1
  516. data/spec/support/config_yaml_helper.rb +17 -0
  517. data/spec/support/fixtures/sanitizer_reports/clang_asan_heap.txt +45 -0
  518. data/spec/support/fixtures/sanitizer_reports/clang_ubsan_shift.txt +5 -0
  519. data/spec/support/fixtures/sanitizer_reports/gcc_heap.txt +47 -0
  520. data/spec/support/fixtures/sanitizer_reports/gcc_leak.txt +10 -0
  521. data/spec/support/fixtures/sanitizer_reports/gcc_segv.txt +6 -0
  522. data/spec/support/fixtures/sanitizer_reports/gcc_ubsan_shift.txt +6 -0
  523. data/spec/support/fixtures/templates/bullseye__all_pass.txt +6 -0
  524. data/spec/support/fixtures/templates/bullseye__coverage_branches_only.txt +6 -0
  525. data/spec/support/fixtures/templates/bullseye__coverage_functions_only.txt +6 -0
  526. data/spec/support/fixtures/templates/bullseye__coverage_none.txt +6 -0
  527. data/spec/support/fixtures/templates/bullseye__empty.txt +6 -0
  528. data/spec/support/fixtures/templates/bullseye__gcov_context.txt +6 -0
  529. data/spec/support/fixtures/templates/bullseye__mixed_all.txt +6 -0
  530. data/spec/support/fixtures/templates/bullseye__one_failure_matching.txt +6 -0
  531. data/spec/support/fixtures/templates/bullseye__one_failure_multiline.txt +6 -0
  532. data/spec/support/fixtures/templates/bullseye__one_failure_no_message.txt +6 -0
  533. data/spec/support/fixtures/templates/bullseye__one_failure_nonmatching.txt +6 -0
  534. data/spec/support/fixtures/templates/bullseye__one_ignore_no_message.txt +6 -0
  535. data/spec/support/fixtures/templates/bullseye__one_ignore_with_message.txt +6 -0
  536. data/spec/support/fixtures/templates/bullseye__stdout_only.txt +6 -0
  537. data/spec/support/fixtures/templates/ide__all_pass.txt +10 -0
  538. data/spec/support/fixtures/templates/ide__coverage_branches_only.txt +10 -0
  539. data/spec/support/fixtures/templates/ide__coverage_functions_only.txt +10 -0
  540. data/spec/support/fixtures/templates/ide__coverage_none.txt +10 -0
  541. data/spec/support/fixtures/templates/ide__empty.txt +8 -0
  542. data/spec/support/fixtures/templates/ide__gcov_context.txt +28 -0
  543. data/spec/support/fixtures/templates/ide__mixed_all.txt +29 -0
  544. data/spec/support/fixtures/templates/ide__one_failure_matching.txt +15 -0
  545. data/spec/support/fixtures/templates/ide__one_failure_multiline.txt +17 -0
  546. data/spec/support/fixtures/templates/ide__one_failure_no_message.txt +15 -0
  547. data/spec/support/fixtures/templates/ide__one_failure_nonmatching.txt +15 -0
  548. data/spec/support/fixtures/templates/ide__one_ignore_no_message.txt +15 -0
  549. data/spec/support/fixtures/templates/ide__one_ignore_with_message.txt +15 -0
  550. data/spec/support/fixtures/templates/ide__stdout_only.txt +16 -0
  551. data/spec/support/fixtures/templates/pretty__all_pass.txt +8 -0
  552. data/spec/support/fixtures/templates/pretty__coverage_branches_only.txt +8 -0
  553. data/spec/support/fixtures/templates/pretty__coverage_functions_only.txt +8 -0
  554. data/spec/support/fixtures/templates/pretty__coverage_none.txt +8 -0
  555. data/spec/support/fixtures/templates/pretty__empty.txt +6 -0
  556. data/spec/support/fixtures/templates/pretty__gcov_context.txt +31 -0
  557. data/spec/support/fixtures/templates/pretty__mixed_all.txt +35 -0
  558. data/spec/support/fixtures/templates/pretty__one_failure_matching.txt +15 -0
  559. data/spec/support/fixtures/templates/pretty__one_failure_multiline.txt +17 -0
  560. data/spec/support/fixtures/templates/pretty__one_failure_no_message.txt +15 -0
  561. data/spec/support/fixtures/templates/pretty__one_failure_nonmatching.txt +15 -0
  562. data/spec/support/fixtures/templates/pretty__one_ignore_no_message.txt +15 -0
  563. data/spec/support/fixtures/templates/pretty__one_ignore_with_message.txt +15 -0
  564. data/spec/support/fixtures/templates/pretty__stdout_only.txt +15 -0
  565. data/spec/support/fixtures/valgrind_reports/sigsegv.log +51 -0
  566. data/spec/support/fixtures/valgrind_reports/sigsegv.xml +182 -0
  567. data/spec/support/include_guard_helper.rb +20 -0
  568. data/spec/support/integration/configurator_integration_helper.rb +159 -0
  569. data/spec/support/integration/dependency_tracker_integration_helper.rb +136 -0
  570. data/spec/support/integration/partials_generation_integration_helper.rb +726 -0
  571. data/spec/support/integration/spec_integration_helper.rb +285 -0
  572. data/spec/support/integration/test_includes_harness.rb +259 -0
  573. data/spec/support/integration/tool_executor_integration_helper.rb +55 -0
  574. data/spec/support/spec_helper.rb +41 -0
  575. data/spec/support/system/sanitizers/asan_ubsan.yml +82 -0
  576. data/spec/support/system/sanitizers/asan_ubsan_leaks.yml +57 -0
  577. data/spec/support/system/simplecov_boot.rb +66 -0
  578. data/spec/support/system/spec_system_helper.rb +376 -16
  579. data/spec/support/system/system_context.rb +181 -59
  580. data/spec/support/template_render_cases.rb +166 -0
  581. data/spec/system/bracket_path_handling_spec.rb +175 -0
  582. data/spec/system/build_output_mirroring_spec.rb +89 -0
  583. data/spec/system/build_recovery_spec.rb +382 -0
  584. data/spec/system/bullseye_deployment_spec.rb +102 -0
  585. data/spec/system/cli_surface_spec.rb +245 -0
  586. data/spec/system/command_hooks_spec.rb +117 -0
  587. data/spec/system/conditional_include_macro_visibility_spec.rb +32 -124
  588. data/spec/system/conditional_mock_includes_spec.rb +181 -0
  589. data/spec/system/cppcheck_deployment_spec.rb +26 -8
  590. data/spec/system/delta_builds_spec.rb +751 -0
  591. data/spec/system/deployment_as_gem_spec.rb +7 -0
  592. data/spec/system/deployment_as_vendor_spec.rb +29 -145
  593. data/spec/system/dumpconfig_spec.rb +137 -0
  594. data/spec/system/encoding_stress_spec.rb +7 -4
  595. data/spec/system/example_cipher_quest_spec.rb +25 -100
  596. data/spec/system/example_temp_sensor_spec.rb +30 -172
  597. data/spec/system/example_wondrous_forest_spec.rb +25 -62
  598. data/spec/system/extension_multiple_values_spec.rb +75 -0
  599. data/spec/system/files_paths_reporting_spec.rb +154 -0
  600. data/spec/system/gcov_deployment_spec.rb +72 -3
  601. data/spec/system/header_include_path_validation_spec.rb +222 -0
  602. data/spec/system/implicit_source_header_correspondence_disambiguation_spec.rb +100 -0
  603. data/spec/system/include_path_reconciliation_spec.rb +64 -0
  604. data/spec/system/mixin_ordering_spec.rb +30 -415
  605. data/spec/system/mocks_partials_configuration_validation_spec.rb +126 -0
  606. data/spec/system/parent_directory_reference_spec.rb +114 -0
  607. data/spec/system/partials_module_disambiguation_spec.rb +143 -0
  608. data/spec/system/pinned_thread_count_spec.rb +102 -0
  609. data/spec/system/plugin_delta_builds_spec.rb +179 -0
  610. data/spec/system/preprocessing_encoding_spec.rb +87 -4
  611. data/spec/system/preprocessing_fallback_conditionals_spec.rb +19 -25
  612. data/spec/system/preprocessing_parameterized_tests_spec.rb +2 -2
  613. data/spec/system/rake_release_task_path_disambiguation_spec.rb +97 -0
  614. data/spec/system/rake_test_task_path_disambiguation_spec.rb +118 -0
  615. data/spec/system/report_and_tooling_plugins_spec.rb +327 -0
  616. data/spec/system/ruby_replacement_spec.rb +1 -1
  617. data/spec/system/same_named_modules_spec.rb +115 -0
  618. data/spec/system/sanitize_deployment_spec.rb +64 -0
  619. data/spec/system/shuffle_tests_spec.rb +139 -0
  620. data/spec/system/sibling_header_collision_spec.rb +620 -0
  621. data/spec/system/subdir_include_preservation_spec.rb +63 -0
  622. data/spec/system/support/bullseye_common_test_cases.rb +369 -0
  623. data/spec/system/support/bullseye_helpers.rb +70 -0
  624. data/spec/system/support/common_test_cases.rb +167 -43
  625. data/spec/system/support/cppcheck_common_test_cases.rb +80 -0
  626. data/spec/system/support/cppcheck_helpers.rb +10 -8
  627. data/spec/system/support/gcov_common_test_cases.rb +173 -37
  628. data/spec/system/support/gcov_helpers.rb +3 -3
  629. data/spec/system/support/gcov_partials_test_cases.rb +48 -2
  630. data/spec/system/support/sanitize_common_test_cases.rb +222 -0
  631. data/spec/system/support/sanitize_helpers.rb +27 -0
  632. data/spec/system/support/valgrind_common_test_cases.rb +116 -16
  633. data/spec/system/support/valgrind_helpers.rb +3 -4
  634. data/spec/system/test_pipeline_stop_points_spec.rb +160 -0
  635. data/spec/system/test_runner_system_include_spec.rb +19 -41
  636. data/spec/system/test_source_file_directive_spec.rb +235 -0
  637. data/spec/system/upgrade_as_vendor_spec.rb +25 -46
  638. data/spec/system/valgrind_deployment_spec.rb +41 -0
  639. data/spec/units/batchinator_spec.rb +314 -0
  640. data/spec/units/bin/actionator_spec.rb +412 -0
  641. data/spec/units/bin/app_cfg_spec.rb +90 -0
  642. data/spec/units/bin/cli_handler_spec.rb +204 -0
  643. data/spec/units/bin/cli_helper_spec.rb +238 -10
  644. data/spec/units/bin/cli_options_transform_spec.rb +49 -0
  645. data/spec/units/bin/composinator_spec.rb +236 -0
  646. data/spec/units/bin/{projectinator_mixin_spec.rb → mixin_resolvinator_spec.rb} +122 -83
  647. data/spec/units/bin/mixin_standardizer_spec.rb +4 -3
  648. data/spec/units/bin/mixinator_spec.rb +58 -22
  649. data/spec/units/bin/path_validator_spec.rb +112 -0
  650. data/spec/units/bin/projectinator_spec.rb +223 -0
  651. data/spec/units/bin/rake_patches_spec.rb +52 -0
  652. data/spec/units/bin/recursive_merger_spec.rb +22 -0
  653. data/spec/units/bin/versionator_spec.rb +104 -0
  654. data/spec/units/c_extractor/c_extractor_code_text_spec.rb +4 -4
  655. data/spec/units/c_extractor/c_extractor_declarations_spec.rb +70 -0
  656. data/spec/units/c_extractor/c_extractor_functions_spec.rb +75 -1
  657. data/spec/units/c_extractor/c_extractor_preprocessing_spec.rb +158 -0
  658. data/spec/units/c_extractor/c_extractor_spec.rb +236 -6
  659. data/spec/units/ceedling/templateinator_golden_spec.rb +84 -0
  660. data/spec/units/ceedling/templateinator_spec.rb +188 -0
  661. data/spec/units/config/configurator_builder_spec.rb +444 -0
  662. data/spec/units/config/configurator_plugins_spec.rb +160 -0
  663. data/spec/units/config/configurator_setup_spec.rb +706 -6
  664. data/spec/units/config/configurator_spec.rb +952 -0
  665. data/spec/units/config/configurator_validator_spec.rb +259 -0
  666. data/spec/units/config/line_marker_suppressors_spec.rb +89 -0
  667. data/spec/units/config_matchinator_spec.rb +103 -0
  668. data/spec/units/defineinator_spec.rb +158 -0
  669. data/spec/units/dependencies/dependency_cache_store_spec.rb +364 -0
  670. data/spec/units/dependencies/dependency_debug_tree_spec.rb +189 -0
  671. data/spec/units/dependencies/dependency_differ_spec.rb +139 -0
  672. data/spec/units/dependencies/dependency_hasher_spec.rb +141 -0
  673. data/spec/units/dependencies/dependency_path_normalizer_spec.rb +111 -0
  674. data/spec/units/dependencies/dependency_tracker_spec.rb +905 -0
  675. data/spec/units/dependencies/dependinator_spec.rb +99 -0
  676. data/spec/units/dependencies/gcc_dependency_parser_spec.rb +152 -0
  677. data/spec/units/encodinator_spec.rb +92 -0
  678. data/spec/units/file_finder_helper_spec.rb +99 -15
  679. data/spec/units/file_finder_spec.rb +495 -0
  680. data/spec/units/file_path_collection_utils_spec.rb +9 -0
  681. data/spec/units/file_path_utils_spec.rb +736 -0
  682. data/spec/units/file_wrapper_spec.rb +447 -0
  683. data/spec/units/filename_extension_spec.rb +120 -0
  684. data/spec/units/flaginator_spec.rb +114 -0
  685. data/spec/units/generators/generator_helper_spec.rb +113 -0
  686. data/spec/units/generators/generator_mocks_spec.rb +131 -0
  687. data/spec/units/generators/generator_partials_spec.rb +336 -160
  688. data/spec/units/generators/generator_spec.rb +317 -0
  689. data/spec/units/generators/generator_test_results_backtrace_spec.rb +169 -9
  690. data/spec/units/generators/generator_test_results_sanity_checker_spec.rb +14 -6
  691. data/spec/units/generators/generator_test_results_spec.rb +65 -8
  692. data/spec/units/generators/generator_test_runner_spec.rb +1 -1
  693. data/spec/units/includes/include_factory_spec.rb +53 -0
  694. data/spec/units/includes/include_pathinator_spec.rb +269 -0
  695. data/spec/units/includes/include_spec.rb +8 -4
  696. data/spec/units/includes/includes_spec.rb +326 -18
  697. data/spec/units/mock_locator_spec.rb +74 -0
  698. data/spec/units/parsing_parcels_spec.rb +65 -0
  699. data/spec/units/partials/partializer_config_spec.rb +284 -18
  700. data/spec/units/partials/partializer_helper_spec.rb +122 -0
  701. data/spec/units/partials/partializer_spec.rb +346 -71
  702. data/spec/units/partials/partializer_utils_spec.rb +4 -4
  703. data/spec/units/partials_manager_spec.rb +539 -0
  704. data/spec/units/path_matcher_spec.rb +193 -0
  705. data/spec/units/path_mirror_spec.rb +103 -0
  706. data/spec/units/plugin_manager_spec.rb +77 -0
  707. data/spec/units/plugin_reportinator_spec.rb +78 -3
  708. data/spec/units/plugins/bullseye_spec.rb +1068 -0
  709. data/spec/units/plugins/command_hooks_spec.rb +157 -0
  710. data/spec/units/plugins/compile_commands_json_db_spec.rb +145 -0
  711. data/spec/units/plugins/console_reportinator_spec.rb +370 -0
  712. data/spec/units/plugins/cppcheck_spec.rb +330 -4
  713. data/spec/units/plugins/cppunit_tests_reporter_spec.rb +118 -0
  714. data/spec/units/plugins/dependencies_spec.rb +295 -0
  715. data/spec/units/plugins/dependency_commands_spec.rb +83 -0
  716. data/spec/units/plugins/dependency_environment_spec.rb +64 -0
  717. data/spec/units/plugins/dependency_spec_spec.rb +170 -0
  718. data/spec/units/plugins/gcov_reportinator_spec.rb +272 -0
  719. data/spec/units/plugins/gcov_spec.rb +521 -0
  720. data/spec/units/plugins/gcovr_reportinator_spec.rb +795 -0
  721. data/spec/units/plugins/gtestlike_report_spec.rb +363 -0
  722. data/spec/units/plugins/html_tests_reporter_spec.rb +158 -0
  723. data/spec/units/plugins/ide_report_lines_spec.rb +229 -0
  724. data/spec/units/plugins/json_tests_reporter_spec.rb +87 -0
  725. data/spec/units/plugins/junit_tests_reporter_spec.rb +237 -0
  726. data/spec/units/plugins/module_generator_options_spec.rb +185 -0
  727. data/spec/units/plugins/module_generator_project_spec.rb +55 -0
  728. data/spec/units/plugins/module_generator_request_spec.rb +107 -0
  729. data/spec/units/plugins/module_generator_spec.rb +214 -0
  730. data/spec/units/plugins/module_generator_test_file_spec.rb +102 -0
  731. data/spec/units/plugins/module_generator_unity_spec.rb +37 -0
  732. data/spec/units/plugins/report_build_warnings_log_spec.rb +199 -0
  733. data/spec/units/plugins/report_log_writer_plugin_spec.rb +94 -0
  734. data/spec/units/plugins/report_tests_gtestlike_stdout_spec.rb +274 -0
  735. data/spec/units/plugins/report_tests_ide_stdout_spec.rb +140 -0
  736. data/spec/units/plugins/report_tests_log_factory_spec.rb +210 -0
  737. data/spec/units/plugins/report_tests_pretty_stdout_spec.rb +83 -0
  738. data/spec/units/plugins/report_tests_raw_output_log_spec.rb +98 -0
  739. data/spec/units/plugins/report_tests_stdout_plugin_spec.rb +145 -0
  740. data/spec/units/plugins/report_tests_teamcity_stdout_spec.rb +121 -0
  741. data/spec/units/plugins/reportgenerator_reportinator_spec.rb +410 -0
  742. data/spec/units/plugins/sanitize_config_spec.rb +119 -0
  743. data/spec/units/plugins/sanitize_findings_spec.rb +69 -0
  744. data/spec/units/plugins/sanitize_records_spec.rb +114 -0
  745. data/spec/units/plugins/sanitize_reports_spec.rb +84 -0
  746. data/spec/units/plugins/sanitize_spec.rb +300 -0
  747. data/spec/units/plugins/tests_reporter_spec.rb +89 -0
  748. data/spec/units/plugins/valgrind_spec.rb +560 -0
  749. data/spec/units/plugins/warning_collector_spec.rb +185 -0
  750. data/spec/units/plugins/warning_reports_spec.rb +150 -0
  751. data/spec/units/preprocess/c_comment_scanner_spec.rb +17 -17
  752. data/spec/units/preprocess/c_preprocessor_conditionals_spec.rb +94 -0
  753. data/spec/units/preprocess/preprocessinator_bare_includes_extractor_spec.rb +73 -0
  754. data/spec/units/preprocess/preprocessinator_code_finder_spec.rb +35 -16
  755. data/spec/units/preprocess/preprocessinator_comment_stripper_spec.rb +129 -48
  756. data/spec/units/preprocess/preprocessinator_file_assembler_spec.rb +292 -9
  757. data/spec/units/preprocess/preprocessinator_includes_handler_spec.rb +294 -16
  758. data/spec/units/preprocess/preprocessinator_line_marker_includes_extractor_spec.rb +356 -6
  759. data/spec/units/preprocess/preprocessinator_reconstructor_spec.rb +58 -4
  760. data/spec/units/preprocess/preprocessinator_spec.rb +693 -5
  761. data/spec/units/quote_include_isolator_spec.rb +176 -0
  762. data/spec/units/rake_app/rake_invocation_tracker_spec.rb +94 -0
  763. data/spec/units/rake_app/rake_task_registry_spec.rb +263 -0
  764. data/spec/units/rake_app/rake_utils_spec.rb +54 -0
  765. data/spec/units/rake_app/rake_wrapper_spec.rb +64 -0
  766. data/spec/units/rake_app/rakefile_component_resolver_spec.rb +182 -0
  767. data/spec/units/release_build_executor_spec.rb +404 -0
  768. data/spec/units/release_build_planner_spec.rb +144 -0
  769. data/spec/units/release_invoker_spec.rb +127 -0
  770. data/spec/units/reportinator_spec.rb +35 -0
  771. data/spec/units/ruby_expandinator_spec.rb +36 -0
  772. data/spec/units/standin_headerinator_spec.rb +168 -0
  773. data/spec/units/system_wrapper_spec.rb +16 -0
  774. data/spec/units/test_build_executor_spec.rb +1653 -8
  775. data/spec/units/test_build_planner_spec.rb +878 -0
  776. data/spec/units/test_build_setup_spec.rb +583 -0
  777. data/spec/units/test_context_extractor_spec.rb +51 -3
  778. data/spec/units/test_file_preprocessinator_spec.rb +206 -0
  779. data/spec/units/test_includes_extractinator_spec.rb +764 -0
  780. data/spec/units/test_invoker/objects_wiring_spec.rb +31 -0
  781. data/spec/units/test_invoker_spec.rb +147 -0
  782. data/spec/units/test_invoker_types_spec.rb +182 -0
  783. data/spec/units/test_pipeline_helpers_spec.rb +100 -0
  784. data/spec/units/test_pipeline_manager_spec.rb +415 -0
  785. data/spec/units/test_runner_generatinator_spec.rb +215 -0
  786. data/spec/units/test_runner_manager_spec.rb +70 -0
  787. data/spec/units/test_search_paths_spec.rb +84 -0
  788. data/spec/units/test_source_file_directive_resolver_spec.rb +239 -0
  789. data/spec/units/tool_executor_helper_spec.rb +1 -1
  790. data/spec/units/tool_executor_spec.rb +571 -2
  791. data/spec/units/tool_validator_spec.rb +303 -24
  792. data/spec/units/version_spec.rb +74 -0
  793. data/spec/units/yaml_wrapper_spec.rb +4 -1
  794. data/vendor/cmock/docs/CMock_Summary.md +11 -0
  795. data/vendor/cmock/lib/cmock_config.rb +1 -0
  796. data/vendor/cmock/lib/cmock_generator.rb +5 -1
  797. data/vendor/cmock/test/unit/cmock_generator_main_test.rb +31 -0
  798. data/vendor/cmock/vendor/unity/auto/generate_module.rb +4 -4
  799. data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +8 -2
  800. data/vendor/cmock/vendor/unity/auto/unity_test_summary.rb +2 -2
  801. data/vendor/cmock/vendor/unity/docs/UnityChangeLog.md +7 -0
  802. data/vendor/cmock/vendor/unity/docs/UnityConfigurationGuide.md +4 -0
  803. data/vendor/cmock/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  804. data/vendor/cmock/vendor/unity/src/unity_internals.h +21 -7
  805. data/vendor/cmock/vendor/unity/test/Makefile +9 -2
  806. data/vendor/cmock/vendor/unity/test/rakefile_helper.rb +1 -0
  807. data/vendor/cmock/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  808. data/vendor/cmock/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  809. data/vendor/cmock/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  810. data/vendor/cmock/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  811. data/vendor/cmock/vendor/unity/test/tests/test_generate_test_runner.rb +78 -0
  812. data/vendor/cmock/vendor/unity/test/tests/test_unity_test_summary.rb +58 -0
  813. data/vendor/diy/lib/diy/factory.rb +5 -4
  814. data/vendor/diy/lib/diy.rb +5 -4
  815. data/vendor/diy/sample_code/car.rb +5 -4
  816. data/vendor/diy/sample_code/chassis.rb +5 -4
  817. data/vendor/diy/sample_code/diy_example.rb +5 -4
  818. data/vendor/diy/sample_code/engine.rb +5 -4
  819. data/vendor/diy/sample_code/objects.yml +5 -4
  820. data/vendor/diy/test/constructor.rb +5 -4
  821. data/vendor/diy/test/diy_test.rb +5 -4
  822. data/vendor/diy/test/factory_test.rb +5 -4
  823. data/vendor/diy/test/files/broken_construction.yml +5 -4
  824. data/vendor/diy/test/files/cat/cat.rb +5 -4
  825. data/vendor/diy/test/files/cat/extra_conflict.yml +5 -4
  826. data/vendor/diy/test/files/cat/heritage.rb +5 -4
  827. data/vendor/diy/test/files/cat/needs_input.yml +5 -4
  828. data/vendor/diy/test/files/cat/the_cat_lineage.rb +5 -4
  829. data/vendor/diy/test/files/dog/dog_model.rb +5 -4
  830. data/vendor/diy/test/files/dog/dog_presenter.rb +5 -4
  831. data/vendor/diy/test/files/dog/dog_view.rb +5 -4
  832. data/vendor/diy/test/files/dog/file_resolver.rb +5 -4
  833. data/vendor/diy/test/files/dog/other_thing.rb +5 -4
  834. data/vendor/diy/test/files/dog/simple.yml +5 -4
  835. data/vendor/diy/test/files/donkey/foo/bar/qux.rb +5 -4
  836. data/vendor/diy/test/files/donkey/foo.rb +5 -4
  837. data/vendor/diy/test/files/factory/beef.rb +5 -4
  838. data/vendor/diy/test/files/factory/dog.rb +5 -4
  839. data/vendor/diy/test/files/factory/factory.yml +5 -4
  840. data/vendor/diy/test/files/factory/farm/llama.rb +5 -4
  841. data/vendor/diy/test/files/factory/farm/pork.rb +5 -4
  842. data/vendor/diy/test/files/factory/kitten.rb +5 -4
  843. data/vendor/diy/test/files/fud/objects.yml +5 -4
  844. data/vendor/diy/test/files/fud/toy.rb +5 -4
  845. data/vendor/diy/test/files/functions/attached_things_builder.rb +5 -4
  846. data/vendor/diy/test/files/functions/invalid_method.yml +5 -4
  847. data/vendor/diy/test/files/functions/method_extractor.rb +5 -4
  848. data/vendor/diy/test/files/functions/nonsingleton_objects.yml +5 -4
  849. data/vendor/diy/test/files/functions/objects.yml +5 -4
  850. data/vendor/diy/test/files/functions/thing.rb +5 -4
  851. data/vendor/diy/test/files/functions/thing_builder.rb +5 -4
  852. data/vendor/diy/test/files/functions/things_builder.rb +5 -4
  853. data/vendor/diy/test/files/gnu/objects.yml +5 -4
  854. data/vendor/diy/test/files/gnu/thinger.rb +5 -4
  855. data/vendor/diy/test/files/goat/base.rb +5 -4
  856. data/vendor/diy/test/files/goat/can.rb +5 -4
  857. data/vendor/diy/test/files/goat/goat.rb +5 -4
  858. data/vendor/diy/test/files/goat/objects.yml +5 -4
  859. data/vendor/diy/test/files/goat/paper.rb +5 -4
  860. data/vendor/diy/test/files/goat/plane.rb +5 -4
  861. data/vendor/diy/test/files/goat/shirt.rb +5 -4
  862. data/vendor/diy/test/files/goat/wings.rb +5 -4
  863. data/vendor/diy/test/files/horse/holder_thing.rb +5 -4
  864. data/vendor/diy/test/files/horse/objects.yml +5 -4
  865. data/vendor/diy/test/files/namespace/animal/bird.rb +5 -4
  866. data/vendor/diy/test/files/namespace/animal/cat.rb +5 -4
  867. data/vendor/diy/test/files/namespace/animal/reptile/hardshell/turtle.rb +5 -4
  868. data/vendor/diy/test/files/namespace/animal/reptile/lizard.rb +5 -4
  869. data/vendor/diy/test/files/namespace/bad_module_specified.yml +5 -4
  870. data/vendor/diy/test/files/namespace/class_name_combine.yml +5 -4
  871. data/vendor/diy/test/files/namespace/no_module_specified.yml +5 -4
  872. data/vendor/diy/test/files/namespace/objects.yml +5 -4
  873. data/vendor/diy/test/files/namespace/road.rb +5 -4
  874. data/vendor/diy/test/files/namespace/sky.rb +5 -4
  875. data/vendor/diy/test/files/namespace/subcontext.yml +5 -4
  876. data/vendor/diy/test/files/non_singleton/air.rb +5 -4
  877. data/vendor/diy/test/files/non_singleton/fat_cat.rb +5 -4
  878. data/vendor/diy/test/files/non_singleton/objects.yml +5 -4
  879. data/vendor/diy/test/files/non_singleton/pig.rb +5 -4
  880. data/vendor/diy/test/files/non_singleton/thread_spinner.rb +5 -4
  881. data/vendor/diy/test/files/non_singleton/tick.rb +5 -4
  882. data/vendor/diy/test/files/non_singleton/yard.rb +5 -4
  883. data/vendor/diy/test/files/yak/core_model.rb +5 -4
  884. data/vendor/diy/test/files/yak/core_presenter.rb +5 -4
  885. data/vendor/diy/test/files/yak/core_view.rb +5 -4
  886. data/vendor/diy/test/files/yak/data_source.rb +5 -4
  887. data/vendor/diy/test/files/yak/fringe_model.rb +5 -4
  888. data/vendor/diy/test/files/yak/fringe_presenter.rb +5 -4
  889. data/vendor/diy/test/files/yak/fringe_view.rb +5 -4
  890. data/vendor/diy/test/files/yak/giant_squid.rb +5 -4
  891. data/vendor/diy/test/files/yak/krill.rb +5 -4
  892. data/vendor/diy/test/files/yak/my_objects.yml +5 -4
  893. data/vendor/diy/test/files/yak/sub_sub_context_test.yml +5 -4
  894. data/vendor/diy/test/test_helper.rb +5 -4
  895. data/vendor/unity/auto/generate_module.rb +4 -4
  896. data/vendor/unity/auto/generate_test_runner.rb +5 -1
  897. data/vendor/unity/docs/UnityHelperScriptsGuide.md +9 -0
  898. data/vendor/unity/test/spec/generate_module_naming_spec.rb +38 -0
  899. data/vendor/unity/test/testdata/spi/MockConfig.h +19 -0
  900. data/vendor/unity/test/testdata/testRunnerGeneratorWithSameNamedMocks.c +42 -0
  901. data/vendor/unity/test/testdata/uart/MockConfig.h +19 -0
  902. data/vendor/unity/test/tests/test_generate_test_runner.rb +29 -0
  903. metadata +770 -287
  904. data/assets/tests_with_fallback_conditionals/src/conditional_module.c +0 -18
  905. data/bin/actions_wrapper.rb +0 -51
  906. data/docs/mkdocs/assets/images/ceedling-logo-circle.png +0 -0
  907. data/docs/mkdocs/assets/images/ceedling.svg +0 -90
  908. data/docs/mkdocs/assets/images/favicon.png +0 -0
  909. data/docs/mkdocs/assets/stylesheets/admonitions.css +0 -152
  910. data/docs/mkdocs/assets/stylesheets/fixes-local.css +0 -15
  911. data/docs/mkdocs/assets/stylesheets/styling.css +0 -102
  912. data/docs/mkdocs/configuration/environment-vars.md +0 -14
  913. data/docs/mkdocs/configuration/global-collections.md +0 -156
  914. data/docs/mkdocs/configuration/index.md +0 -75
  915. data/docs/mkdocs/configuration/loading.md +0 -89
  916. data/docs/mkdocs/configuration/mixins.md +0 -607
  917. data/docs/mkdocs/configuration/parallel-builds.md +0 -97
  918. data/docs/mkdocs/configuration/project-file.md +0 -216
  919. data/docs/mkdocs/configuration/reference/cexception.md +0 -35
  920. data/docs/mkdocs/configuration/reference/cmock.md +0 -106
  921. data/docs/mkdocs/configuration/reference/defines.md +0 -352
  922. data/docs/mkdocs/configuration/reference/environment.md +0 -55
  923. data/docs/mkdocs/configuration/reference/extension.md +0 -63
  924. data/docs/mkdocs/configuration/reference/files.md +0 -154
  925. data/docs/mkdocs/configuration/reference/flags.md +0 -296
  926. data/docs/mkdocs/configuration/reference/index.md +0 -176
  927. data/docs/mkdocs/configuration/reference/libraries.md +0 -82
  928. data/docs/mkdocs/configuration/reference/mixins.md +0 -24
  929. data/docs/mkdocs/configuration/reference/partials.md +0 -38
  930. data/docs/mkdocs/configuration/reference/paths.md +0 -276
  931. data/docs/mkdocs/configuration/reference/plugins.md +0 -60
  932. data/docs/mkdocs/configuration/reference/project.md +0 -333
  933. data/docs/mkdocs/configuration/reference/release-build.md +0 -62
  934. data/docs/mkdocs/configuration/reference/test-build.md +0 -55
  935. data/docs/mkdocs/configuration/reference/test-runner.md +0 -61
  936. data/docs/mkdocs/configuration/reference/tools.md +0 -457
  937. data/docs/mkdocs/configuration/reference/unity.md +0 -49
  938. data/docs/mkdocs/configuration/which-ceedling.md +0 -77
  939. data/docs/mkdocs/development/index.md +0 -61
  940. data/docs/mkdocs/development/plugins/configuration.md +0 -164
  941. data/docs/mkdocs/development/plugins/index.md +0 -84
  942. data/docs/mkdocs/development/plugins/plugin-subclass.md +0 -513
  943. data/docs/mkdocs/development/plugins/rake-tasks.md +0 -54
  944. data/docs/mkdocs/development/workflow.md +0 -284
  945. data/docs/mkdocs/getting-started/command-line.md +0 -477
  946. data/docs/mkdocs/getting-started/example-projects/cipher-quest.md +0 -65
  947. data/docs/mkdocs/getting-started/example-projects/index.md +0 -49
  948. data/docs/mkdocs/getting-started/example-projects/temp-sensor.md +0 -60
  949. data/docs/mkdocs/getting-started/example-projects/wondrous-forest.md +0 -45
  950. data/docs/mkdocs/getting-started/index.md +0 -41
  951. data/docs/mkdocs/getting-started/installation.md +0 -179
  952. data/docs/mkdocs/getting-started/quick-start.md +0 -86
  953. data/docs/mkdocs/help.md +0 -49
  954. data/docs/mkdocs/index.md +0 -222
  955. data/docs/mkdocs/overview/build-system.md +0 -115
  956. data/docs/mkdocs/overview/index.md +0 -29
  957. data/docs/mkdocs/overview/test-environments.md +0 -33
  958. data/docs/mkdocs/overview/tools-and-frameworks.md +0 -115
  959. data/docs/mkdocs/plugins/beep.md +0 -134
  960. data/docs/mkdocs/plugins/bullseye.md +0 -83
  961. data/docs/mkdocs/plugins/command-hooks.md +0 -268
  962. data/docs/mkdocs/plugins/compile-commands-json-db.md +0 -42
  963. data/docs/mkdocs/plugins/cppcheck.md +0 -377
  964. data/docs/mkdocs/plugins/dependencies.md +0 -310
  965. data/docs/mkdocs/plugins/fff.md +0 -247
  966. data/docs/mkdocs/plugins/gcov/examples.md +0 -92
  967. data/docs/mkdocs/plugins/gcov/gcovr.md +0 -526
  968. data/docs/mkdocs/plugins/gcov/index.md +0 -74
  969. data/docs/mkdocs/plugins/gcov/overview.md +0 -145
  970. data/docs/mkdocs/plugins/gcov/reportgenerator.md +0 -246
  971. data/docs/mkdocs/plugins/gcov/reporting.md +0 -147
  972. data/docs/mkdocs/plugins/gcov/setup.md +0 -232
  973. data/docs/mkdocs/plugins/gcov/tool-versions.md +0 -60
  974. data/docs/mkdocs/plugins/gcov/troubleshooting.md +0 -78
  975. data/docs/mkdocs/plugins/index.md +0 -261
  976. data/docs/mkdocs/plugins/module-generator.md +0 -267
  977. data/docs/mkdocs/plugins/report-build-warnings-log.md +0 -42
  978. data/docs/mkdocs/plugins/report-tests-gtestlike-stdout.md +0 -98
  979. data/docs/mkdocs/plugins/report-tests-ide-stdout.md +0 -63
  980. data/docs/mkdocs/plugins/report-tests-log-factory.md +0 -454
  981. data/docs/mkdocs/plugins/report-tests-pretty-stdout.md +0 -56
  982. data/docs/mkdocs/plugins/report-tests-raw-output-log.md +0 -52
  983. data/docs/mkdocs/plugins/report-tests-teamcity-stdout.md +0 -96
  984. data/docs/mkdocs/plugins/sample_html_report.png +0 -0
  985. data/docs/mkdocs/plugins/valgrind.md +0 -198
  986. data/docs/mkdocs/project/release-history.md +0 -61
  987. data/docs/mkdocs/project/upgrade.md +0 -85
  988. data/docs/mkdocs/reference/build-directives.md +0 -37
  989. data/docs/mkdocs/reference/command-line.md +0 -323
  990. data/docs/mkdocs/reference/environment-vars.md +0 -60
  991. data/docs/mkdocs/reference/gcov-plugin.md +0 -600
  992. data/docs/mkdocs/reference/global-collections.md +0 -160
  993. data/docs/mkdocs/reference/index.md +0 -65
  994. data/docs/mkdocs/reference/partials-macros.md +0 -79
  995. data/docs/mkdocs/reference/project-configuration.md +0 -46
  996. data/docs/mkdocs/snapshot/examples/cipher_quest/README.md +0 -210
  997. data/docs/mkdocs/snapshot/examples/temp_sensor/README.md +0 -283
  998. data/docs/mkdocs/snapshot/examples/wondrous_forest/README.md +0 -92
  999. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults.yml +0 -32
  1000. data/docs/mkdocs/snapshot/plugins/gcov/config/defaults_gcov.rb +0 -136
  1001. data/docs/mkdocs/snapshot.yml +0 -20
  1002. data/docs/mkdocs/testing-guide/build-directives.md +0 -153
  1003. data/docs/mkdocs/testing-guide/conventions.md +0 -616
  1004. data/docs/mkdocs/testing-guide/frameworks.md +0 -192
  1005. data/docs/mkdocs/testing-guide/index.md +0 -80
  1006. data/docs/mkdocs/testing-guide/partials/configuration.md +0 -67
  1007. data/docs/mkdocs/testing-guide/partials/conventions.md +0 -68
  1008. data/docs/mkdocs/testing-guide/partials/directives.md +0 -212
  1009. data/docs/mkdocs/testing-guide/partials/example.md +0 -149
  1010. data/docs/mkdocs/testing-guide/partials/index.md +0 -88
  1011. data/docs/mkdocs/testing-guide/partials/overview.md +0 -81
  1012. data/docs/mkdocs/testing-guide/partials/variables.md +0 -244
  1013. data/docs/mkdocs/testing-guide/test-cases.md +0 -194
  1014. data/docs/mkdocs/testing-guide/test-sample.md +0 -94
  1015. data/docs/mkdocs/testing-guide/test-suite-anatomy.md +0 -58
  1016. data/lib/ceedling/cacheinator.rb +0 -53
  1017. data/lib/ceedling/cacheinator_helper.rb +0 -60
  1018. data/lib/ceedling/dependinator.rb +0 -31
  1019. data/lib/ceedling/makefile.rb +0 -52
  1020. data/lib/ceedling/release_invoker.rb +0 -112
  1021. data/lib/ceedling/rules_release.rake +0 -109
  1022. data/lib/ceedling/rules_tests.rake +0 -40
  1023. data/lib/ceedling/tasks_release.rake +0 -36
  1024. data/plugins/fff/vendor/fff/Makefile +0 -10
  1025. data/plugins/fff/vendor/fff/buildandtest +0 -15
  1026. data/plugins/fff/vendor/fff/examples/Makefile +0 -7
  1027. data/plugins/fff/vendor/fff/examples/driver_testing/Makefile +0 -64
  1028. data/plugins/fff/vendor/fff/examples/driver_testing/driver.c +0 -32
  1029. data/plugins/fff/vendor/fff/examples/driver_testing/driver.h +0 -21
  1030. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.cpp +0 -58
  1031. data/plugins/fff/vendor/fff/examples/driver_testing/driver.test.fff.cpp +0 -70
  1032. data/plugins/fff/vendor/fff/examples/driver_testing/hardware_abstraction.h +0 -25
  1033. data/plugins/fff/vendor/fff/examples/driver_testing/registers.h +0 -23
  1034. data/plugins/fff/vendor/fff/examples/embedded_ui/DISPLAY.h +0 -27
  1035. data/plugins/fff/vendor/fff/examples/embedded_ui/Kata.txt +0 -25
  1036. data/plugins/fff/vendor/fff/examples/embedded_ui/Makefile +0 -67
  1037. data/plugins/fff/vendor/fff/examples/embedded_ui/SYSTEM.h +0 -31
  1038. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.c +0 -56
  1039. data/plugins/fff/vendor/fff/examples/embedded_ui/UI.h +0 -22
  1040. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_ansic.c +0 -191
  1041. data/plugins/fff/vendor/fff/examples/embedded_ui/UI_test_cpp.cpp +0 -144
  1042. data/plugins/fff/vendor/fff/examples/embedded_ui/test_suite_template.c +0 -42
  1043. data/plugins/fff/vendor/fff/gtest/Makefile +0 -22
  1044. data/plugins/fff/vendor/fff/gtest/gtest-all.cc +0 -9118
  1045. data/plugins/fff/vendor/fff/gtest/gtest-main.cc +0 -6
  1046. data/plugins/fff/vendor/fff/gtest/gtest.h +0 -19547
  1047. data/plugins/fff/vendor/fff/test/Makefile +0 -81
  1048. data/plugins/fff/vendor/fff/test/c_test_framework.h +0 -25
  1049. data/plugins/fff/vendor/fff/test/fff_test_c.c +0 -116
  1050. data/plugins/fff/vendor/fff/test/fff_test_cpp.cpp +0 -53
  1051. data/plugins/fff/vendor/fff/test/fff_test_global_c.c +0 -84
  1052. data/plugins/fff/vendor/fff/test/fff_test_global_cpp.cpp +0 -31
  1053. data/plugins/fff/vendor/fff/test/global_fakes.c +0 -21
  1054. data/plugins/fff/vendor/fff/test/global_fakes.h +0 -47
  1055. data/plugins/fff/vendor/fff/test/test_cases.include +0 -276
  1056. data/plugins/report_tests_gtestlike_stdout/assets/template.erb +0 -83
  1057. data/site-local/snapshot/assets/project.yml +0 -404
  1058. data/spec/system/partials_types_header_spec.rb +0 -166
  1059. data/spec/units/configurator_spec.rb +0 -232
  1060. /data/assets/{ceedling → features/ceedling} +0 -0
  1061. /data/assets/{ceedling.cmd → features/ceedling.cmd} +0 -0
  1062. /data/assets/{default_gitignore → features/default_gitignore} +0 -0
  1063. /data/assets/{broken_uncovered_file.c → fixtures/broken_uncovered_file.c} +0 -0
  1064. /data/assets/{example_file.c → fixtures/example_file.c} +0 -0
  1065. /data/assets/{example_file.h → fixtures/example_file.h} +0 -0
  1066. /data/assets/{example_file_call.c → fixtures/example_file_call.c} +0 -0
  1067. /data/assets/{example_file_call.h → fixtures/example_file_call.h} +0 -0
  1068. /data/assets/{example_file_with_statics.c → fixtures/example_file_with_statics.c} +0 -0
  1069. /data/assets/{example_file_with_stdio.c → fixtures/example_file_with_stdio.c} +0 -0
  1070. /data/assets/{example_file_with_stdio.h → fixtures/example_file_with_stdio.h} +0 -0
  1071. /data/assets/{fake_crash_test_fixture.rb → fixtures/fake_crash_test_fixture.rb} +0 -0
  1072. /data/assets/{partial_all_module.h → fixtures/partial_all_module.h} +0 -0
  1073. /data/assets/{run_with_ubsan.rb → fixtures/run_with_ubsan.rb} +0 -0
  1074. /data/assets/{same_dir_pairing_module.c → fixtures/same_dir_pairing_module.c} +0 -0
  1075. /data/assets/{same_dir_pairing_module.h → fixtures/same_dir_pairing_module.h} +0 -0
  1076. /data/assets/{same_dir_pairing_module_func.h → fixtures/same_dir_pairing_module_func.h} +0 -0
  1077. /data/assets/{same_dir_pairing_other.c → fixtures/same_dir_pairing_other.c} +0 -0
  1078. /data/assets/{same_dir_pairing_other.h → fixtures/same_dir_pairing_other.h} +0 -0
  1079. /data/assets/{test_example_file.c → fixtures/test_example_file.c} +0 -0
  1080. /data/assets/{test_example_file_2.c → fixtures/test_example_file_2.c} +0 -0
  1081. /data/assets/{test_example_file_source_include.c → fixtures/test_example_file_source_include.c} +0 -0
  1082. /data/assets/{test_example_file_success.c → fixtures/test_example_file_success.c} +0 -0
  1083. /data/assets/{test_example_file_unity_printf.c → fixtures/test_example_file_unity_printf.c} +0 -0
  1084. /data/assets/{test_example_file_verbose.c → fixtures/test_example_file_verbose.c} +0 -0
  1085. /data/assets/{test_example_file_with_mock.c → fixtures/test_example_file_with_mock.c} +0 -0
  1086. /data/assets/{test_example_file_with_stdio.c → fixtures/test_example_file_with_stdio.c} +0 -0
  1087. /data/assets/{test_example_with_parameterized_tests.c → fixtures/test_example_with_parameterized_tests.c} +0 -0
  1088. /data/assets/{test_partial_all_module.c → fixtures/test_partial_all_module.c} +0 -0
  1089. /data/assets/{test_same_dir_pairing.c → fixtures/test_same_dir_pairing.c} +0 -0
  1090. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_config.h +0 -0
  1091. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/feature_extra.h +0 -0
  1092. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/local_flag_extra.h +0 -0
  1093. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_extra.h +0 -0
  1094. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/nested_wrapper.h +0 -0
  1095. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/project_flag_extra.h +0 -0
  1096. /data/assets/{tests_with_conditional_includes → fixtures/tests_with_conditional_includes}/src/widget_feature.h +0 -0
  1097. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.c +0 -0
  1098. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware.h +0 -0
  1099. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.c +0 -0
  1100. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/src/adc_hardware_configurator.h +0 -0
  1101. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware.c +0 -0
  1102. /data/assets/{tests_with_defines → fixtures/tests_with_defines}/test/test_adc_hardware_special.c +0 -0
  1103. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.c +0 -0
  1104. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/src/unicoder.h +0 -0
  1105. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder.c +0 -0
  1106. /data/assets/{tests_with_encoding → fixtures/tests_with_encoding}/test/test_unicoder_partial.c +0 -0
  1107. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/conditional_module.h +0 -0
  1108. /data/assets/{tests_with_fallback_conditionals → fixtures/tests_with_fallback_conditionals}/src/optional_dep.h +0 -0
  1109. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.c +0 -0
  1110. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/blanks.h +0 -0
  1111. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.c +0 -0
  1112. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/counter.h +0 -0
  1113. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.c +0 -0
  1114. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/src/decorators.h +0 -0
  1115. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_blanks.c +0 -0
  1116. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_counter.c +0 -0
  1117. /data/assets/{tests_with_partials_coverage → fixtures/tests_with_partials_coverage}/test/test_decorators.c +0 -0
  1118. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.c +0 -0
  1119. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareA.h +0 -0
  1120. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.c +0 -0
  1121. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareB.h +0 -0
  1122. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.c +0 -0
  1123. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardwareC.h +0 -0
  1124. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorA.h +0 -0
  1125. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorB.h +0 -0
  1126. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/src/adc_hardware_configuratorC.h +0 -0
  1127. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareA.c +0 -0
  1128. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareB.c +0 -0
  1129. /data/assets/{tests_with_preprocessing → fixtures/tests_with_preprocessing}/test/test_adc_hardwareC.c +0 -0
  1130. /data/assets/{uncovered_example_file.c → fixtures/uncovered_example_file.c} +0 -0
  1131. /data/plugins/bullseye/assets/{template.erb → coverage.template} +0 -0
@@ -0,0 +1,4840 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en" class="no-js">
4
+ <head>
5
+
6
+ <meta charset="utf-8">
7
+ <meta name="viewport" content="width=device-width,initial-scale=1">
8
+
9
+ <meta name="description" content="Test-Centered Build System for C">
10
+
11
+
12
+
13
+
14
+ <link rel="prev" href="index.html">
15
+
16
+
17
+ <link rel="next" href="../fff.html">
18
+
19
+
20
+
21
+
22
+
23
+ <link rel="icon" href="../../assets/images/favicon.png">
24
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.7">
25
+
26
+
27
+
28
+ <title>Licensing - Ceedling</title>
29
+
30
+
31
+
32
+ <link rel="stylesheet" href="../../assets/stylesheets/main.ec1eaa64.min.css">
33
+
34
+
35
+ <link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
49
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
50
+ <style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
51
+
52
+
53
+
54
+ <link rel="stylesheet" href="../../assets/stylesheets/styling.css">
55
+
56
+ <link rel="stylesheet" href="../../assets/stylesheets/admonitions.css">
57
+
58
+ <link rel="stylesheet" href="../../assets/stylesheets/fixes-local.css">
59
+
60
+ <script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
61
+
62
+
63
+
64
+
65
+
66
+ </head>
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="green" data-md-color-accent="deep_purple">
77
+
78
+
79
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
80
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
81
+ <label class="md-overlay" for="__drawer"></label>
82
+ <div data-md-component="skip">
83
+
84
+
85
+ <a href="#licensing" class="md-skip">
86
+ Skip to content
87
+ </a>
88
+
89
+ </div>
90
+ <div data-md-component="announce">
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
+ </div>
103
+
104
+ <div data-md-color-scheme="default" data-md-component="outdated" hidden>
105
+
106
+ <aside class="md-banner md-banner--warning">
107
+ <div class="md-banner__inner md-grid md-typeset">
108
+
109
+
110
+ You are not viewing the latest version.
111
+ <a href="../../..">
112
+ <strong>Click here to go to latest.</strong>
113
+ </a>
114
+
115
+
116
+ </div>
117
+ <script>var el=document.querySelector("[data-md-component=outdated]"),base=new URL("../.."),outdated=__md_get("__outdated",sessionStorage,base);!0===outdated&&el&&(el.hidden=!1)</script>
118
+ </aside>
119
+
120
+ </div>
121
+
122
+
123
+
124
+
125
+ <header class="md-header" data-md-component="header">
126
+ <nav class="md-header__inner md-grid" aria-label="Header">
127
+ <a href="../../index.html" title="Ceedling" class="md-header__button md-logo" aria-label="Ceedling" data-md-component="logo">
128
+
129
+
130
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
131
+
132
+ </a>
133
+ <label class="md-header__button md-icon" for="__drawer">
134
+
135
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
136
+ </label>
137
+ <div class="md-header__title" data-md-component="header-title">
138
+ <div class="md-header__ellipsis">
139
+ <div class="md-header__topic">
140
+ <span class="md-ellipsis">
141
+ Ceedling
142
+ </span>
143
+ </div>
144
+ <div class="md-header__topic" data-md-component="header-topic">
145
+ <span class="md-ellipsis">
146
+
147
+ Licensing
148
+
149
+ </span>
150
+ </div>
151
+ </div>
152
+ </div>
153
+
154
+
155
+ <form class="md-header__option" data-md-component="palette">
156
+
157
+
158
+
159
+
160
+ <input class="md-option" data-md-color-media="" data-md-color-scheme="default" data-md-color-primary="green" data-md-color-accent="deep_purple" aria-hidden="true" type="radio" name="__palette" id="__palette_0">
161
+
162
+
163
+ </form>
164
+
165
+
166
+
167
+ <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
168
+
169
+
170
+
171
+
172
+ <div class="md-header__source">
173
+ <a href="https://github.com/ThrowTheSwitch/Ceedling" title="Go to repository" class="md-source" data-md-component="source">
174
+ <div class="md-source__icon md-icon">
175
+
176
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
177
+ </div>
178
+ <div class="md-source__repository">
179
+ ThrowTheSwitch/Ceedling
180
+ </div>
181
+ </a>
182
+ </div>
183
+
184
+ </nav>
185
+
186
+ </header>
187
+
188
+ <div class="md-container" data-md-component="container">
189
+
190
+
191
+
192
+
193
+
194
+ <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
195
+ <div class="md-grid">
196
+ <ul class="md-tabs__list">
197
+
198
+
199
+
200
+
201
+
202
+
203
+ <li class="md-tabs__item">
204
+ <a href="../../index.html" class="md-tabs__link">
205
+
206
+
207
+
208
+
209
+
210
+ Home
211
+
212
+ </a>
213
+ </li>
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+ <li class="md-tabs__item">
225
+ <a href="../../overview/index.html" class="md-tabs__link">
226
+
227
+
228
+
229
+
230
+
231
+ Overview
232
+
233
+ </a>
234
+ </li>
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+ <li class="md-tabs__item">
247
+ <a href="../../getting-started/index.html" class="md-tabs__link">
248
+
249
+
250
+
251
+
252
+
253
+ Getting Started
254
+
255
+ </a>
256
+ </li>
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ <li class="md-tabs__item">
269
+ <a href="../../testing-guide/index.html" class="md-tabs__link">
270
+
271
+
272
+
273
+
274
+
275
+ Testing Guide
276
+
277
+ </a>
278
+ </li>
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+ <li class="md-tabs__item">
291
+ <a href="../../configuration/index.html" class="md-tabs__link">
292
+
293
+
294
+
295
+
296
+
297
+ Configuration
298
+
299
+ </a>
300
+ </li>
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+ <li class="md-tabs__item md-tabs__item--active">
315
+ <a href="../index.html" class="md-tabs__link">
316
+
317
+
318
+
319
+
320
+
321
+ Plugins
322
+
323
+ </a>
324
+ </li>
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+ <li class="md-tabs__item">
337
+ <a href="../../reference/index.html" class="md-tabs__link">
338
+
339
+
340
+
341
+
342
+
343
+ Reference
344
+
345
+ </a>
346
+ </li>
347
+
348
+
349
+
350
+
351
+
352
+
353
+
354
+
355
+
356
+
357
+
358
+ <li class="md-tabs__item">
359
+ <a href="../../project/index.html" class="md-tabs__link">
360
+
361
+
362
+
363
+
364
+
365
+ Releases
366
+
367
+ </a>
368
+ </li>
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+ <li class="md-tabs__item">
379
+ <a href="../../help.html" class="md-tabs__link">
380
+
381
+
382
+
383
+
384
+
385
+ Help
386
+
387
+ </a>
388
+ </li>
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+ <li class="md-tabs__item">
400
+ <a href="../../development/index.html" class="md-tabs__link">
401
+
402
+
403
+
404
+
405
+
406
+ Development
407
+
408
+ </a>
409
+ </li>
410
+
411
+
412
+
413
+
414
+ </ul>
415
+ </div>
416
+ </nav>
417
+
418
+
419
+
420
+ <main class="md-main" data-md-component="main">
421
+ <div class="md-main__inner md-grid">
422
+
423
+
424
+
425
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
426
+ <div class="md-sidebar__scrollwrap">
427
+ <div class="md-sidebar__inner">
428
+
429
+
430
+
431
+
432
+
433
+
434
+ <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
435
+ <label class="md-nav__title" for="__drawer">
436
+ <a href="../../index.html" title="Ceedling" class="md-nav__button md-logo" aria-label="Ceedling" data-md-component="logo">
437
+
438
+
439
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
440
+
441
+ </a>
442
+ Ceedling
443
+ </label>
444
+
445
+ <div class="md-nav__source">
446
+ <a href="https://github.com/ThrowTheSwitch/Ceedling" title="Go to repository" class="md-source" data-md-component="source">
447
+ <div class="md-source__icon md-icon">
448
+
449
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1 244 40.5c-5.4-5.5-12.8-8.5-20.4-8.5s-15 3-20.4 8.4L162.5 81l51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.3 199v121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4l195.6 195.7c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4l194.7-194.7c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4"/></svg>
450
+ </div>
451
+ <div class="md-source__repository">
452
+ ThrowTheSwitch/Ceedling
453
+ </div>
454
+ </a>
455
+ </div>
456
+
457
+ <ul class="md-nav__list" data-md-scrollfix>
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+ <li class="md-nav__item">
466
+ <a href="../../index.html" class="md-nav__link">
467
+
468
+
469
+
470
+ <span class="md-ellipsis">
471
+
472
+
473
+ Home
474
+
475
+
476
+
477
+ </span>
478
+
479
+
480
+
481
+ </a>
482
+ </li>
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+ <li class="md-nav__item md-nav__item--nested">
515
+
516
+
517
+
518
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
519
+
520
+
521
+ <div class="md-nav__link md-nav__container">
522
+ <a href="../../overview/index.html" class="md-nav__link ">
523
+
524
+
525
+
526
+ <span class="md-ellipsis">
527
+
528
+
529
+ Overview
530
+
531
+
532
+
533
+ </span>
534
+
535
+
536
+
537
+ </a>
538
+
539
+
540
+ <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
541
+ <span class="md-nav__icon md-icon"></span>
542
+ </label>
543
+
544
+ </div>
545
+
546
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
547
+ <label class="md-nav__title" for="__nav_2">
548
+ <span class="md-nav__icon md-icon"></span>
549
+
550
+
551
+ Overview
552
+
553
+
554
+ </label>
555
+ <ul class="md-nav__list" data-md-scrollfix>
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+ <li class="md-nav__item">
566
+ <a href="../../overview/build-system.html" class="md-nav__link">
567
+
568
+
569
+
570
+ <span class="md-ellipsis">
571
+
572
+
573
+ Build System
574
+
575
+
576
+
577
+ </span>
578
+
579
+
580
+
581
+ </a>
582
+ </li>
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+ <li class="md-nav__item">
594
+ <a href="../../overview/tools-and-frameworks.html" class="md-nav__link">
595
+
596
+
597
+
598
+ <span class="md-ellipsis">
599
+
600
+
601
+ Tools & Frameworks
602
+
603
+
604
+
605
+ </span>
606
+
607
+
608
+
609
+ </a>
610
+ </li>
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+ <li class="md-nav__item">
622
+ <a href="../../overview/test-environments.html" class="md-nav__link">
623
+
624
+
625
+
626
+ <span class="md-ellipsis">
627
+
628
+
629
+ Test Environments
630
+
631
+
632
+
633
+ </span>
634
+
635
+
636
+
637
+ </a>
638
+ </li>
639
+
640
+
641
+
642
+
643
+ </ul>
644
+ </nav>
645
+
646
+ </li>
647
+
648
+
649
+
650
+
651
+
652
+
653
+
654
+
655
+
656
+
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+ <li class="md-nav__item md-nav__item--nested">
683
+
684
+
685
+
686
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
687
+
688
+
689
+ <div class="md-nav__link md-nav__container">
690
+ <a href="../../getting-started/index.html" class="md-nav__link ">
691
+
692
+
693
+
694
+ <span class="md-ellipsis">
695
+
696
+
697
+ Getting Started
698
+
699
+
700
+
701
+ </span>
702
+
703
+
704
+
705
+ </a>
706
+
707
+
708
+ <label class="md-nav__link " for="__nav_3" id="__nav_3_label" tabindex="0">
709
+ <span class="md-nav__icon md-icon"></span>
710
+ </label>
711
+
712
+ </div>
713
+
714
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
715
+ <label class="md-nav__title" for="__nav_3">
716
+ <span class="md-nav__icon md-icon"></span>
717
+
718
+
719
+ Getting Started
720
+
721
+
722
+ </label>
723
+ <ul class="md-nav__list" data-md-scrollfix>
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+ <li class="md-nav__item">
734
+ <a href="../../getting-started/quick-start.html" class="md-nav__link">
735
+
736
+
737
+
738
+ <span class="md-ellipsis">
739
+
740
+
741
+ Quick Start
742
+
743
+
744
+
745
+ </span>
746
+
747
+
748
+
749
+ </a>
750
+ </li>
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+ <li class="md-nav__item">
762
+ <a href="../../getting-started/installation.html" class="md-nav__link">
763
+
764
+
765
+
766
+ <span class="md-ellipsis">
767
+
768
+
769
+ Installation
770
+
771
+
772
+
773
+ </span>
774
+
775
+
776
+
777
+ </a>
778
+ </li>
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+ <li class="md-nav__item">
790
+ <a href="../../getting-started/command-line.html" class="md-nav__link">
791
+
792
+
793
+
794
+ <span class="md-ellipsis">
795
+
796
+
797
+ Command Line
798
+
799
+
800
+
801
+ </span>
802
+
803
+
804
+
805
+ </a>
806
+ </li>
807
+
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+ <li class="md-nav__item">
818
+ <a href="../../getting-started/builds.html" class="md-nav__link">
819
+
820
+
821
+
822
+ <span class="md-ellipsis">
823
+
824
+
825
+ Builds
826
+
827
+
828
+
829
+ </span>
830
+
831
+
832
+
833
+ </a>
834
+ </li>
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+ <li class="md-nav__item md-nav__item--nested">
868
+
869
+
870
+
871
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3_6" >
872
+
873
+
874
+ <div class="md-nav__link md-nav__container">
875
+ <a href="../../getting-started/example-projects/index.html" class="md-nav__link ">
876
+
877
+
878
+
879
+ <span class="md-ellipsis">
880
+
881
+
882
+ Example Projects
883
+
884
+
885
+
886
+ </span>
887
+
888
+
889
+
890
+ </a>
891
+
892
+
893
+ <label class="md-nav__link " for="__nav_3_6" id="__nav_3_6_label" tabindex="0">
894
+ <span class="md-nav__icon md-icon"></span>
895
+ </label>
896
+
897
+ </div>
898
+
899
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_3_6_label" aria-expanded="false">
900
+ <label class="md-nav__title" for="__nav_3_6">
901
+ <span class="md-nav__icon md-icon"></span>
902
+
903
+
904
+ Example Projects
905
+
906
+
907
+ </label>
908
+ <ul class="md-nav__list" data-md-scrollfix>
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+ <li class="md-nav__item">
919
+ <a href="../../getting-started/example-projects/temp-sensor.html" class="md-nav__link">
920
+
921
+
922
+
923
+ <span class="md-ellipsis">
924
+
925
+
926
+ Temp Sensor
927
+
928
+
929
+
930
+ </span>
931
+
932
+
933
+
934
+ </a>
935
+ </li>
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+ <li class="md-nav__item">
947
+ <a href="../../getting-started/example-projects/wondrous-forest.html" class="md-nav__link">
948
+
949
+
950
+
951
+ <span class="md-ellipsis">
952
+
953
+
954
+ Wondrous Forest
955
+
956
+
957
+
958
+ </span>
959
+
960
+
961
+
962
+ </a>
963
+ </li>
964
+
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+
973
+
974
+ <li class="md-nav__item">
975
+ <a href="../../getting-started/example-projects/cipher-quest.html" class="md-nav__link">
976
+
977
+
978
+
979
+ <span class="md-ellipsis">
980
+
981
+
982
+ Cipher Quest
983
+
984
+
985
+
986
+ </span>
987
+
988
+
989
+
990
+ </a>
991
+ </li>
992
+
993
+
994
+
995
+
996
+ </ul>
997
+ </nav>
998
+
999
+ </li>
1000
+
1001
+
1002
+
1003
+
1004
+ </ul>
1005
+ </nav>
1006
+
1007
+ </li>
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+ <li class="md-nav__item md-nav__item--nested">
1048
+
1049
+
1050
+
1051
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
1052
+
1053
+
1054
+ <div class="md-nav__link md-nav__container">
1055
+ <a href="../../testing-guide/index.html" class="md-nav__link ">
1056
+
1057
+
1058
+
1059
+ <span class="md-ellipsis">
1060
+
1061
+
1062
+ Testing Guide
1063
+
1064
+
1065
+
1066
+ </span>
1067
+
1068
+
1069
+
1070
+ </a>
1071
+
1072
+
1073
+ <label class="md-nav__link " for="__nav_4" id="__nav_4_label" tabindex="0">
1074
+ <span class="md-nav__icon md-icon"></span>
1075
+ </label>
1076
+
1077
+ </div>
1078
+
1079
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
1080
+ <label class="md-nav__title" for="__nav_4">
1081
+ <span class="md-nav__icon md-icon"></span>
1082
+
1083
+
1084
+ Testing Guide
1085
+
1086
+
1087
+ </label>
1088
+ <ul class="md-nav__list" data-md-scrollfix>
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+ <li class="md-nav__item">
1099
+ <a href="../../testing-guide/test-cases.html" class="md-nav__link">
1100
+
1101
+
1102
+
1103
+ <span class="md-ellipsis">
1104
+
1105
+
1106
+ How Does a Test Case Work?
1107
+
1108
+
1109
+
1110
+ </span>
1111
+
1112
+
1113
+
1114
+ </a>
1115
+ </li>
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+
1126
+ <li class="md-nav__item">
1127
+ <a href="../../testing-guide/test-sample.html" class="md-nav__link">
1128
+
1129
+
1130
+
1131
+ <span class="md-ellipsis">
1132
+
1133
+
1134
+ Commented Sample Test File
1135
+
1136
+
1137
+
1138
+ </span>
1139
+
1140
+
1141
+
1142
+ </a>
1143
+ </li>
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+ <li class="md-nav__item">
1155
+ <a href="../../testing-guide/test-suite-anatomy.html" class="md-nav__link">
1156
+
1157
+
1158
+
1159
+ <span class="md-ellipsis">
1160
+
1161
+
1162
+ Anatomy of a Test Suite
1163
+
1164
+
1165
+
1166
+ </span>
1167
+
1168
+
1169
+
1170
+ </a>
1171
+ </li>
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+ <li class="md-nav__item">
1183
+ <a href="../../testing-guide/conventions.html" class="md-nav__link">
1184
+
1185
+
1186
+
1187
+ <span class="md-ellipsis">
1188
+
1189
+
1190
+ Conventions & Behaviors
1191
+
1192
+
1193
+
1194
+ </span>
1195
+
1196
+
1197
+
1198
+ </a>
1199
+ </li>
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+ <li class="md-nav__item">
1211
+ <a href="../../testing-guide/frameworks.html" class="md-nav__link">
1212
+
1213
+
1214
+
1215
+ <span class="md-ellipsis">
1216
+
1217
+
1218
+ Unity, CMock & CException
1219
+
1220
+
1221
+
1222
+ </span>
1223
+
1224
+
1225
+
1226
+ </a>
1227
+ </li>
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+ <li class="md-nav__item md-nav__item--nested">
1267
+
1268
+
1269
+
1270
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4_7" >
1271
+
1272
+
1273
+ <div class="md-nav__link md-nav__container">
1274
+ <a href="../../testing-guide/partials/index.html" class="md-nav__link ">
1275
+
1276
+
1277
+
1278
+ <span class="md-ellipsis">
1279
+
1280
+
1281
+ Partials
1282
+
1283
+
1284
+
1285
+ </span>
1286
+
1287
+
1288
+
1289
+ </a>
1290
+
1291
+
1292
+ <label class="md-nav__link " for="__nav_4_7" id="__nav_4_7_label" tabindex="0">
1293
+ <span class="md-nav__icon md-icon"></span>
1294
+ </label>
1295
+
1296
+ </div>
1297
+
1298
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_4_7_label" aria-expanded="false">
1299
+ <label class="md-nav__title" for="__nav_4_7">
1300
+ <span class="md-nav__icon md-icon"></span>
1301
+
1302
+
1303
+ Partials
1304
+
1305
+
1306
+ </label>
1307
+ <ul class="md-nav__list" data-md-scrollfix>
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+ <li class="md-nav__item">
1318
+ <a href="../../testing-guide/partials/overview.html" class="md-nav__link">
1319
+
1320
+
1321
+
1322
+ <span class="md-ellipsis">
1323
+
1324
+
1325
+ What Is a Partial?
1326
+
1327
+
1328
+
1329
+ </span>
1330
+
1331
+
1332
+
1333
+ </a>
1334
+ </li>
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+ <li class="md-nav__item">
1346
+ <a href="../../testing-guide/partials/configuration.html" class="md-nav__link">
1347
+
1348
+
1349
+
1350
+ <span class="md-ellipsis">
1351
+
1352
+
1353
+ Configuration
1354
+
1355
+
1356
+
1357
+ </span>
1358
+
1359
+
1360
+
1361
+ </a>
1362
+ </li>
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+ <li class="md-nav__item">
1374
+ <a href="../../testing-guide/partials/example.html" class="md-nav__link">
1375
+
1376
+
1377
+
1378
+ <span class="md-ellipsis">
1379
+
1380
+
1381
+ Walk-Through Example
1382
+
1383
+
1384
+
1385
+ </span>
1386
+
1387
+
1388
+
1389
+ </a>
1390
+ </li>
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+ <li class="md-nav__item">
1402
+ <a href="../../testing-guide/partials/conventions.html" class="md-nav__link">
1403
+
1404
+
1405
+
1406
+ <span class="md-ellipsis">
1407
+
1408
+
1409
+ Conventions & Terminology
1410
+
1411
+
1412
+
1413
+ </span>
1414
+
1415
+
1416
+
1417
+ </a>
1418
+ </li>
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+ <li class="md-nav__item">
1430
+ <a href="../../testing-guide/partials/directives.html" class="md-nav__link">
1431
+
1432
+
1433
+
1434
+ <span class="md-ellipsis">
1435
+
1436
+
1437
+ Partial Directive Macros
1438
+
1439
+
1440
+
1441
+ </span>
1442
+
1443
+
1444
+
1445
+ </a>
1446
+ </li>
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+ <li class="md-nav__item">
1458
+ <a href="../../testing-guide/partials/variables.html" class="md-nav__link">
1459
+
1460
+
1461
+
1462
+ <span class="md-ellipsis">
1463
+
1464
+
1465
+ Accessing Static Variables
1466
+
1467
+
1468
+
1469
+ </span>
1470
+
1471
+
1472
+
1473
+ </a>
1474
+ </li>
1475
+
1476
+
1477
+
1478
+
1479
+ </ul>
1480
+ </nav>
1481
+
1482
+ </li>
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+ <li class="md-nav__item">
1494
+ <a href="../../testing-guide/build-directives.html" class="md-nav__link">
1495
+
1496
+
1497
+
1498
+ <span class="md-ellipsis">
1499
+
1500
+
1501
+ Build Directive Macros
1502
+
1503
+
1504
+
1505
+ </span>
1506
+
1507
+
1508
+
1509
+ </a>
1510
+ </li>
1511
+
1512
+
1513
+
1514
+
1515
+ </ul>
1516
+ </nav>
1517
+
1518
+ </li>
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+ <li class="md-nav__item md-nav__item--nested">
1561
+
1562
+
1563
+
1564
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
1565
+
1566
+
1567
+ <div class="md-nav__link md-nav__container">
1568
+ <a href="../../configuration/index.html" class="md-nav__link ">
1569
+
1570
+
1571
+
1572
+ <span class="md-ellipsis">
1573
+
1574
+
1575
+ Configuration
1576
+
1577
+
1578
+
1579
+ </span>
1580
+
1581
+
1582
+
1583
+ </a>
1584
+
1585
+
1586
+ <label class="md-nav__link " for="__nav_5" id="__nav_5_label" tabindex="0">
1587
+ <span class="md-nav__icon md-icon"></span>
1588
+ </label>
1589
+
1590
+ </div>
1591
+
1592
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
1593
+ <label class="md-nav__title" for="__nav_5">
1594
+ <span class="md-nav__icon md-icon"></span>
1595
+
1596
+
1597
+ Configuration
1598
+
1599
+
1600
+ </label>
1601
+ <ul class="md-nav__list" data-md-scrollfix>
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+ <li class="md-nav__item">
1612
+ <a href="../../configuration/loading.html" class="md-nav__link">
1613
+
1614
+
1615
+
1616
+ <span class="md-ellipsis">
1617
+
1618
+
1619
+ Loading Configuration
1620
+
1621
+
1622
+
1623
+ </span>
1624
+
1625
+
1626
+
1627
+ </a>
1628
+ </li>
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+ <li class="md-nav__item">
1640
+ <a href="../../configuration/mixins.html" class="md-nav__link">
1641
+
1642
+
1643
+
1644
+ <span class="md-ellipsis">
1645
+
1646
+
1647
+ Mixins
1648
+
1649
+
1650
+
1651
+ </span>
1652
+
1653
+
1654
+
1655
+ </a>
1656
+ </li>
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+
1666
+
1667
+ <li class="md-nav__item">
1668
+ <a href="../../configuration/project-file.html" class="md-nav__link">
1669
+
1670
+
1671
+
1672
+ <span class="md-ellipsis">
1673
+
1674
+
1675
+ Project File Basics
1676
+
1677
+
1678
+
1679
+ </span>
1680
+
1681
+
1682
+
1683
+ </a>
1684
+ </li>
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+ <li class="md-nav__item">
1696
+ <a href="../../configuration/parallel-builds.html" class="md-nav__link">
1697
+
1698
+
1699
+
1700
+ <span class="md-ellipsis">
1701
+
1702
+
1703
+ Parallel Builds
1704
+
1705
+
1706
+
1707
+ </span>
1708
+
1709
+
1710
+
1711
+ </a>
1712
+ </li>
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+ <li class="md-nav__item">
1724
+ <a href="../../configuration/environment-vars.html" class="md-nav__link">
1725
+
1726
+
1727
+
1728
+ <span class="md-ellipsis">
1729
+
1730
+
1731
+ Environment Variables
1732
+
1733
+
1734
+
1735
+ </span>
1736
+
1737
+
1738
+
1739
+ </a>
1740
+ </li>
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+ <li class="md-nav__item">
1752
+ <a href="../../configuration/which-ceedling.html" class="md-nav__link">
1753
+
1754
+
1755
+
1756
+ <span class="md-ellipsis">
1757
+
1758
+
1759
+ Which Ceedling
1760
+
1761
+
1762
+
1763
+ </span>
1764
+
1765
+
1766
+
1767
+ </a>
1768
+ </li>
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+ <li class="md-nav__item">
1780
+ <a href="../../configuration/global-collections.html" class="md-nav__link">
1781
+
1782
+
1783
+
1784
+ <span class="md-ellipsis">
1785
+
1786
+
1787
+ Global Collections
1788
+
1789
+
1790
+
1791
+ </span>
1792
+
1793
+
1794
+
1795
+ </a>
1796
+ </li>
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+ <li class="md-nav__item md-nav__item--nested">
1860
+
1861
+
1862
+
1863
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5_9" >
1864
+
1865
+
1866
+ <div class="md-nav__link md-nav__container">
1867
+ <a href="../../configuration/reference/index.html" class="md-nav__link ">
1868
+
1869
+
1870
+
1871
+ <span class="md-ellipsis">
1872
+
1873
+
1874
+ Configuration Reference
1875
+
1876
+
1877
+
1878
+ </span>
1879
+
1880
+
1881
+
1882
+ </a>
1883
+
1884
+
1885
+ <label class="md-nav__link " for="__nav_5_9" id="__nav_5_9_label" tabindex="0">
1886
+ <span class="md-nav__icon md-icon"></span>
1887
+ </label>
1888
+
1889
+ </div>
1890
+
1891
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_5_9_label" aria-expanded="false">
1892
+ <label class="md-nav__title" for="__nav_5_9">
1893
+ <span class="md-nav__icon md-icon"></span>
1894
+
1895
+
1896
+ Configuration Reference
1897
+
1898
+
1899
+ </label>
1900
+ <ul class="md-nav__list" data-md-scrollfix>
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+
1908
+
1909
+
1910
+ <li class="md-nav__item">
1911
+ <a href="../../configuration/reference/project.html" class="md-nav__link">
1912
+
1913
+
1914
+
1915
+ <span class="md-ellipsis">
1916
+
1917
+
1918
+ Global Project Settings
1919
+
1920
+
1921
+
1922
+ </span>
1923
+
1924
+
1925
+
1926
+ </a>
1927
+ </li>
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+ <li class="md-nav__item">
1939
+ <a href="../../configuration/reference/mixins.html" class="md-nav__link">
1940
+
1941
+
1942
+
1943
+ <span class="md-ellipsis">
1944
+
1945
+
1946
+ Mixins
1947
+
1948
+
1949
+
1950
+ </span>
1951
+
1952
+
1953
+
1954
+ </a>
1955
+ </li>
1956
+
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+
1966
+ <li class="md-nav__item">
1967
+ <a href="../../configuration/reference/test-build.html" class="md-nav__link">
1968
+
1969
+
1970
+
1971
+ <span class="md-ellipsis">
1972
+
1973
+
1974
+ Test Build Settings
1975
+
1976
+
1977
+
1978
+ </span>
1979
+
1980
+
1981
+
1982
+ </a>
1983
+ </li>
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+ <li class="md-nav__item">
1995
+ <a href="../../configuration/reference/partials.html" class="md-nav__link">
1996
+
1997
+
1998
+
1999
+ <span class="md-ellipsis">
2000
+
2001
+
2002
+ Partials Settings
2003
+
2004
+
2005
+
2006
+ </span>
2007
+
2008
+
2009
+
2010
+ </a>
2011
+ </li>
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+ <li class="md-nav__item">
2023
+ <a href="../../configuration/reference/release-build.html" class="md-nav__link">
2024
+
2025
+
2026
+
2027
+ <span class="md-ellipsis">
2028
+
2029
+
2030
+ Release Build Settings
2031
+
2032
+
2033
+
2034
+ </span>
2035
+
2036
+
2037
+
2038
+ </a>
2039
+ </li>
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+ <li class="md-nav__item">
2051
+ <a href="../../configuration/reference/paths.html" class="md-nav__link">
2052
+
2053
+
2054
+
2055
+ <span class="md-ellipsis">
2056
+
2057
+
2058
+ Search Paths
2059
+
2060
+
2061
+
2062
+ </span>
2063
+
2064
+
2065
+
2066
+ </a>
2067
+ </li>
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+ <li class="md-nav__item">
2079
+ <a href="../../configuration/reference/files.html" class="md-nav__link">
2080
+
2081
+
2082
+
2083
+ <span class="md-ellipsis">
2084
+
2085
+
2086
+ File Collections
2087
+
2088
+
2089
+
2090
+ </span>
2091
+
2092
+
2093
+
2094
+ </a>
2095
+ </li>
2096
+
2097
+
2098
+
2099
+
2100
+
2101
+
2102
+
2103
+
2104
+
2105
+
2106
+ <li class="md-nav__item">
2107
+ <a href="../../configuration/reference/environment.html" class="md-nav__link">
2108
+
2109
+
2110
+
2111
+ <span class="md-ellipsis">
2112
+
2113
+
2114
+ Environment Variables
2115
+
2116
+
2117
+
2118
+ </span>
2119
+
2120
+
2121
+
2122
+ </a>
2123
+ </li>
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+ <li class="md-nav__item">
2135
+ <a href="../../configuration/reference/extension.html" class="md-nav__link">
2136
+
2137
+
2138
+
2139
+ <span class="md-ellipsis">
2140
+
2141
+
2142
+ File Extensions
2143
+
2144
+
2145
+
2146
+ </span>
2147
+
2148
+
2149
+
2150
+ </a>
2151
+ </li>
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+ <li class="md-nav__item">
2163
+ <a href="../../configuration/reference/defines.html" class="md-nav__link">
2164
+
2165
+
2166
+
2167
+ <span class="md-ellipsis">
2168
+
2169
+
2170
+ Defines
2171
+
2172
+
2173
+
2174
+ </span>
2175
+
2176
+
2177
+
2178
+ </a>
2179
+ </li>
2180
+
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+ <li class="md-nav__item">
2191
+ <a href="../../configuration/reference/flags.html" class="md-nav__link">
2192
+
2193
+
2194
+
2195
+ <span class="md-ellipsis">
2196
+
2197
+
2198
+ Compilation & Link Flags
2199
+
2200
+
2201
+
2202
+ </span>
2203
+
2204
+
2205
+
2206
+ </a>
2207
+ </li>
2208
+
2209
+
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+ <li class="md-nav__item">
2219
+ <a href="../../configuration/reference/libraries.html" class="md-nav__link">
2220
+
2221
+
2222
+
2223
+ <span class="md-ellipsis">
2224
+
2225
+
2226
+ Libraries
2227
+
2228
+
2229
+
2230
+ </span>
2231
+
2232
+
2233
+
2234
+ </a>
2235
+ </li>
2236
+
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+
2244
+
2245
+
2246
+ <li class="md-nav__item">
2247
+ <a href="../../configuration/reference/unity.html" class="md-nav__link">
2248
+
2249
+
2250
+
2251
+ <span class="md-ellipsis">
2252
+
2253
+
2254
+ Unity
2255
+
2256
+
2257
+
2258
+ </span>
2259
+
2260
+
2261
+
2262
+ </a>
2263
+ </li>
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+
2272
+
2273
+
2274
+ <li class="md-nav__item">
2275
+ <a href="../../configuration/reference/cmock.html" class="md-nav__link">
2276
+
2277
+
2278
+
2279
+ <span class="md-ellipsis">
2280
+
2281
+
2282
+ CMock
2283
+
2284
+
2285
+
2286
+ </span>
2287
+
2288
+
2289
+
2290
+ </a>
2291
+ </li>
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2302
+ <li class="md-nav__item">
2303
+ <a href="../../configuration/reference/test-runner.html" class="md-nav__link">
2304
+
2305
+
2306
+
2307
+ <span class="md-ellipsis">
2308
+
2309
+
2310
+ Test Runner
2311
+
2312
+
2313
+
2314
+ </span>
2315
+
2316
+
2317
+
2318
+ </a>
2319
+ </li>
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+
2330
+ <li class="md-nav__item">
2331
+ <a href="../../configuration/reference/cexception.html" class="md-nav__link">
2332
+
2333
+
2334
+
2335
+ <span class="md-ellipsis">
2336
+
2337
+
2338
+ CException
2339
+
2340
+
2341
+
2342
+ </span>
2343
+
2344
+
2345
+
2346
+ </a>
2347
+ </li>
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+ <li class="md-nav__item">
2359
+ <a href="../../configuration/reference/plugins.html" class="md-nav__link">
2360
+
2361
+
2362
+
2363
+ <span class="md-ellipsis">
2364
+
2365
+
2366
+ Plugins
2367
+
2368
+
2369
+
2370
+ </span>
2371
+
2372
+
2373
+
2374
+ </a>
2375
+ </li>
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+ <li class="md-nav__item">
2387
+ <a href="../../configuration/reference/tools.html" class="md-nav__link">
2388
+
2389
+
2390
+
2391
+ <span class="md-ellipsis">
2392
+
2393
+
2394
+ Tools
2395
+
2396
+
2397
+
2398
+ </span>
2399
+
2400
+
2401
+
2402
+ </a>
2403
+ </li>
2404
+
2405
+
2406
+
2407
+
2408
+ </ul>
2409
+ </nav>
2410
+
2411
+ </li>
2412
+
2413
+
2414
+
2415
+
2416
+ </ul>
2417
+ </nav>
2418
+
2419
+ </li>
2420
+
2421
+
2422
+
2423
+
2424
+
2425
+
2426
+
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+
2454
+
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+
2469
+
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+
2486
+ <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
2487
+
2488
+
2489
+
2490
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" checked>
2491
+
2492
+
2493
+ <div class="md-nav__link md-nav__container">
2494
+ <a href="../index.html" class="md-nav__link ">
2495
+
2496
+
2497
+
2498
+ <span class="md-ellipsis">
2499
+
2500
+
2501
+ Plugins
2502
+
2503
+
2504
+
2505
+ </span>
2506
+
2507
+
2508
+
2509
+ </a>
2510
+
2511
+
2512
+ <label class="md-nav__link " for="__nav_6" id="__nav_6_label" tabindex="">
2513
+ <span class="md-nav__icon md-icon"></span>
2514
+ </label>
2515
+
2516
+ </div>
2517
+
2518
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="true">
2519
+ <label class="md-nav__title" for="__nav_6">
2520
+ <span class="md-nav__icon md-icon"></span>
2521
+
2522
+
2523
+ Plugins
2524
+
2525
+
2526
+ </label>
2527
+ <ul class="md-nav__list" data-md-scrollfix>
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+ <li class="md-nav__item">
2538
+ <a href="../report-tests-pretty-stdout.html" class="md-nav__link">
2539
+
2540
+
2541
+
2542
+ <span class="md-ellipsis">
2543
+
2544
+
2545
+ Test Report — Pretty
2546
+
2547
+
2548
+
2549
+ </span>
2550
+
2551
+
2552
+
2553
+ </a>
2554
+ </li>
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+
2562
+
2563
+
2564
+
2565
+ <li class="md-nav__item">
2566
+ <a href="../report-tests-ide-stdout.html" class="md-nav__link">
2567
+
2568
+
2569
+
2570
+ <span class="md-ellipsis">
2571
+
2572
+
2573
+ Test Report — IDE
2574
+
2575
+
2576
+
2577
+ </span>
2578
+
2579
+
2580
+
2581
+ </a>
2582
+ </li>
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+ <li class="md-nav__item">
2594
+ <a href="../report-tests-gtestlike-stdout.html" class="md-nav__link">
2595
+
2596
+
2597
+
2598
+ <span class="md-ellipsis">
2599
+
2600
+
2601
+ Test Report — GTest-like
2602
+
2603
+
2604
+
2605
+ </span>
2606
+
2607
+
2608
+
2609
+ </a>
2610
+ </li>
2611
+
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+ <li class="md-nav__item">
2622
+ <a href="../report-tests-teamcity-stdout.html" class="md-nav__link">
2623
+
2624
+
2625
+
2626
+ <span class="md-ellipsis">
2627
+
2628
+
2629
+ Test Report — TeamCity
2630
+
2631
+
2632
+
2633
+ </span>
2634
+
2635
+
2636
+
2637
+ </a>
2638
+ </li>
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+ <li class="md-nav__item">
2650
+ <a href="../report-tests-log-factory.html" class="md-nav__link">
2651
+
2652
+
2653
+
2654
+ <span class="md-ellipsis">
2655
+
2656
+
2657
+ Test Report Log Factory
2658
+
2659
+
2660
+
2661
+ </span>
2662
+
2663
+
2664
+
2665
+ </a>
2666
+ </li>
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+ <li class="md-nav__item">
2678
+ <a href="../report-tests-raw-output-log.html" class="md-nav__link">
2679
+
2680
+
2681
+
2682
+ <span class="md-ellipsis">
2683
+
2684
+
2685
+ Test Report — Raw Output
2686
+
2687
+
2688
+
2689
+ </span>
2690
+
2691
+
2692
+
2693
+ </a>
2694
+ </li>
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+
2703
+
2704
+
2705
+ <li class="md-nav__item">
2706
+ <a href="../report-build-warnings-log.html" class="md-nav__link">
2707
+
2708
+
2709
+
2710
+ <span class="md-ellipsis">
2711
+
2712
+
2713
+ Build Warnings Log
2714
+
2715
+
2716
+
2717
+ </span>
2718
+
2719
+
2720
+
2721
+ </a>
2722
+ </li>
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+
2737
+
2738
+
2739
+
2740
+
2741
+
2742
+
2743
+
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+ <li class="md-nav__item md-nav__item--section md-nav__item--nested">
2769
+
2770
+
2771
+
2772
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_9" >
2773
+
2774
+
2775
+ <div class="md-nav__link md-nav__container">
2776
+ <a href="../gcov/index.html" class="md-nav__link ">
2777
+
2778
+
2779
+
2780
+ <span class="md-ellipsis">
2781
+
2782
+
2783
+ GCov (Coverage)
2784
+
2785
+
2786
+
2787
+ </span>
2788
+
2789
+
2790
+
2791
+ </a>
2792
+
2793
+
2794
+ <label class="md-nav__link " for="__nav_6_9" id="__nav_6_9_label" tabindex="">
2795
+ <span class="md-nav__icon md-icon"></span>
2796
+ </label>
2797
+
2798
+ </div>
2799
+
2800
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_9_label" aria-expanded="false">
2801
+ <label class="md-nav__title" for="__nav_6_9">
2802
+ <span class="md-nav__icon md-icon"></span>
2803
+
2804
+
2805
+ GCov (Coverage)
2806
+
2807
+
2808
+ </label>
2809
+ <ul class="md-nav__list" data-md-scrollfix>
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+ <li class="md-nav__item">
2820
+ <a href="../gcov/overview.html" class="md-nav__link">
2821
+
2822
+
2823
+
2824
+ <span class="md-ellipsis">
2825
+
2826
+
2827
+ Overview
2828
+
2829
+
2830
+
2831
+ </span>
2832
+
2833
+
2834
+
2835
+ </a>
2836
+ </li>
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+ <li class="md-nav__item">
2848
+ <a href="../gcov/tool-versions.html" class="md-nav__link">
2849
+
2850
+
2851
+
2852
+ <span class="md-ellipsis">
2853
+
2854
+
2855
+ Tool Versions
2856
+
2857
+
2858
+
2859
+ </span>
2860
+
2861
+
2862
+
2863
+ </a>
2864
+ </li>
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+ <li class="md-nav__item">
2876
+ <a href="../gcov/setup.html" class="md-nav__link">
2877
+
2878
+
2879
+
2880
+ <span class="md-ellipsis">
2881
+
2882
+
2883
+ Set Up & Configuration
2884
+
2885
+
2886
+
2887
+ </span>
2888
+
2889
+
2890
+
2891
+ </a>
2892
+ </li>
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+ <li class="md-nav__item">
2904
+ <a href="../gcov/examples.html" class="md-nav__link">
2905
+
2906
+
2907
+
2908
+ <span class="md-ellipsis">
2909
+
2910
+
2911
+ Example Usage
2912
+
2913
+
2914
+
2915
+ </span>
2916
+
2917
+
2918
+
2919
+ </a>
2920
+ </li>
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+ <li class="md-nav__item">
2932
+ <a href="../gcov/reporting.html" class="md-nav__link">
2933
+
2934
+
2935
+
2936
+ <span class="md-ellipsis">
2937
+
2938
+
2939
+ Reporting Configuration
2940
+
2941
+
2942
+
2943
+ </span>
2944
+
2945
+
2946
+
2947
+ </a>
2948
+ </li>
2949
+
2950
+
2951
+
2952
+
2953
+
2954
+
2955
+
2956
+
2957
+
2958
+
2959
+ <li class="md-nav__item">
2960
+ <a href="../gcov/gcovr.html" class="md-nav__link">
2961
+
2962
+
2963
+
2964
+ <span class="md-ellipsis">
2965
+
2966
+
2967
+ GCovr Configuration
2968
+
2969
+
2970
+
2971
+ </span>
2972
+
2973
+
2974
+
2975
+ </a>
2976
+ </li>
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+
2984
+
2985
+
2986
+
2987
+ <li class="md-nav__item">
2988
+ <a href="../gcov/reportgenerator.html" class="md-nav__link">
2989
+
2990
+
2991
+
2992
+ <span class="md-ellipsis">
2993
+
2994
+
2995
+ ReportGenerator Configuration
2996
+
2997
+
2998
+
2999
+ </span>
3000
+
3001
+
3002
+
3003
+ </a>
3004
+ </li>
3005
+
3006
+
3007
+
3008
+
3009
+
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+ <li class="md-nav__item">
3016
+ <a href="../gcov/troubleshooting.html" class="md-nav__link">
3017
+
3018
+
3019
+
3020
+ <span class="md-ellipsis">
3021
+
3022
+
3023
+ Advanced & Troubleshooting
3024
+
3025
+
3026
+
3027
+ </span>
3028
+
3029
+
3030
+
3031
+ </a>
3032
+ </li>
3033
+
3034
+
3035
+
3036
+
3037
+ </ul>
3038
+ </nav>
3039
+
3040
+ </li>
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+ <li class="md-nav__item">
3052
+ <a href="../cppcheck.html" class="md-nav__link">
3053
+
3054
+
3055
+
3056
+ <span class="md-ellipsis">
3057
+
3058
+
3059
+ Cppcheck (Static Analysis)
3060
+
3061
+
3062
+
3063
+ </span>
3064
+
3065
+
3066
+
3067
+ </a>
3068
+ </li>
3069
+
3070
+
3071
+
3072
+
3073
+
3074
+
3075
+
3076
+
3077
+
3078
+
3079
+ <li class="md-nav__item">
3080
+ <a href="../valgrind.html" class="md-nav__link">
3081
+
3082
+
3083
+
3084
+ <span class="md-ellipsis">
3085
+
3086
+
3087
+ Valgrind (Memory Analysis)
3088
+
3089
+
3090
+
3091
+ </span>
3092
+
3093
+
3094
+
3095
+ </a>
3096
+ </li>
3097
+
3098
+
3099
+
3100
+
3101
+
3102
+
3103
+
3104
+
3105
+
3106
+
3107
+ <li class="md-nav__item">
3108
+ <a href="../sanitize.html" class="md-nav__link">
3109
+
3110
+
3111
+
3112
+ <span class="md-ellipsis">
3113
+
3114
+
3115
+ Sanitize (ASan, UBSan & Leaks)
3116
+
3117
+
3118
+
3119
+ </span>
3120
+
3121
+
3122
+
3123
+ </a>
3124
+ </li>
3125
+
3126
+
3127
+
3128
+
3129
+
3130
+
3131
+
3132
+
3133
+
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+ <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
3159
+
3160
+
3161
+
3162
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6_13" checked>
3163
+
3164
+
3165
+ <div class="md-nav__link md-nav__container">
3166
+ <a href="index.html" class="md-nav__link ">
3167
+
3168
+
3169
+
3170
+ <span class="md-ellipsis">
3171
+
3172
+
3173
+ Bullseye (Coverage)
3174
+
3175
+
3176
+
3177
+ </span>
3178
+
3179
+
3180
+
3181
+ </a>
3182
+
3183
+
3184
+ <label class="md-nav__link " for="__nav_6_13" id="__nav_6_13_label" tabindex="">
3185
+ <span class="md-nav__icon md-icon"></span>
3186
+ </label>
3187
+
3188
+ </div>
3189
+
3190
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_6_13_label" aria-expanded="true">
3191
+ <label class="md-nav__title" for="__nav_6_13">
3192
+ <span class="md-nav__icon md-icon"></span>
3193
+
3194
+
3195
+ Bullseye (Coverage)
3196
+
3197
+
3198
+ </label>
3199
+ <ul class="md-nav__list" data-md-scrollfix>
3200
+
3201
+
3202
+
3203
+
3204
+
3205
+
3206
+
3207
+
3208
+
3209
+
3210
+
3211
+ <li class="md-nav__item md-nav__item--active">
3212
+
3213
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
3214
+
3215
+
3216
+
3217
+
3218
+
3219
+ <label class="md-nav__link md-nav__link--active" for="__toc">
3220
+
3221
+
3222
+
3223
+ <span class="md-ellipsis">
3224
+
3225
+
3226
+ Licensing
3227
+
3228
+
3229
+
3230
+ </span>
3231
+
3232
+
3233
+
3234
+ <span class="md-nav__icon md-icon"></span>
3235
+ </label>
3236
+
3237
+ <a href="licensing.html" class="md-nav__link md-nav__link--active">
3238
+
3239
+
3240
+
3241
+ <span class="md-ellipsis">
3242
+
3243
+
3244
+ Licensing
3245
+
3246
+
3247
+
3248
+ </span>
3249
+
3250
+
3251
+
3252
+ </a>
3253
+
3254
+
3255
+
3256
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+ <label class="md-nav__title" for="__toc">
3264
+ <span class="md-nav__icon md-icon"></span>
3265
+ Table of contents
3266
+ </label>
3267
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
3268
+
3269
+ <li class="md-nav__item">
3270
+ <a href="#what-you-need" class="md-nav__link">
3271
+ <span class="md-ellipsis">
3272
+
3273
+ What you need
3274
+
3275
+ </span>
3276
+ </a>
3277
+
3278
+ </li>
3279
+
3280
+ <li class="md-nav__item">
3281
+ <a href="#checking-license-status" class="md-nav__link">
3282
+ <span class="md-ellipsis">
3283
+
3284
+ Checking license status
3285
+
3286
+ </span>
3287
+ </a>
3288
+
3289
+ </li>
3290
+
3291
+ <li class="md-nav__item">
3292
+ <a href="#bullseyes-two-licensing-mechanisms" class="md-nav__link">
3293
+ <span class="md-ellipsis">
3294
+
3295
+ Bullseye's two licensing mechanisms
3296
+
3297
+ </span>
3298
+ </a>
3299
+
3300
+ <nav class="md-nav" aria-label="Bullseye&#39;s two licensing mechanisms">
3301
+ <ul class="md-nav__list">
3302
+
3303
+ <li class="md-nav__item">
3304
+ <a href="#node-locked-and-unlimited-licenses" class="md-nav__link">
3305
+ <span class="md-ellipsis">
3306
+
3307
+ Node-locked and unlimited licenses
3308
+
3309
+ </span>
3310
+ </a>
3311
+
3312
+ </li>
3313
+
3314
+ <li class="md-nav__item">
3315
+ <a href="#floating-and-evaluation-licenses" class="md-nav__link">
3316
+ <span class="md-ellipsis">
3317
+
3318
+ Floating and evaluation licenses
3319
+
3320
+ </span>
3321
+ </a>
3322
+
3323
+ </li>
3324
+
3325
+ </ul>
3326
+ </nav>
3327
+
3328
+ </li>
3329
+
3330
+ <li class="md-nav__item">
3331
+ <a href="#using-bullseye-in-a-container" class="md-nav__link">
3332
+ <span class="md-ellipsis">
3333
+
3334
+ Using Bullseye in a container
3335
+
3336
+ </span>
3337
+ </a>
3338
+
3339
+ <nav class="md-nav" aria-label="Using Bullseye in a container">
3340
+ <ul class="md-nav__list">
3341
+
3342
+ <li class="md-nav__item">
3343
+ <a href="#extending-the-image" class="md-nav__link">
3344
+ <span class="md-ellipsis">
3345
+
3346
+ Extending the image
3347
+
3348
+ </span>
3349
+ </a>
3350
+
3351
+ </li>
3352
+
3353
+ <li class="md-nav__item">
3354
+ <a href="#installing-into-a-running-container" class="md-nav__link">
3355
+ <span class="md-ellipsis">
3356
+
3357
+ Installing into a running container
3358
+
3359
+ </span>
3360
+ </a>
3361
+
3362
+ </li>
3363
+
3364
+ </ul>
3365
+ </nav>
3366
+
3367
+ </li>
3368
+
3369
+ <li class="md-nav__item">
3370
+ <a href="#what-this-plugin-does-not-do" class="md-nav__link">
3371
+ <span class="md-ellipsis">
3372
+
3373
+ What this plugin does not do
3374
+
3375
+ </span>
3376
+ </a>
3377
+
3378
+ </li>
3379
+
3380
+ </ul>
3381
+
3382
+ </nav>
3383
+
3384
+ </li>
3385
+
3386
+
3387
+
3388
+
3389
+ </ul>
3390
+ </nav>
3391
+
3392
+ </li>
3393
+
3394
+
3395
+
3396
+
3397
+
3398
+
3399
+
3400
+
3401
+
3402
+
3403
+ <li class="md-nav__item">
3404
+ <a href="../fff.html" class="md-nav__link">
3405
+
3406
+
3407
+
3408
+ <span class="md-ellipsis">
3409
+
3410
+
3411
+ FFF (Fake Functions)
3412
+
3413
+
3414
+
3415
+ </span>
3416
+
3417
+
3418
+
3419
+ </a>
3420
+ </li>
3421
+
3422
+
3423
+
3424
+
3425
+
3426
+
3427
+
3428
+
3429
+
3430
+
3431
+ <li class="md-nav__item">
3432
+ <a href="../command-hooks.html" class="md-nav__link">
3433
+
3434
+
3435
+
3436
+ <span class="md-ellipsis">
3437
+
3438
+
3439
+ Command Hooks
3440
+
3441
+
3442
+
3443
+ </span>
3444
+
3445
+
3446
+
3447
+ </a>
3448
+ </li>
3449
+
3450
+
3451
+
3452
+
3453
+
3454
+
3455
+
3456
+
3457
+
3458
+
3459
+ <li class="md-nav__item">
3460
+ <a href="../compile-commands-json-db.html" class="md-nav__link">
3461
+
3462
+
3463
+
3464
+ <span class="md-ellipsis">
3465
+
3466
+
3467
+ Compile Commands JSON DB
3468
+
3469
+
3470
+
3471
+ </span>
3472
+
3473
+
3474
+
3475
+ </a>
3476
+ </li>
3477
+
3478
+
3479
+
3480
+
3481
+
3482
+
3483
+
3484
+
3485
+
3486
+
3487
+ <li class="md-nav__item">
3488
+ <a href="../beep.html" class="md-nav__link">
3489
+
3490
+
3491
+
3492
+ <span class="md-ellipsis">
3493
+
3494
+
3495
+ Beep
3496
+
3497
+
3498
+
3499
+ </span>
3500
+
3501
+
3502
+
3503
+ </a>
3504
+ </li>
3505
+
3506
+
3507
+
3508
+
3509
+
3510
+
3511
+
3512
+
3513
+
3514
+
3515
+ <li class="md-nav__item">
3516
+ <a href="../module-generator.html" class="md-nav__link">
3517
+
3518
+
3519
+
3520
+ <span class="md-ellipsis">
3521
+
3522
+
3523
+ Module Generator
3524
+
3525
+
3526
+
3527
+ </span>
3528
+
3529
+
3530
+
3531
+ </a>
3532
+ </li>
3533
+
3534
+
3535
+
3536
+
3537
+
3538
+
3539
+
3540
+
3541
+
3542
+
3543
+ <li class="md-nav__item">
3544
+ <a href="../dependencies.html" class="md-nav__link">
3545
+
3546
+
3547
+
3548
+ <span class="md-ellipsis">
3549
+
3550
+
3551
+ Dependencies
3552
+
3553
+
3554
+
3555
+ </span>
3556
+
3557
+
3558
+
3559
+ </a>
3560
+ </li>
3561
+
3562
+
3563
+
3564
+
3565
+ </ul>
3566
+ </nav>
3567
+
3568
+ </li>
3569
+
3570
+
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+
3577
+
3578
+
3579
+
3580
+
3581
+
3582
+
3583
+
3584
+
3585
+
3586
+
3587
+
3588
+
3589
+
3590
+
3591
+
3592
+
3593
+
3594
+
3595
+
3596
+
3597
+
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3604
+
3605
+
3606
+
3607
+
3608
+ <li class="md-nav__item md-nav__item--nested">
3609
+
3610
+
3611
+
3612
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_7" >
3613
+
3614
+
3615
+ <div class="md-nav__link md-nav__container">
3616
+ <a href="../../reference/index.html" class="md-nav__link ">
3617
+
3618
+
3619
+
3620
+ <span class="md-ellipsis">
3621
+
3622
+
3623
+ Reference
3624
+
3625
+
3626
+
3627
+ </span>
3628
+
3629
+
3630
+
3631
+ </a>
3632
+
3633
+
3634
+ <label class="md-nav__link " for="__nav_7" id="__nav_7_label" tabindex="0">
3635
+ <span class="md-nav__icon md-icon"></span>
3636
+ </label>
3637
+
3638
+ </div>
3639
+
3640
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
3641
+ <label class="md-nav__title" for="__nav_7">
3642
+ <span class="md-nav__icon md-icon"></span>
3643
+
3644
+
3645
+ Reference
3646
+
3647
+
3648
+ </label>
3649
+ <ul class="md-nav__list" data-md-scrollfix>
3650
+
3651
+
3652
+
3653
+
3654
+
3655
+
3656
+
3657
+
3658
+
3659
+ <li class="md-nav__item">
3660
+ <a href="../../reference/command-line.html" class="md-nav__link">
3661
+
3662
+
3663
+
3664
+ <span class="md-ellipsis">
3665
+
3666
+
3667
+ Command Line
3668
+
3669
+
3670
+
3671
+ </span>
3672
+
3673
+
3674
+
3675
+ </a>
3676
+ </li>
3677
+
3678
+
3679
+
3680
+
3681
+
3682
+
3683
+
3684
+
3685
+
3686
+
3687
+ <li class="md-nav__item">
3688
+ <a href="../../reference/project-configuration.html" class="md-nav__link">
3689
+
3690
+
3691
+
3692
+ <span class="md-ellipsis">
3693
+
3694
+
3695
+ Project Configuration
3696
+
3697
+
3698
+
3699
+ </span>
3700
+
3701
+
3702
+
3703
+ </a>
3704
+ </li>
3705
+
3706
+
3707
+
3708
+
3709
+
3710
+
3711
+
3712
+
3713
+
3714
+
3715
+ <li class="md-nav__item">
3716
+ <a href="../../reference/build-directives.html" class="md-nav__link">
3717
+
3718
+
3719
+
3720
+ <span class="md-ellipsis">
3721
+
3722
+
3723
+ Test Build Directives
3724
+
3725
+
3726
+
3727
+ </span>
3728
+
3729
+
3730
+
3731
+ </a>
3732
+ </li>
3733
+
3734
+
3735
+
3736
+
3737
+
3738
+
3739
+
3740
+
3741
+
3742
+
3743
+ <li class="md-nav__item">
3744
+ <a href="../../reference/partials-macros.html" class="md-nav__link">
3745
+
3746
+
3747
+
3748
+ <span class="md-ellipsis">
3749
+
3750
+
3751
+ Partials Macros
3752
+
3753
+
3754
+
3755
+ </span>
3756
+
3757
+
3758
+
3759
+ </a>
3760
+ </li>
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+
3768
+
3769
+
3770
+
3771
+ <li class="md-nav__item">
3772
+ <a href="../../reference/environment-vars.html" class="md-nav__link">
3773
+
3774
+
3775
+
3776
+ <span class="md-ellipsis">
3777
+
3778
+
3779
+ Environment Variables
3780
+
3781
+
3782
+
3783
+ </span>
3784
+
3785
+
3786
+
3787
+ </a>
3788
+ </li>
3789
+
3790
+
3791
+
3792
+
3793
+
3794
+
3795
+
3796
+
3797
+
3798
+
3799
+ <li class="md-nav__item">
3800
+ <a href="../../reference/gcov-plugin.html" class="md-nav__link">
3801
+
3802
+
3803
+
3804
+ <span class="md-ellipsis">
3805
+
3806
+
3807
+ Coverage Reporting
3808
+
3809
+
3810
+
3811
+ </span>
3812
+
3813
+
3814
+
3815
+ </a>
3816
+ </li>
3817
+
3818
+
3819
+
3820
+
3821
+
3822
+
3823
+
3824
+
3825
+
3826
+
3827
+ <li class="md-nav__item">
3828
+ <a href="../../reference/global-collections.html" class="md-nav__link">
3829
+
3830
+
3831
+
3832
+ <span class="md-ellipsis">
3833
+
3834
+
3835
+ Global Collections
3836
+
3837
+
3838
+
3839
+ </span>
3840
+
3841
+
3842
+
3843
+ </a>
3844
+ </li>
3845
+
3846
+
3847
+
3848
+
3849
+ </ul>
3850
+ </nav>
3851
+
3852
+ </li>
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+
3859
+
3860
+
3861
+
3862
+
3863
+
3864
+
3865
+
3866
+
3867
+
3868
+
3869
+
3870
+
3871
+
3872
+
3873
+
3874
+
3875
+
3876
+
3877
+
3878
+
3879
+
3880
+
3881
+
3882
+
3883
+
3884
+ <li class="md-nav__item md-nav__item--nested">
3885
+
3886
+
3887
+
3888
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_8" >
3889
+
3890
+
3891
+ <div class="md-nav__link md-nav__container">
3892
+ <a href="../../project/index.html" class="md-nav__link ">
3893
+
3894
+
3895
+
3896
+ <span class="md-ellipsis">
3897
+
3898
+
3899
+ Releases
3900
+
3901
+
3902
+
3903
+ </span>
3904
+
3905
+
3906
+
3907
+ </a>
3908
+
3909
+
3910
+ <label class="md-nav__link " for="__nav_8" id="__nav_8_label" tabindex="0">
3911
+ <span class="md-nav__icon md-icon"></span>
3912
+ </label>
3913
+
3914
+ </div>
3915
+
3916
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_8_label" aria-expanded="false">
3917
+ <label class="md-nav__title" for="__nav_8">
3918
+ <span class="md-nav__icon md-icon"></span>
3919
+
3920
+
3921
+ Releases
3922
+
3923
+
3924
+ </label>
3925
+ <ul class="md-nav__list" data-md-scrollfix>
3926
+
3927
+
3928
+
3929
+
3930
+
3931
+
3932
+
3933
+
3934
+
3935
+ <li class="md-nav__item">
3936
+ <a href="../../project/release-history.html" class="md-nav__link">
3937
+
3938
+
3939
+
3940
+ <span class="md-ellipsis">
3941
+
3942
+
3943
+ History Documents
3944
+
3945
+
3946
+
3947
+ </span>
3948
+
3949
+
3950
+
3951
+ </a>
3952
+ </li>
3953
+
3954
+
3955
+
3956
+
3957
+
3958
+
3959
+
3960
+
3961
+
3962
+
3963
+ <li class="md-nav__item">
3964
+ <a href="../../project/sbom.html" class="md-nav__link">
3965
+
3966
+
3967
+
3968
+ <span class="md-ellipsis">
3969
+
3970
+
3971
+ Software Bill of Materials
3972
+
3973
+
3974
+
3975
+ </span>
3976
+
3977
+
3978
+
3979
+ </a>
3980
+ </li>
3981
+
3982
+
3983
+
3984
+
3985
+
3986
+
3987
+
3988
+
3989
+
3990
+
3991
+ <li class="md-nav__item">
3992
+ <a href="../../project/upgrade.html" class="md-nav__link">
3993
+
3994
+
3995
+
3996
+ <span class="md-ellipsis">
3997
+
3998
+
3999
+ Upgrading
4000
+
4001
+
4002
+
4003
+ </span>
4004
+
4005
+
4006
+
4007
+ </a>
4008
+ </li>
4009
+
4010
+
4011
+
4012
+
4013
+ </ul>
4014
+ </nav>
4015
+
4016
+ </li>
4017
+
4018
+
4019
+
4020
+
4021
+
4022
+
4023
+
4024
+
4025
+
4026
+ <li class="md-nav__item">
4027
+ <a href="../../help.html" class="md-nav__link">
4028
+
4029
+
4030
+
4031
+ <span class="md-ellipsis">
4032
+
4033
+
4034
+ Help
4035
+
4036
+
4037
+
4038
+ </span>
4039
+
4040
+
4041
+
4042
+ </a>
4043
+ </li>
4044
+
4045
+
4046
+
4047
+
4048
+
4049
+
4050
+
4051
+
4052
+
4053
+
4054
+
4055
+
4056
+
4057
+
4058
+
4059
+
4060
+
4061
+
4062
+
4063
+
4064
+
4065
+
4066
+
4067
+
4068
+
4069
+
4070
+
4071
+
4072
+
4073
+
4074
+
4075
+ <li class="md-nav__item md-nav__item--nested">
4076
+
4077
+
4078
+
4079
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10" >
4080
+
4081
+
4082
+ <div class="md-nav__link md-nav__container">
4083
+ <a href="../../development/index.html" class="md-nav__link ">
4084
+
4085
+
4086
+
4087
+ <span class="md-ellipsis">
4088
+
4089
+
4090
+ Development
4091
+
4092
+
4093
+
4094
+ </span>
4095
+
4096
+
4097
+
4098
+ </a>
4099
+
4100
+
4101
+ <label class="md-nav__link " for="__nav_10" id="__nav_10_label" tabindex="0">
4102
+ <span class="md-nav__icon md-icon"></span>
4103
+ </label>
4104
+
4105
+ </div>
4106
+
4107
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_10_label" aria-expanded="false">
4108
+ <label class="md-nav__title" for="__nav_10">
4109
+ <span class="md-nav__icon md-icon"></span>
4110
+
4111
+
4112
+ Development
4113
+
4114
+
4115
+ </label>
4116
+ <ul class="md-nav__list" data-md-scrollfix>
4117
+
4118
+
4119
+
4120
+
4121
+
4122
+
4123
+
4124
+
4125
+
4126
+ <li class="md-nav__item">
4127
+ <a href="../../development/workflow.html" class="md-nav__link">
4128
+
4129
+
4130
+
4131
+ <span class="md-ellipsis">
4132
+
4133
+
4134
+ Development Workflow
4135
+
4136
+
4137
+
4138
+ </span>
4139
+
4140
+
4141
+
4142
+ </a>
4143
+ </li>
4144
+
4145
+
4146
+
4147
+
4148
+
4149
+
4150
+
4151
+
4152
+
4153
+
4154
+ <li class="md-nav__item">
4155
+ <a href="../../development/releases.html" class="md-nav__link">
4156
+
4157
+
4158
+
4159
+ <span class="md-ellipsis">
4160
+
4161
+
4162
+ Branching & Releases
4163
+
4164
+
4165
+
4166
+ </span>
4167
+
4168
+
4169
+
4170
+ </a>
4171
+ </li>
4172
+
4173
+
4174
+
4175
+
4176
+
4177
+
4178
+
4179
+
4180
+
4181
+
4182
+
4183
+
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
4190
+
4191
+
4192
+
4193
+
4194
+
4195
+
4196
+
4197
+
4198
+
4199
+
4200
+
4201
+
4202
+
4203
+
4204
+ <li class="md-nav__item md-nav__item--nested">
4205
+
4206
+
4207
+
4208
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_10_4" >
4209
+
4210
+
4211
+ <div class="md-nav__link md-nav__container">
4212
+ <a href="../../development/plugins/index.html" class="md-nav__link ">
4213
+
4214
+
4215
+
4216
+ <span class="md-ellipsis">
4217
+
4218
+
4219
+ Plugin Development
4220
+
4221
+
4222
+
4223
+ </span>
4224
+
4225
+
4226
+
4227
+ </a>
4228
+
4229
+
4230
+ <label class="md-nav__link " for="__nav_10_4" id="__nav_10_4_label" tabindex="0">
4231
+ <span class="md-nav__icon md-icon"></span>
4232
+ </label>
4233
+
4234
+ </div>
4235
+
4236
+ <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_10_4_label" aria-expanded="false">
4237
+ <label class="md-nav__title" for="__nav_10_4">
4238
+ <span class="md-nav__icon md-icon"></span>
4239
+
4240
+
4241
+ Plugin Development
4242
+
4243
+
4244
+ </label>
4245
+ <ul class="md-nav__list" data-md-scrollfix>
4246
+
4247
+
4248
+
4249
+
4250
+
4251
+
4252
+
4253
+
4254
+
4255
+ <li class="md-nav__item">
4256
+ <a href="../../development/plugins/configuration.html" class="md-nav__link">
4257
+
4258
+
4259
+
4260
+ <span class="md-ellipsis">
4261
+
4262
+
4263
+ Configuration Plugin
4264
+
4265
+
4266
+
4267
+ </span>
4268
+
4269
+
4270
+
4271
+ </a>
4272
+ </li>
4273
+
4274
+
4275
+
4276
+
4277
+
4278
+
4279
+
4280
+
4281
+
4282
+
4283
+ <li class="md-nav__item">
4284
+ <a href="../../development/plugins/plugin-subclass.html" class="md-nav__link">
4285
+
4286
+
4287
+
4288
+ <span class="md-ellipsis">
4289
+
4290
+
4291
+ Plugin Subclass
4292
+
4293
+
4294
+
4295
+ </span>
4296
+
4297
+
4298
+
4299
+ </a>
4300
+ </li>
4301
+
4302
+
4303
+
4304
+
4305
+
4306
+
4307
+
4308
+
4309
+
4310
+
4311
+ <li class="md-nav__item">
4312
+ <a href="../../development/plugins/rake-tasks.html" class="md-nav__link">
4313
+
4314
+
4315
+
4316
+ <span class="md-ellipsis">
4317
+
4318
+
4319
+ Rake Task Plugin
4320
+
4321
+
4322
+
4323
+ </span>
4324
+
4325
+
4326
+
4327
+ </a>
4328
+ </li>
4329
+
4330
+
4331
+
4332
+
4333
+ </ul>
4334
+ </nav>
4335
+
4336
+ </li>
4337
+
4338
+
4339
+
4340
+
4341
+ </ul>
4342
+ </nav>
4343
+
4344
+ </li>
4345
+
4346
+
4347
+
4348
+ </ul>
4349
+ </nav>
4350
+ </div>
4351
+ </div>
4352
+ </div>
4353
+
4354
+
4355
+
4356
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
4357
+ <div class="md-sidebar__scrollwrap">
4358
+ <div class="md-sidebar__inner">
4359
+
4360
+
4361
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
4362
+
4363
+
4364
+
4365
+
4366
+
4367
+
4368
+ <label class="md-nav__title" for="__toc">
4369
+ <span class="md-nav__icon md-icon"></span>
4370
+ Table of contents
4371
+ </label>
4372
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
4373
+
4374
+ <li class="md-nav__item">
4375
+ <a href="#what-you-need" class="md-nav__link">
4376
+ <span class="md-ellipsis">
4377
+
4378
+ What you need
4379
+
4380
+ </span>
4381
+ </a>
4382
+
4383
+ </li>
4384
+
4385
+ <li class="md-nav__item">
4386
+ <a href="#checking-license-status" class="md-nav__link">
4387
+ <span class="md-ellipsis">
4388
+
4389
+ Checking license status
4390
+
4391
+ </span>
4392
+ </a>
4393
+
4394
+ </li>
4395
+
4396
+ <li class="md-nav__item">
4397
+ <a href="#bullseyes-two-licensing-mechanisms" class="md-nav__link">
4398
+ <span class="md-ellipsis">
4399
+
4400
+ Bullseye's two licensing mechanisms
4401
+
4402
+ </span>
4403
+ </a>
4404
+
4405
+ <nav class="md-nav" aria-label="Bullseye&#39;s two licensing mechanisms">
4406
+ <ul class="md-nav__list">
4407
+
4408
+ <li class="md-nav__item">
4409
+ <a href="#node-locked-and-unlimited-licenses" class="md-nav__link">
4410
+ <span class="md-ellipsis">
4411
+
4412
+ Node-locked and unlimited licenses
4413
+
4414
+ </span>
4415
+ </a>
4416
+
4417
+ </li>
4418
+
4419
+ <li class="md-nav__item">
4420
+ <a href="#floating-and-evaluation-licenses" class="md-nav__link">
4421
+ <span class="md-ellipsis">
4422
+
4423
+ Floating and evaluation licenses
4424
+
4425
+ </span>
4426
+ </a>
4427
+
4428
+ </li>
4429
+
4430
+ </ul>
4431
+ </nav>
4432
+
4433
+ </li>
4434
+
4435
+ <li class="md-nav__item">
4436
+ <a href="#using-bullseye-in-a-container" class="md-nav__link">
4437
+ <span class="md-ellipsis">
4438
+
4439
+ Using Bullseye in a container
4440
+
4441
+ </span>
4442
+ </a>
4443
+
4444
+ <nav class="md-nav" aria-label="Using Bullseye in a container">
4445
+ <ul class="md-nav__list">
4446
+
4447
+ <li class="md-nav__item">
4448
+ <a href="#extending-the-image" class="md-nav__link">
4449
+ <span class="md-ellipsis">
4450
+
4451
+ Extending the image
4452
+
4453
+ </span>
4454
+ </a>
4455
+
4456
+ </li>
4457
+
4458
+ <li class="md-nav__item">
4459
+ <a href="#installing-into-a-running-container" class="md-nav__link">
4460
+ <span class="md-ellipsis">
4461
+
4462
+ Installing into a running container
4463
+
4464
+ </span>
4465
+ </a>
4466
+
4467
+ </li>
4468
+
4469
+ </ul>
4470
+ </nav>
4471
+
4472
+ </li>
4473
+
4474
+ <li class="md-nav__item">
4475
+ <a href="#what-this-plugin-does-not-do" class="md-nav__link">
4476
+ <span class="md-ellipsis">
4477
+
4478
+ What this plugin does not do
4479
+
4480
+ </span>
4481
+ </a>
4482
+
4483
+ </li>
4484
+
4485
+ </ul>
4486
+
4487
+ </nav>
4488
+ </div>
4489
+ </div>
4490
+ </div>
4491
+
4492
+
4493
+
4494
+ <div class="md-content" data-md-component="content">
4495
+
4496
+
4497
+
4498
+
4499
+
4500
+
4501
+
4502
+
4503
+ <nav class="md-path" aria-label="Navigation" >
4504
+ <ol class="md-path__list">
4505
+
4506
+
4507
+
4508
+
4509
+ <li class="md-path__item">
4510
+ <a href="../../index.html" class="md-path__link">
4511
+
4512
+ <span class="md-ellipsis">
4513
+ Home
4514
+ </span>
4515
+
4516
+ </a>
4517
+ </li>
4518
+
4519
+
4520
+
4521
+
4522
+
4523
+
4524
+
4525
+
4526
+
4527
+ <li class="md-path__item">
4528
+ <a href="../index.html" class="md-path__link">
4529
+
4530
+ <span class="md-ellipsis">
4531
+ Plugins
4532
+ </span>
4533
+
4534
+ </a>
4535
+ </li>
4536
+
4537
+
4538
+
4539
+
4540
+
4541
+
4542
+
4543
+
4544
+
4545
+ <li class="md-path__item">
4546
+ <a href="index.html" class="md-path__link">
4547
+
4548
+ <span class="md-ellipsis">
4549
+ Bullseye (Coverage)
4550
+ </span>
4551
+
4552
+ </a>
4553
+ </li>
4554
+
4555
+
4556
+
4557
+
4558
+ </ol>
4559
+ </nav>
4560
+
4561
+
4562
+ <article class="md-content__inner md-typeset">
4563
+
4564
+
4565
+
4566
+
4567
+
4568
+
4569
+
4570
+
4571
+ <h1 id="licensing">Licensing</h1>
4572
+ <p>Bullseye Coverage is commercial software. You need your own licensed
4573
+ installation to use this plugin.</p>
4574
+ <p>This plugin does not install, activate, or manage licenses. Bullseye's own
4575
+ installer and tooling do that, independently of Ceedling. The plugin reads
4576
+ license state and reports it. It never changes it.</p>
4577
+ <p>This page covers what you need, how Bullseye's two licensing mechanisms differ,
4578
+ and the one plugin setting relevant to licensing.</p>
4579
+ <h2 id="what-you-need">What you need</h2>
4580
+ <p>You need two things.</p>
4581
+ <ol>
4582
+ <li>A licensed installation of Bullseye Coverage for your platform.</li>
4583
+ <li>Its tools on your <code>PATH</code>. Those tools are <code>covc</code>, <code>covsrc</code>, <code>covfn</code>,
4584
+ <code>covbr</code>, <code>covxml</code>, <code>covhtml</code>, <code>covselect</code>, <code>covlmgr</code>, and optionally
4585
+ <code>CoverageBrowser</code>. Ceedling's
4586
+ <a href="../../configuration/reference/environment.html"><code>:environment</code></a> settings can
4587
+ also supply the path.</li>
4588
+ </ol>
4589
+ <p>Obtain an installer from <a href="https://www.bullseye.com/cgi-bin/download">Bullseye's download page</a>.</p>
4590
+ <h2 id="checking-license-status">Checking license status</h2>
4591
+ <p>Run this task at any time to report your license state.</p>
4592
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="w"> </span>&gt;<span class="w"> </span>ceedling<span class="w"> </span>bullseye:license
4593
+ </code></pre></div>
4594
+ <p>It reports your license number, its expiry date, and license manager
4595
+ utilization.</p>
4596
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>------------------------
4597
+ <a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a>BULLSEYE: LICENSE STATUS
4598
+ <a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a>------------------------
4599
+ <a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>BullseyeCoverage License Manager Administration 9.25.9 Linux-x64 License 123456 License will expire 2028-04-06
4600
+ <a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>License manager disabled
4601
+ </code></pre></div>
4602
+ <p><code>License manager disabled</code> is the expected result for an unlimited license.
4603
+ Those licenses cannot use the license manager at all. It is not a problem to
4604
+ fix.</p>
4605
+ <p>This task is the first thing to try when a Bullseye tool fails for no obvious
4606
+ reason. An expired or missing license surfaces only as an opaque tool failure.
4607
+ Ceedling points you here when one of its own Bullseye report tools fails.</p>
4608
+ <h2 id="bullseyes-two-licensing-mechanisms">Bullseye's two licensing mechanisms</h2>
4609
+ <p>Bullseye licenses activate two different ways. Which one applies depends on the
4610
+ license you were issued. This plugin does not choose between them.</p>
4611
+ <h3 id="node-locked-and-unlimited-licenses">Node-locked and unlimited licenses</h3>
4612
+ <p>These activate once, at installation. Pass your license key to Bullseye's
4613
+ installer.</p>
4614
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="w"> </span>&gt;<span class="w"> </span>sudo<span class="w"> </span>./install<span class="w"> </span>--key<span class="w"> </span>&lt;licenseKey&gt;<span class="w"> </span>--search<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$PATH</span><span class="s2">&quot;</span>
4615
+ </code></pre></div>
4616
+ <p>Activation state is written into the installation itself. Every user on that
4617
+ machine can then run Bullseye's tools. Nothing per-project or per-build is
4618
+ involved, and no plugin setting applies.</p>
4619
+ <p><code>--prefix &lt;dir&gt;</code> installs somewhere other than <code>/opt</code>. That avoids needing
4620
+ root.</p>
4621
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a><span class="w"> </span>&gt;<span class="w"> </span>./install<span class="w"> </span>--prefix<span class="w"> </span>~/bullseye<span class="w"> </span>--key<span class="w"> </span>&lt;licenseKey&gt;<span class="w"> </span>--search<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$PATH</span><span class="s2">&quot;</span>
4622
+ </code></pre></div>
4623
+ <h3 id="floating-and-evaluation-licenses">Floating and evaluation licenses</h3>
4624
+ <p>These share a limited pool of concurrent licenses. The pool is tracked in a
4625
+ single shared file called the license manager file. Bullseye's <code>covlmgr</code> tool
4626
+ administers it.</p>
4627
+ <p>Bullseye states that the license manager cannot be used with an unlimited
4628
+ license. It works with floating and evaluation licenses only.</p>
4629
+ <p>A license administrator creates the file once, on a network location that
4630
+ supports file locking.</p>
4631
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="w"> </span>&gt;<span class="w"> </span>./install<span class="w"> </span>--key<span class="w"> </span>&lt;licenseKey&gt;<span class="w"> </span>--create<span class="w"> </span>/server/BullseyeCoverageLicenseManager
4632
+ </code></pre></div>
4633
+ <p>Each client then points at that existing file.</p>
4634
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="w"> </span>&gt;<span class="w"> </span>covlmgr<span class="w"> </span>--file<span class="w"> </span>/server/BullseyeCoverageLicenseManager<span class="w"> </span>--use
4635
+ </code></pre></div>
4636
+ <p>Other useful <code>covlmgr</code> actions follow.</p>
4637
+ <table>
4638
+ <thead>
4639
+ <tr>
4640
+ <th>Command</th>
4641
+ <th>Purpose</th>
4642
+ </tr>
4643
+ </thead>
4644
+ <tbody>
4645
+ <tr>
4646
+ <td><code>covlmgr --status</code></td>
4647
+ <td>Report current license utilization</td>
4648
+ </tr>
4649
+ <tr>
4650
+ <td><code>covlmgr --add &lt;key&gt;</code></td>
4651
+ <td>Add a license key to the file</td>
4652
+ </tr>
4653
+ <tr>
4654
+ <td><code>covlmgr --create --file &lt;path&gt;</code></td>
4655
+ <td>Create a license manager file</td>
4656
+ </tr>
4657
+ <tr>
4658
+ <td><code>covlmgr --use --file &lt;path&gt;</code></td>
4659
+ <td>Point this client at an existing file</td>
4660
+ </tr>
4661
+ <tr>
4662
+ <td><code>covlmgr --clear</code></td>
4663
+ <td>Reset utilization and release all licenses</td>
4664
+ </tr>
4665
+ </tbody>
4666
+ </table>
4667
+ <p>See <a href="https://www.bullseye.com/help/licenseManager.html">Bullseye's license manager documentation</a> for
4668
+ full detail.</p>
4669
+ <h4 id="configuring-the-license-manager-file">Configuring the license manager file</h4>
4670
+ <p>Set <code>:license_manager_file</code> to your shared file's path. The plugin sets the
4671
+ <code>COVLM</code> environment variable to this value for every Bullseye tool it invokes.</p>
4672
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="nt">:bullseye</span><span class="p">:</span>
4673
+ <a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a><span class="w"> </span><span class="nt">:license_manager_file</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/path/to/shared/bullseye.lmgr</span>
4674
+ </code></pre></div>
4675
+ <p><strong>Default:</strong> unset</p>
4676
+ <p>Leave this unset for a node-locked or unlimited license. It has no effect on
4677
+ those.</p>
4678
+ <h4 id="recovering-a-license-after-a-killed-build">Recovering a license after a killed build</h4>
4679
+ <p>A license is consumed for the duration of each Bullseye program. It is released
4680
+ when that program exits. A program that is killed holds its license for 10
4681
+ minutes before automatic release.</p>
4682
+ <p>Interrupting a build can therefore leave a license checked out. Run
4683
+ <code>covlmgr --clear</code> to release everything immediately, or wait out the 10 minutes.</p>
4684
+ <h2 id="using-bullseye-in-a-container">Using Bullseye in a container</h2>
4685
+ <p>Ceedling's <code>madsciencelab-plugins</code> Docker images do not include Bullseye. No
4686
+ Ceedling image can. Bullseye is commercial software, and distributing its
4687
+ executables requires a license that a freely available image cannot carry.
4688
+ Shipping the tools unlicensed is not possible either.</p>
4689
+ <p>Download Bullseye yourself and add it to a container. There are two ways to do
4690
+ that. Extend the image when you want a reusable environment. Install into a
4691
+ running container when you want a one-off.</p>
4692
+ <div class="admonition note">
4693
+ <p class="admonition-title">Check the image's Ceedling version</p>
4694
+ <p>Adding Bullseye to an image is only half of what you need. This plugin
4695
+ requires Ceedling 1.2.0 or newer. Releases before that ship it disabled and
4696
+ refuse to load it. Run <code>ceedling version</code> against your image to check.</p>
4697
+ </div>
4698
+ <div class="admonition warning">
4699
+ <p class="admonition-title">Never commit a license key</p>
4700
+ <p>Supply your key through a build argument, an environment variable, or a
4701
+ secret. A key committed to a repository is a key you have to rotate. Treat
4702
+ any image carrying an activated Bullseye license as private to your
4703
+ organization, and never push one to a public registry.</p>
4704
+ </div>
4705
+ <h3 id="extending-the-image">Extending the image</h3>
4706
+ <p>Build your own layer on top of <code>madsciencelab-plugins</code>. This is the better
4707
+ option for repeated use and for CI, because the install happens once at image
4708
+ build time rather than on every container start.</p>
4709
+ <p>Place your downloaded Bullseye installer beside this <code>Dockerfile</code>.</p>
4710
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a><span class="k">FROM</span><span class="w"> </span><span class="s">throwtheswitch/madsciencelab-plugins:latest</span>
4711
+ <a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
4712
+ <a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a><span class="c"># Your downloaded, unpacked Bullseye installer directory</span>
4713
+ <a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a><span class="k">COPY</span><span class="w"> </span>--chown<span class="o">=</span>dev:nonroot<span class="w"> </span>BullseyeCoverage-9.25.9<span class="w"> </span>/tmp/bullseye-installer
4714
+ <a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a>
4715
+ <a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="c"># Supplied at build time, never baked into the Dockerfile itself</span>
4716
+ <a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a><span class="k">ARG</span><span class="w"> </span>BULLSEYE_LICENSE_KEY
4717
+ <a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a>
4718
+ <a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a><span class="k">RUN</span><span class="w"> </span>/tmp/bullseye-installer/install<span class="w"> </span><span class="se">\</span>
4719
+ <a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a><span class="w"> </span>--prefix<span class="w"> </span>/home/dev/bullseye<span class="w"> </span><span class="se">\</span>
4720
+ <a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a><span class="w"> </span>--key<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$BULLSEYE_LICENSE_KEY</span><span class="s2">&quot;</span><span class="w"> </span><span class="se">\</span>
4721
+ <a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a><span class="w"> </span>--search<span class="w"> </span><span class="s2">&quot;/usr/bin:/usr/local/bin&quot;</span><span class="w"> </span><span class="se">\</span>
4722
+ <a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>rm<span class="w"> </span>-rf<span class="w"> </span>/tmp/bullseye-installer
4723
+ <a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a>
4724
+ <a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a><span class="k">ENV</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span><span class="s2">&quot;/home/dev/bullseye/bin:</span><span class="si">${</span><span class="nv">PATH</span><span class="si">}</span><span class="s2">&quot;</span>
4725
+ </code></pre></div>
4726
+ <p>Build it with your key passed in.</p>
4727
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a><span class="w"> </span>&gt;<span class="w"> </span>docker<span class="w"> </span>build<span class="w"> </span>--build-arg<span class="w"> </span><span class="nv">BULLSEYE_LICENSE_KEY</span><span class="o">=</span><span class="s2">&quot;</span><span class="nv">$BULLSEYE_LICENSE_KEY</span><span class="s2">&quot;</span><span class="w"> </span>-t<span class="w"> </span>my-ceedling-bullseye<span class="w"> </span>.
4728
+ </code></pre></div>
4729
+ <p>Then run your project against the image you built.</p>
4730
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a><span class="w"> </span>&gt;<span class="w"> </span>docker<span class="w"> </span>run<span class="w"> </span>--rm<span class="w"> </span>-v<span class="w"> </span>/path/to/your/project:/home/dev/project<span class="w"> </span>my-ceedling-bullseye<span class="w"> </span>ceedling<span class="w"> </span>bullseye:all
4731
+ </code></pre></div>
4732
+ <div class="admonition note">
4733
+ <p class="admonition-title">Build arguments are recorded in image history</p>
4734
+ <p><code>docker build --build-arg</code> leaves the value visible in the built image's
4735
+ metadata. Use BuildKit secrets instead if that matters to you, or build the
4736
+ image somewhere its history stays private.</p>
4737
+ </div>
4738
+ <h3 id="installing-into-a-running-container">Installing into a running container</h3>
4739
+ <p>Mount your installer into a stock <code>madsciencelab-plugins</code> container and install
4740
+ it there. Nothing persists after the container exits, so this suits a quick
4741
+ experiment rather than repeated use.</p>
4742
+ <p><code>--prefix</code> installs somewhere writable, which avoids needing root.</p>
4743
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a><span class="w"> </span>&gt;<span class="w"> </span>docker<span class="w"> </span>run<span class="w"> </span>-it<span class="w"> </span>--rm<span class="w"> </span><span class="se">\</span>
4744
+ <a id="__codelineno-10-2" name="__codelineno-10-2" href="#__codelineno-10-2"></a><span class="w"> </span>-e<span class="w"> </span>BULLSEYE_LICENSE_KEY<span class="w"> </span><span class="se">\</span>
4745
+ <a id="__codelineno-10-3" name="__codelineno-10-3" href="#__codelineno-10-3"></a><span class="w"> </span>-v<span class="w"> </span>/path/to/your/project:/home/dev/project<span class="w"> </span><span class="se">\</span>
4746
+ <a id="__codelineno-10-4" name="__codelineno-10-4" href="#__codelineno-10-4"></a><span class="w"> </span>-v<span class="w"> </span>/path/to/BullseyeCoverage-9.25.9:/opt/bullseye-installer:ro<span class="w"> </span><span class="se">\</span>
4747
+ <a id="__codelineno-10-5" name="__codelineno-10-5" href="#__codelineno-10-5"></a><span class="w"> </span>throwtheswitch/madsciencelab-plugins:latest
4748
+ </code></pre></div>
4749
+ <p>Inside the container, install and put the tools on <code>PATH</code>.</p>
4750
+ <div class="highlight"><pre><span></span><code><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a><span class="w"> </span>&gt;<span class="w"> </span>/opt/bullseye-installer/install<span class="w"> </span><span class="se">\</span>
4751
+ <a id="__codelineno-11-2" name="__codelineno-11-2" href="#__codelineno-11-2"></a><span class="w"> </span>--prefix<span class="w"> </span>/home/dev/bullseye<span class="w"> </span><span class="se">\</span>
4752
+ <a id="__codelineno-11-3" name="__codelineno-11-3" href="#__codelineno-11-3"></a><span class="w"> </span>--key<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$BULLSEYE_LICENSE_KEY</span><span class="s2">&quot;</span><span class="w"> </span><span class="se">\</span>
4753
+ <a id="__codelineno-11-4" name="__codelineno-11-4" href="#__codelineno-11-4"></a><span class="w"> </span>--search<span class="w"> </span><span class="s2">&quot;/usr/bin:/usr/local/bin&quot;</span>
4754
+ <a id="__codelineno-11-5" name="__codelineno-11-5" href="#__codelineno-11-5"></a><span class="w"> </span>&gt;<span class="w"> </span><span class="nb">export</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span>/home/dev/bullseye/bin:<span class="nv">$PATH</span>
4755
+ <a id="__codelineno-11-6" name="__codelineno-11-6" href="#__codelineno-11-6"></a><span class="w"> </span>&gt;<span class="w"> </span>ceedling<span class="w"> </span>bullseye:license
4756
+ </code></pre></div>
4757
+ <h2 id="what-this-plugin-does-not-do">What this plugin does not do</h2>
4758
+ <p>This plugin invokes Bullseye's tools with the coverage and license environment
4759
+ variables described here. It also reports license status on request.</p>
4760
+ <p>Installing and activating Bullseye is a host or CI setup concern. The plugin
4761
+ never creates a license manager file, adds a key, or releases a license.
4762
+ Ceedling's generic
4763
+ <a href="../../configuration/reference/environment.html"><code>:environment</code></a> configuration
4764
+ can set any other environment variable a given Bullseye installation needs.</p>
4765
+ <p><br/><br/></p>
4766
+
4767
+
4768
+
4769
+
4770
+
4771
+
4772
+
4773
+
4774
+
4775
+
4776
+
4777
+
4778
+
4779
+ </article>
4780
+ </div>
4781
+
4782
+
4783
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
4784
+ </div>
4785
+
4786
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
4787
+
4788
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
4789
+ Back to top
4790
+ </button>
4791
+
4792
+ </main>
4793
+
4794
+ <footer class="md-footer">
4795
+
4796
+ <div class="md-footer-meta md-typeset">
4797
+ <div class="md-footer-meta__inner md-grid">
4798
+ <div class="md-copyright">
4799
+
4800
+ <div class="md-copyright__highlight">
4801
+ &copy; 2010-2026 M. Karlesky, M. VanderVoord, and G. Williams &mdash; Documentation license: <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">CC BY-SA 4.0</a>
4802
+ </div>
4803
+
4804
+
4805
+ </div>
4806
+
4807
+
4808
+ <div class="md-social">
4809
+
4810
+
4811
+
4812
+
4813
+
4814
+ <a href="https://github.com/sponsors/ThrowTheSwitch" target="_blank" rel="noopener" title="Sponsor ThrowTheSwitch on GitHub" class="md-social__link">
4815
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
4816
+ </a>
4817
+
4818
+ </div>
4819
+
4820
+ </div>
4821
+ </div>
4822
+ </footer>
4823
+
4824
+ </div>
4825
+ <div class="md-dialog" data-md-component="dialog">
4826
+ <div class="md-dialog__inner md-typeset"></div>
4827
+ </div>
4828
+
4829
+
4830
+
4831
+
4832
+
4833
+ <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.2c215733.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>
4834
+
4835
+
4836
+ <script src="../../assets/javascripts/bundle.d7400e89.min.js"></script>
4837
+
4838
+
4839
+ </body>
4840
+ </html>