122 lines
3.2 KiB
YAML
122 lines
3.2 KiB
YAML
---
|
|
|
|
# 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
|
|
- _UNITY_TEST_
|
|
:test:
|
|
- *common_defines
|
|
:test_preprocess:
|
|
- *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: clang
|
|
:name: 'clang 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: clang
|
|
:name: 'clang 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
|
|
...
|