docker_cproject_example/tests/unittest/project.yml

148 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.
# https://embeddedartistry.com/blog/2019/2/25/unit-testing-and-reporting-on-a-build-server-using-ceedling-and-unity
:project:
:use_exceptions: FALSE
:use_test_preprocessor: TRUE
:use_auxiliary_dependencies: TRUE
:build_root: build
:release_build: FALSE
:test_file_prefix: test
:which_ceedling: gem
:default_tasks:
- test:all
:environment:
:extension:
:executable: .out
:paths:
:test:
- +:test/**
- -:support
- -:generated
:source:
- ../../src/**
- ../../include
:support:
- support
- generated
: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)
:commmon: &common_defines # A nice typo, next to invisible :)
:test:
# - *common_defines
- UNITY_INCLUDE_CONFIG_H
- TEST
:test_preprocess:
# - *common_defines
- TEST
:cmock:
:defines:
- CMOCK_MEM_DYNAMIC
- TEST
# - UNITY_INT_WIDTH=32
# - UNITY_LONG_WIDTH=32
# - UNITY_POINTER_WIDTH=32
:mock_prefix: mock_
:when_no_prototypes: :warn
:enforce_strict_ordering: TRUE
:plugins:
- :ignore
- :ignore_arg
- :callback
- :array
:treat_as:
uint8: HEX8
uint16: HEX16
uint32: UINT32
int8: INT8
bool: UINT8
:gcov:
:gcovr:
# The root directory of your source files. Defaults to ".", the current directory.
# File names are reported relative to this root. The report_root is the default report_include.
:report_root: "../../"
:reports:
- HtmlDetailed
:report_include: "^../../src/.*"
:report_exclude: "^vendor.*|^build.*|^test.*|^lib.*|^.*_build.*"
#:tools:
# Ceedling defaults to using gcc for compiling, linking, etc.
# As [:tools] is blank, gcc will be used (so long as it's in your system path)
# See documentation to configure a given toolchain for use
# required for math.h
:tools_test_linker:
:arguments:
- -lm
:tools_gcov_linker:
:arguments:
- -lm
# https://gist.github.com/austinglaser/cb91ba7bb864a2fc87f72e7dc838cd6e
:flags:
:test:
:compile:
:*:
- -Wall
- -g0
- -O3
- -m32
:link:
:*:
- -g0
- -O3
- -m32
:gcov:
:compile:
:*:
- -g0
- -O3
- -Wall
- -m32
:link:
:*:
- -g0
- -O3
- -m32
# 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:
- "#{Ceedling.load_path}"
:enabled:
- stdout_pretty_tests_report
- module_generator
- xml_tests_report
- gcov
# :test_runner:
# :cmdline_args: true