| --- |
| |
| # Notes: |
| # Sample project C code is not presently written to produce a release artifact. |
| # As such, release build options are disabled. |
| # This sample, therefore, only demonstrates running a collection of unit tests. |
| |
| :project: |
| :use_exceptions: TRUE |
| :use_mocks: TRUE |
| :use_test_preprocessor: TRUE |
| :use_auxiliary_dependencies: TRUE |
| :use_deep_dependencies: TRUE |
| :build_root: _build |
| # :release_build: TRUE |
| :test_file_prefix: test_ |
| :which_ceedling: vendor/ceedling |
| :ceedling_version: 0.31.1 |
| :default_tasks: |
| - test:all |
| |
| #:test_build: |
| # :use_assembly: TRUE |
| |
| #:release_build: |
| # :output: MyApp.out |
| # :use_assembly: FALSE |
| |
| :environment: |
| |
| :extension: |
| :executable: .out |
| |
| :paths: |
| :test: |
| - +:test/** |
| - -:test/support |
| :source: |
| - ../../src/** |
| :support: |
| - test/support |
| |
| :defines: |
| # in order to add common defines: |
| # 1) remove the trailing [] from the :common: section |
| # 2) add entries to the :common: section (e.g. :test: has TEST defined) |
| :common: &common_defines [] |
| :test: |
| - _UNITY_TEST_ |
| #- *common_defines |
| :test_preprocess: |
| - _UNITY_TEST_ |
| #- *common_defines |
| |
| :cmock: |
| :mock_prefix: mock_ |
| :when_no_prototypes: :warn |
| :enforce_strict_ordering: TRUE |
| :plugins: |
| - :ignore |
| - :ignore_arg |
| - :return_thru_ptr |
| - :callback |
| - :array |
| :treat_as: |
| uint8: HEX8 |
| uint16: HEX16 |
| uint32: UINT32 |
| int8: INT8 |
| bool: UINT8 |
| |
| # Add -gcov to the plugins list to make sure of the gcov plugin |
| # You will need to have gcov and gcovr both installed to make it work. |
| # For more information on these options, see docs in plugins/gcov |
| :gcov: |
| :html_report: TRUE |
| :html_report_type: detailed |
| :html_medium_threshold: 75 |
| :html_high_threshold: 90 |
| :xml_report: FALSE |
| |
| :tools: |
| :test_compiler: |
| :executable: gcc |
| :name: 'gcc compiler' |
| :arguments: |
| - -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE #expands to -I search paths |
| - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR #expands to -I search paths |
| - -D$: COLLECTION_DEFINES_TEST_AND_VENDOR #expands to all -D defined symbols |
| #- -fsanitize=address |
| - -c ${1} #source code input file (Ruby method call param list sub) |
| - -o ${2} #object file output (Ruby method call param list sub) |
| :test_linker: |
| :executable: gcc |
| :name: 'gcc linker' |
| :arguments: |
| #- -fsanitize=address |
| - ${1} #list of object files to link (Ruby method call param list sub) |
| - -o ${2} #executable file output (Ruby method call param list sub) |
| |
| # LIBRARIES |
| # These libraries are automatically injected into the build process. Those specified as |
| # common will be used in all types of builds. Otherwise, libraries can be injected in just |
| # tests or releases. These options are MERGED with the options in supplemental yaml files. |
| :libraries: |
| :placement: :end |
| :flag: "${1}" # or "-L ${1}" for example |
| :common: &common_libraries [] |
| :test: |
| #- *common_libraries |
| :release: |
| #- *common_libraries |
| |
| :plugins: |
| :load_paths: |
| - vendor/ceedling/plugins |
| :enabled: |
| - stdout_pretty_tests_report |
| - module_generator |
| - raw_output_report |
| - colour_report |
| ... |