diff --git a/assets/project_as_gem.yml b/assets/project_as_gem.yml index 1427b5cb..a3004f21 100644 --- a/assets/project_as_gem.yml +++ b/assets/project_as_gem.yml @@ -13,7 +13,7 @@ # optional features. If you don't need them, keep them turned off for performance :use_mocks: TRUE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :use_backtrace: :none :use_decorators: :auto #Decorate Ceedling's output text. Your options are :auto, :all, or :none diff --git a/assets/project_with_guts.yml b/assets/project_with_guts.yml index f1067493..df4c6b05 100644 --- a/assets/project_with_guts.yml +++ b/assets/project_with_guts.yml @@ -13,7 +13,7 @@ # optional features. If you don't need them, keep them turned off for performance :use_mocks: TRUE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :use_backtrace: :none :use_decorators: :auto #Decorate Ceedling's output text. Your options are :auto, :all, or :none diff --git a/docs/BreakingChanges.md b/docs/BreakingChanges.md index 2b475b57..489db2e0 100644 --- a/docs/BreakingChanges.md +++ b/docs/BreakingChanges.md @@ -7,7 +7,7 @@ These breaking changes are complemented by two other documents: --- -# [1.0.0 pre-release] — 2024-06-19 +# [1.0.0 pre-release] — 2024-07-22 ## Explicit `:paths` ↳ `:include` entries in the project file @@ -45,6 +45,23 @@ In brief: Flags specified for release builds are applied to all files in the release build. +## New `:project` ↳ `:use_test_preprocessor` configuration settings + +Ceedling’s preprocessing features have been greatly improved. Preprocessing is now no longer all-or-nothing with a simple boolean value. + +In place of `true` or `false`, `:use_test_preprocessing` now accepts: + +* `:none` disables preprocessing (equivalent to previous `false` setting). +* `:all` enables preprpocessing for all mockable header files and test C files (equivalent to previous `true` setting). +* `:mocks` enables only preprocessing of header files that are to be mocked. +* `:tests` enables only preprocessing of your test files. + +## Preprocessing is temporarily unable to handle Unity’s parameterized test case macros `TEST_CASE()` and `TEST_RANGE()` + +Ceedling’s preprocessing abilities have been nearly entirely rewritten. In the process of doing so Ceedling has temporarily lost the ability to preprocess a test file but preserve certain directive macros including Unity’s parameterized test case macros. + +Note that it is now possible to enable preprocessing for mockable header files apart from test files. + ## `TEST_FILE()` ➡️ `TEST_SOURCE_FILE()` The previously undocumented `TEST_FILE()` build directive macro (#796) available within test files has been renamed and is now officially documented. See earlier section on this. diff --git a/docs/CeedlingPacket.md b/docs/CeedlingPacket.md index 6758e25c..6864a3b0 100644 --- a/docs/CeedlingPacket.md +++ b/docs/CeedlingPacket.md @@ -1384,28 +1384,31 @@ In other words, a test function signature should look like this: Ceedling and CMock are advanced tools that both perform fairly sophisticated parsing. -However, neither of these tools fully understand the entire C language, +However, neither of these tools fully understands the entire C language, especially C's preprocessing statements. -If your test files rely on macros and `#ifdef` conditionals, there's a good +If your test files rely on macros and `#ifdef` conditionals, there’s a good chance that Ceedling will break on trying to process your test files, or, -alternatively, your test suite will not execute as expected. +alternatively, your test suite will build but not execute as expected. Similarly, generating mocks of header files with macros and `#ifdef` -conditionals can get weird. +conditionals can get weird. It’s often in sophisticated projects with complex +header files that mocking is most desired in the first place. Ceedling includes an optional ability to preprocess test files and header files before executing any operations on them. See the `:project` ↳ -`:use_test_preprocessor`). That is, Ceedling will expand preprocessor -statements in test files before generating test runners from them and will -expand preprocessor statements in header files before generating mocks from -them. +`:use_test_preprocessor` project configuration setting. -This ability uses `gcc`'s preprocessing mode and the `cpp` preprocessor tool to +When preprocessing is enabled for test files, Ceedling will expand preprocessor +statements in test files before generating test runners from them. When +preprocessing is enabled for mocking, Ceedling will expand preprocessor +statements in header files before generating mocks from them. + +This ability uses `gcc`’s preprocessing mode and the `cpp` preprocessor tool to strip down / expand test files and headers to their applicable content which -can then be processed by Ceedling and CMock. They must be in your search path -if Ceedling’s preprocessing is enabled. Further, Ceedling’s features are -directly tied to these tools' abilities and options. They should not be +can then be processed by Ceedling and CMock. These tools must be in your search +path if Ceedling’s preprocessing is enabled. Further, Ceedling’s features are +directly tied to these tools' abilities and options. These tools should not be redefined for other toolchains. ### Execution time (duration) reporting in Ceedling operations & test suites @@ -1958,7 +1961,7 @@ the examples). ```yaml :project: - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :test_file_prefix: Test ``` @@ -1983,7 +1986,7 @@ rules (noted after the examples). ```yaml :project: - :use_test_preprocessor: FALSE + :use_test_preprocessor: :none :plugins: :enabled: @@ -1997,7 +2000,7 @@ Behold the project configuration following mixin merges: ```yaml :project: :build_root: build/ # From base.yml - :use_test_preprocessor: TRUE # Value in support/mixins/cmdline.yml overwrote value from support/mixins/enabled.yml + :use_test_preprocessor: :all # Value in support/mixins/cmdline.yml overwrote value from support/mixins/enabled.yml :test_file_prefix: Test # Added to :project from support/mixins/cmdline.yml :plugins: @@ -2388,18 +2391,22 @@ migrated to the `:test_build` and `:release_build` sections. * `:use_test_preprocessor` This option allows Ceedling to work with test files that contain - conditional compilation statements (e.g. `#ifdef`) and header files you - wish to mock that contain conditional preprocessor statements and/or - macros. + conditional compilation statements (e.g. `#ifdef`) as well as mockable header + files containing conditional preprocessor directives and/or macros. See the [documentation on test preprocessing][test-preprocessing] for more. - With this option enabled, the `gcc` & `cpp` tools must exist in an + With any preprocessing enabled, the `gcc` & `cpp` tools must exist in an accessible system search path. + * `:none` disables preprocessing. + * `:all` enables preprpocessing for all mockable header files and test C files. + * `:mocks` enables only preprocessing of header files that are to be mocked. + * `:tests` enables only preprocessing of your test files. + [test-preprocessing]: #preprocessing-behavior-for-tests - **Default**: FALSE + **Default**: `:none` * `:test_file_prefix` @@ -2616,7 +2623,7 @@ migrated to the `:test_build` and `:release_build` sections. :project: :build_root: project_awesome/build :use_exceptions: FALSE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :options_paths: - project/options - external/shared/options @@ -3916,15 +3923,13 @@ Please see the discussion in `:defines` for a complete example. ## `:cmock` Configure CMock’s code generation & compilation -Ceedling sets values for a subset of CMock settings. All CMock -options are available to be set, but only those options set by -Ceedling in an automated fashion are documented below. See CMock -documentation. +Ceedling sets values for a subset of CMock settings. All CMock options are +available to be set, but only those options set by Ceedling in an automated +fashion are documented below. See CMock documentation. -Ceedling sets values for a subset of CMock settings. All CMock -options are available to be set, but only those options set by -Ceedling in an automated fashion are documented below. -See [CMock] documentation. +Ceedling sets values for a subset of CMock settings. All CMock options are +available to be set, but only those options set by Ceedling in an automated +fashion are documented below. See [CMock] documentation. * `:enforce_strict_ordering`: @@ -3944,7 +3949,7 @@ See [CMock] documentation. * `:defines`: - Adds list of symbols used to configure CMock's C code features in its source and header + Adds list of symbols used to configure CMock’s C code features in its source and header files at compile time. See [Using Unity, CMock & CException](#using-unity-cmock--cexception) for much more on @@ -3953,43 +3958,51 @@ See [CMock] documentation. To manage overall command line length, these symbols are only added to compilation when a CMock C source file is compiled. - No symbols must be set unless CMock's defaults are inappropriate for your environment + No symbols must be set unless CMock’s defaults are inappropriate for your environment and needs. **Default**: `[]` (empty) * `:plugins`: - To add to the list Ceedling provides CMock, simply add `:cmock` ↳ `:plugins` - to your configuration and specify your desired additional plugins. + To enable CMock’s optional and advanced features available via CMock plugin, simply add + `:cmock` ↳ `:plugins` to your configuration and specify your desired additional CMock + plugins as a list. See [CMock's documentation][cmock-docs] to understand plugin options. [cmock-docs]: https://github.com/ThrowTheSwitch/CMock/blob/master/docs/CMock_Summary.md -* `:includes`: + **Default**: `[]` (empty) + +* `:unity_helper`: + + A Unity helper is a specific header file containing If `:cmock` ↳ `:unity_helper` set, prepopulated with unity_helper file name (no path). - The `:cmock` ↳ `:includes` list works identically to the plugins list - above with regard to adding additional files to be inserted within - mocks as #include statements. +* `:includes`: + + In certain advanced testing scenarios, you may need to inject additional header files + into generated mocks. The filenames in this list will be transformed in `#include` + directives within every generated mock. + + **Default**: `[]` (empty) ### Notes on Ceedling’s nudges for CMock strict ordering -The last four settings above are directly tied to other Ceedling -settings; hence, why they are listed and explained here. +The preceding settings are tied to other Ceedling settings; hence, why they are +documented here. -The first setting above, `:enforce_strict_ordering`, defaults -to `FALSE` within CMock. However, it is set to `TRUE` by default -in Ceedling as our way of encouraging you to use strict ordering. +The first setting above, `:enforce_strict_ordering`, defaults to `FALSE` within +CMock. However, it is set to `TRUE` by default in Ceedling as our way of +encouraging you to use strict ordering. -Strict ordering is teeny bit more expensive in terms of code -generated, test execution time, and complication in deciphering -test failures. However, it's good practice. And, of course, you -can always disable it by overriding the value in the Ceedling -project configuration file. +Strict ordering is teeny bit more expensive in terms of code generated, test +execution time, and complication in deciphering test failures. However, it’s +good practice. And, of course, you can always disable it by overriding the +value in the Ceedling project configuration file. ## `:unity` Configure Unity’s features @@ -4004,8 +4017,8 @@ project configuration file. To manage overall command line length, these symbols are only added to compilation when a Unity C source file is compiled. - No symbols must be set unless Unity's defaults are inappropriate for your environment - and needs. + **_Note_**: No symbols must be set unless Unity's defaults are inappropriate for your + environment and needs. **Default**: `[]` (empty) diff --git a/docs/Changelog.md b/docs/Changelog.md index 6c390703..a8fc367d 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -9,7 +9,7 @@ This changelog is complemented by two other documents: --- -# [1.0.0 pre-release] — 2024-07-17 +# [1.0.0 pre-release] — 2024-07-22 ## 🌟 Added @@ -143,6 +143,12 @@ This fix addresses the problem detailed in PR [#728](https://github.com/ThrowThe CMock can optionally mock inline functions. This requires ingesting, modifying, and rewriting a source hearder file along with then mocking it. Sophisticated header files with complex macros can require that the source header file be preprocessed before CMock then processes it a second time. In previous versions of Ceedling the preprocessing steps and handoff to CMock were not working as intended. This has been fixed. +### Bug fix for test runner generation + +Issue [#621](https://github.com/ThrowTheSwitch/Ceedling/issues/621) + +For certain advanced testing scenarios test runners generated by Ceedling + Unity must have the same `#include` list as that of the test file itself from which a runner is gnerated. Previous versions of Ceedling did not provide the proper list of `#include` directives to runner generation. This has been fixed. + ### Bug fixes for command line build tasks `files:header` and `files:support` Longstanding bugs produced duplicate and sometimes incorrect lists of header files. Similarly, support file lists were not properly expanded from globs. Both of these problems have been fixed. The `files:header` command line task has replaced the `files:include` task. @@ -185,11 +191,11 @@ The existing feature has been improved with logging and validation as well as pr Issues [#806](https://github.com/ThrowTheSwitch/Ceedling/issues/806) + [#796](https://github.com/ThrowTheSwitch/Ceedling/issues/796) -Preprocessing refers to expanding macros and other related code file text manipulations often needed in sophisticated projects before key test suite generation steps. Without (optional) preprocessing, generating test funners from test files and generating mocks from header files lead to all manner of build shenanigans. +Preprocessing refers to expanding macros and other related code text manipulations often needed in sophisticated projects before key test suite generation steps. Without (optional) preprocessing in complicated code bases, generating test runners from test files and generating mocks from header files lead to all manner of build shenanigans. -The preprocessing needed by Ceedling for sophisticated projects has always been a difficult feature to implement. The most significant reason is simply that there is no readily available cross-platform C code preprocessing tool that provides Ceedling everything it needs to do its job. Even gcc’s `cpp` preprocessor tool comes up short. Over time Ceedling’s attempt at preprocessing grew more brittle and complicated as community contribturs attempted to fix it or cause it to work properly with other new features. +The preprocessing needed by Ceedling for sophisticated projects has always been a difficult feature to implement. The most significant reason is simply that there is no readily available cross-platform C code preprocessing tool that provides Ceedling everything it needs to accomplish this task. Even gcc’s `cpp` preprocessor tool comes up short. Over time Ceedling’s attempt at preprocessing grew more brittle and complicated as community contribturs attempted to fix it or cause it to work properly with other new features. -This release of Ceedling stripped the feature back to basics and largely rewrote it within the context of the new build pipeline. Complicated regular expressions and Ruby-generated temporary files have been eliminated. Instead, Ceedling now blends two reports from gcc' `cpp` tool and complements this with additional context. In addition, preprocessing now occurs at the right moments in the overall build pipeline. +This release of Ceedling stripped the feature back to basics and largely rewrote it. Complicated regular expressions and Ruby-generated temporary files have been eliminated. Instead, Ceedling now blends two reports from gcc’s `cpp` tool and complements this with additional context. In addition, preprocessing now occurs at the right moments in the build pipeline. While this new approach is not 100% foolproof, it is far more robust and far simpler than previous attempts. Other new Ceedling features should be able to address shortcomings in edge cases. @@ -205,6 +211,15 @@ Documentation on Mixins and the new options for loading a project configuration Ceedling’s previous handling of defaults and configuration processing order certainly worked, but it was not as proper as it could be. To oversimplify, default values were applied in an ordering that caused complications for advanced plugins and advanced users. This has been rectified. Default settings are now processed after all user configurations and plugins. +### `:project` ↳ `:use_test_preprocessor` has new configuration options + +`:project` ↳ `:use_test_preprocessor` is no longer a binary setting (true/false). What is preprocessed can be chosen with the options `:none`, `:tests`, `:mocks`, `:all`. + +* `:none` maps to the previous false option (preprocessing disabled). +* `:all` maps to the previous true option running preprpocessing for all mockable header files and test C files. +* `:mocks` enables only preprocessing of header files that are to be mocked. +* `:tests` enables only preprocessing of your test files. + ### Plugin system improvements 1. The plugin subsystem has incorporated logging to trace plugin activities at high verbosity levels. @@ -314,13 +329,15 @@ In future revisions of Ceedling, smart rebuilds will be brought back (without re Note that release builds do retain a fair amount of smart rebuild capabilities. Release builds continue to rely on Rake (for now). -### Preprocessor support for Unity’s `TEST_CASE()` and `TEST_RANGE()` +### Preprocessor support for Unity’s parameterized test case macros `TEST_CASE()` and `TEST_RANGE()` -Unity’s features `TEST_CASE()` and `TEST_RANGE()` continue to work but only when `:use_test_preprocessor` is disabled. The previous project configuration option `:use_preprocessor_directives` that preserved them when preprocessing is enabled is no longer recognized. +Unity’s `TEST_CASE()` and `TEST_RANGE()` continue to work but only when `:project` ↳ `:use_test_preprocessor` is not enabled for test files. The previous project configuration option `:use_preprocessor_directives` that preserved these and other directive macros when preprocessing is enabled is no longer recognized. `TEST_CASE()` and `TEST_RANGE()` are macros that disappear when the preprocessor digests a test file. After preprocessing, they no longer exist in the test file that is compiled. -In future revisions of Ceedling, support for `TEST_CASE()` and `TEST_RANGE()` when preprocessing is enabled will be brought back (very likely without a dedicated configuration option — hopefully, we’ll get it to just work™️). +In future revisions of Ceedling, support for `TEST_CASE()` and `TEST_RANGE()` when preprocessing is enabled will be brought back (very likely without a dedicated configuration option — hopefully, we’ll get it to just work). + +Note: `:project` ↳ `:use_test_preprocessor` is no longer a binary setting (true/false). Mockable header file preprocessing can be enabled with `:mocks` while test files are left as is. ### Removed background task execution diff --git a/examples/temp_sensor/project.yml b/examples/temp_sensor/project.yml index 25138210..c98a1116 100644 --- a/examples/temp_sensor/project.yml +++ b/examples/temp_sensor/project.yml @@ -13,7 +13,7 @@ # optional features. If you don't need them, keep them turned off for performance :use_mocks: TRUE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :use_backtrace: :none # tweak the way ceedling handles automatic tasks diff --git a/lib/ceedling/configurator.rb b/lib/ceedling/configurator.rb index 23a96361..e643230f 100644 --- a/lib/ceedling/configurator.rb +++ b/lib/ceedling/configurator.rb @@ -95,7 +95,7 @@ def merge_tools_defaults(config, default_config) default_config.deep_merge( DEFAULT_TOOLS_TEST.deep_clone() ) - default_config.deep_merge( DEFAULT_TOOLS_TEST_PREPROCESSORS.deep_clone() ) if (config[:project][:use_test_preprocessor]) + default_config.deep_merge( DEFAULT_TOOLS_TEST_PREPROCESSORS.deep_clone() ) if (config[:project][:use_test_preprocessor] != :none) default_config.deep_merge( DEFAULT_TOOLS_TEST_ASSEMBLER.deep_clone() ) if (config[:test_build][:use_assembly]) default_config.deep_merge( DEFAULT_TOOLS_RELEASE.deep_clone() ) if (config[:project][:release_build]) @@ -548,6 +548,7 @@ def validate_final(config, app_cfg) app_cfg[:include_test_case], app_cfg[:exclude_test_case] ) + blotter &= @configurator_setup.validate_test_preprocessor( config ) blotter &= @configurator_setup.validate_backtrace( config ) blotter &= @configurator_setup.validate_threads( config ) blotter &= @configurator_setup.validate_plugins( config ) diff --git a/lib/ceedling/configurator_builder.rb b/lib/ceedling/configurator_builder.rb index 006dbcbc..b6ab7e84 100644 --- a/lib/ceedling/configurator_builder.rb +++ b/lib/ceedling/configurator_builder.rb @@ -142,8 +142,8 @@ def set_build_paths(in_hash) [:project_log_path, File.join(in_hash[:project_build_root], 'logs'), true ], - [:project_test_preprocess_includes_path, File.join(project_build_tests_root, 'preprocess/includes'), in_hash[:project_use_test_preprocessor] ], - [:project_test_preprocess_files_path, File.join(project_build_tests_root, 'preprocess/files'), in_hash[:project_use_test_preprocessor] ], + [:project_test_preprocess_includes_path, File.join(project_build_tests_root, 'preprocess/includes'), (in_hash[:project_use_test_preprocessor] != :none) ], + [:project_test_preprocess_files_path, File.join(project_build_tests_root, 'preprocess/files'), (in_hash[:project_use_test_preprocessor] != :none) ], ] out_hash[:project_build_paths] = [] diff --git a/lib/ceedling/configurator_setup.rb b/lib/ceedling/configurator_setup.rb index 67a53874..fefffbda 100644 --- a/lib/ceedling/configurator_setup.rb +++ b/lib/ceedling/configurator_setup.rb @@ -198,20 +198,32 @@ def validate_test_runner_generation(config, include_test_case, exclude_test_case return true end + def validate_test_preprocessor(config) + valid = true + + options = [:none, :all, :tests, :mocks] + + use_test_preprocessor = config[:project][:use_test_preprocessor] + + if !options.include?( use_test_preprocessor ) + msg = ":project ↳ :use_test_preprocessor is :'#{use_test_preprocessor}' but must be one of #{options.map{|o| ':' + o.to_s()}.join(', ')}" + @loginator.log( msg, Verbosity::ERRORS ) + valid = false + end + + return valid + end + def validate_backtrace(config) valid = true + options = [:none, :simple, :gdb] + use_backtrace = config[:project][:use_backtrace] - case use_backtrace - when :none - # Do nothing - when :simple - # Do nothing - when :gdb - # Do nothing - else - @loginator.log( ":project ↳ :use_backtrace is '#{use_backtrace}' but must be :none, :simple, or :gdb", Verbosity::ERRORS ) + if !options.include?( use_backtrace ) + msg = ":project ↳ :use_backtrace is :'#{use_backtrace}' but must be one of #{options.map{|o| ':' + o.to_s()}.join(', ')}" + @loginator.log( msg, Verbosity::ERRORS ) valid = false end diff --git a/lib/ceedling/defaults.rb b/lib/ceedling/defaults.rb index bf730cce..285fce14 100644 --- a/lib/ceedling/defaults.rb +++ b/lib/ceedling/defaults.rb @@ -307,7 +307,7 @@ :use_exceptions => false, :compile_threads => 1, :test_threads => 1, - :use_test_preprocessor => false, + :use_test_preprocessor => :none, :test_file_prefix => 'test_', :release_build => false, :use_backtrace => :simple, diff --git a/lib/ceedling/test_invoker.rb b/lib/ceedling/test_invoker.rb index b2fdb787..d2939531 100644 --- a/lib/ceedling/test_invoker.rb +++ b/lib/ceedling/test_invoker.rb @@ -67,7 +67,7 @@ def setup_and_invoke(tests:, context:TEST_SYM, options:{}) paths[:build] = build_path paths[:results] = results_path paths[:mocks] = mocks_path if @configurator.project_use_mocks - if @configurator.project_use_test_preprocessor + if @configurator.project_use_test_preprocessor != :none paths[:preprocess_incudes] = preprocess_includes_path paths[:preprocess_files] = preprocess_files_path end @@ -86,7 +86,7 @@ def setup_and_invoke(tests:, context:TEST_SYM, options:{}) @batchinator.exec(workload: :compile, things: @testables) do |_, details| filepath = details[:filepath] - if @configurator.project_use_test_preprocessor + if @configurator.project_use_test_preprocessor == :tests msg = @reportinator.generate_progress( "Parsing #{File.basename(filepath)} for build directive macros" ) @loginator.log( msg ) @@ -161,7 +161,7 @@ def setup_and_invoke(tests:, context:TEST_SYM, options:{}) @helper.extract_include_directives( arg_hash ) end - end if @configurator.project_use_test_preprocessor + end if @configurator.project_use_test_preprocessor == :tests # Determine Runners & Mocks For All Tests @batchinator.build_step("Determining Files to be Generated", heading: false) do @@ -176,7 +176,7 @@ def setup_and_invoke(tests:, context:TEST_SYM, options:{}) mocks[name.to_sym] = { :name => name, :source => source, - :input => (@configurator.project_use_test_preprocessor ? preprocessed_input : source) + :input => ((@configurator.project_use_test_preprocessor == :mocks) ? preprocessed_input : source) } end @@ -221,7 +221,7 @@ def setup_and_invoke(tests:, context:TEST_SYM, options:{}) @preprocessinator.preprocess_mockable_header_file(**arg_hash) end - } if @configurator.project_use_mocks and @configurator.project_use_test_preprocessor + } if @configurator.project_use_mocks and (@configurator.project_use_test_preprocessor == :mocks) # Generate mocks for all tests @batchinator.build_step("Mocking") { @@ -258,7 +258,7 @@ def setup_and_invoke(tests:, context:TEST_SYM, options:{}) # Replace default input with preprocessed file @lock.synchronize { details[:runner][:input_filepath] = filepath } end - } if @configurator.project_use_test_preprocessor + } if @configurator.project_use_test_preprocessor == :tests # Collect test case names @batchinator.build_step("Collecting Test Context") { @@ -273,7 +273,7 @@ def setup_and_invoke(tests:, context:TEST_SYM, options:{}) @context_extractor.collect_test_runner_details( details[:filepath], details[:runner][:input_filepath] ) end - } if @configurator.project_use_test_preprocessor + } if @configurator.project_use_test_preprocessor == :tests # Build runners for all tests @batchinator.build_step("Test Runners") do diff --git a/plugins/dependencies/example/boss/project.yml b/plugins/dependencies/example/boss/project.yml index e54470cc..fdab1bbe 100644 --- a/plugins/dependencies/example/boss/project.yml +++ b/plugins/dependencies/example/boss/project.yml @@ -13,7 +13,7 @@ # optional features. If you don't need them, keep them turned off for performance :use_mocks: TRUE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :use_backtrace: :none # tweak the way ceedling handles automatic tasks diff --git a/plugins/dependencies/example/supervisor/project.yml b/plugins/dependencies/example/supervisor/project.yml index eff487ef..57b3b1d8 100644 --- a/plugins/dependencies/example/supervisor/project.yml +++ b/plugins/dependencies/example/supervisor/project.yml @@ -13,7 +13,7 @@ # optional features. If you don't need them, keep them turned off for performance :use_mocks: TRUE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :use_backtrace: :none # tweak the way ceedling handles automatic tasks diff --git a/plugins/fff/examples/fff_example/project.yml b/plugins/fff/examples/fff_example/project.yml index 7cd588d1..df023436 100644 --- a/plugins/fff/examples/fff_example/project.yml +++ b/plugins/fff/examples/fff_example/project.yml @@ -13,7 +13,7 @@ # optional features. If you don't need them, keep them turned off for performance :use_mocks: TRUE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :use_backtrace: :none # tweak the way ceedling handles automatic tasks diff --git a/plugins/module_generator/example/project.yml b/plugins/module_generator/example/project.yml index 753de2e7..b1c89915 100644 --- a/plugins/module_generator/example/project.yml +++ b/plugins/module_generator/example/project.yml @@ -13,7 +13,7 @@ # optional features. If you don't need them, keep them turned off for performance :use_mocks: TRUE - :use_test_preprocessor: TRUE + :use_test_preprocessor: :all :use_backtrace: :none # tweak the way ceedling handles automatic tasks diff --git a/spec/spec_system_helper.rb b/spec/spec_system_helper.rb index 737da435..db3ed224 100644 --- a/spec/spec_system_helper.rb +++ b/spec/spec_system_helper.rb @@ -425,7 +425,7 @@ def can_test_projects_unity_parameterized_test_cases_with_success @c.with_context do Dir.chdir @proj_name do FileUtils.cp test_asset_path("test_example_with_parameterized_tests.c"), 'test/' - settings = { :project => { :use_test_preprocessor => false }, + settings = { :project => { :use_test_preprocessor => :none }, :unity => { :use_param_tests => true } } @c.merge_project_yml_for_test(settings)