mirror of
https://github.com/ThrowTheSwitch/CException
synced 2025-01-22 01:48:42 -05:00
264 lines
9.6 KiB
YAML
264 lines
9.6 KiB
YAML
# =========================================================================
|
|
# CException - Simple Exception Handling in C
|
|
# ThrowTheSwitch.org
|
|
# Copyright (c) 2007-24 Mark VanderVoord
|
|
# SPDX-License-Identifier: MIT
|
|
# =========================================================================
|
|
|
|
---
|
|
|
|
# This project file is for using Ceedling to run CException's self-tests. The
|
|
# only requirement for USING CException is in the lib folder.
|
|
|
|
:project:
|
|
# how to use ceedling. If you're not sure, leave this as `gem` and `?`
|
|
:which_ceedling: gem
|
|
:ceedling_version: '1.0.0'
|
|
|
|
# optional features. If you don't need them, keep them turned off for performance
|
|
:use_mocks: TRUE
|
|
:use_test_preprocessor: :none
|
|
:use_backtrace: :simple
|
|
|
|
# tweak the way ceedling handles automatic tasks
|
|
:build_root: build
|
|
:test_file_prefix: Test
|
|
:default_tasks:
|
|
- clobber
|
|
- test:all
|
|
|
|
# performance options. If your tools start giving mysterious errors, consider
|
|
# dropping this to 1 to force single-tasking
|
|
:test_threads: 8
|
|
:compile_threads: 8
|
|
|
|
# enable release build (more details in release_build section below)
|
|
:release_build: FALSE
|
|
|
|
# Specify where to find mixins and any that should be enabled automatically
|
|
:mixins:
|
|
:enabled: []
|
|
:load_paths: []
|
|
|
|
# further details to configure the way Ceedling handles test code
|
|
:test_build:
|
|
:use_assembly: FALSE
|
|
|
|
# Plugins are optional Ceedling features which can be enabled. Ceedling supports
|
|
# a variety of plugins which may effect the way things are compiled, reported,
|
|
# or may provide new command options. Refer to the readme in each plugin for
|
|
# details on how to use it.
|
|
:plugins:
|
|
:load_paths: []
|
|
:enabled:
|
|
#- beep # beeps when finished, so you don't waste time waiting for ceedling
|
|
- module_generator # handy for quickly creating source, header, and test templates
|
|
#- gcov # test coverage using gcov. Requires gcc, gcov, and a coverage analyzer like gcovr
|
|
#- bullseye # test coverage using bullseye. Requires bullseye for your platform
|
|
#- command_hooks # write custom actions to be called at different points during the build process
|
|
#- compile_commands_json_db # generate a compile_commands.json file
|
|
#- dependencies # automatically fetch 3rd party libraries, etc.
|
|
#- subprojects # managing builds and test for static libraries
|
|
#- fake_function_framework # use FFF instead of CMock
|
|
|
|
# Report options (You'll want to choose one stdout option, but may choose multiple stored options if desired)
|
|
#- report_build_warnings_log
|
|
#- report_tests_gtestlike_stdout
|
|
#- report_tests_ide_stdout
|
|
#- report_tests_log_factory
|
|
- report_tests_pretty_stdout
|
|
#- report_tests_raw_output_log
|
|
#- report_tests_teamcity_stdout
|
|
|
|
# Specify which reports you'd like from the log factory
|
|
:report_tests_log_factory:
|
|
:reports:
|
|
- json
|
|
- junit
|
|
- cppunit
|
|
- html
|
|
|
|
# override the default extensions for your system and toolchain
|
|
:extension:
|
|
#:header: .h
|
|
#:source: .c
|
|
#:assembly: .s
|
|
#:dependencies: .d
|
|
#:object: .o
|
|
:executable: .out
|
|
#:testpass: .pass
|
|
#:testfail: .fail
|
|
#:subprojects: .a
|
|
|
|
# This is where Ceedling should look for your source and test files.
|
|
# see documentation for the many options for specifying this.
|
|
:paths:
|
|
:test:
|
|
- +:test/**
|
|
- -:test/support
|
|
:source:
|
|
- lib/**
|
|
:include:
|
|
- lib/** # In simple projects, this entry often duplicates :source
|
|
:support:
|
|
- test/support
|
|
:libraries: []
|
|
|
|
# You can even specify specific files to add or remove from your test
|
|
# and release collections. Usually it's better to use paths and let
|
|
# Ceedling do the work for you!
|
|
:files:
|
|
:test: []
|
|
:source: []
|
|
|
|
# Compilation symbols to be injected into builds
|
|
# See documentation for advanced options:
|
|
# - Test name matchers for different symbols per test executable build
|
|
# - Referencing symbols in multiple lists using advanced YAML
|
|
# - Specifiying symbols used during test preprocessing
|
|
:defines:
|
|
:test:
|
|
- TEST
|
|
- CEXCEPTION_USE_CONFIG_FILE
|
|
:test_preprocess:
|
|
- TEST
|
|
- CEXCEPTION_USE_CONFIG_FILE
|
|
|
|
# Enable to inject name of a test as a unique compilation symbol into its respective executable build.
|
|
:use_test_definition: FALSE
|
|
|
|
# Configure additional command line flags provided to tools used in each build step
|
|
# :flags:
|
|
# :release:
|
|
# :compile: # Add '-Wall' and '--02' to compilation of all files in release target
|
|
# - -Wall
|
|
# - --O2
|
|
# :test:
|
|
# :compile:
|
|
# '(_|-)special': # Add '-pedantic' to compilation of all files in all test executables with '_special' or '-special' in their names
|
|
# - -pedantic
|
|
# '*': # Add '-foo' to compilation of all files in all test executables
|
|
# - -foo
|
|
|
|
# Configuration Options specific to CMock. See CMock docs for details
|
|
:cmock:
|
|
# Core conffiguration
|
|
:plugins: # What plugins should be used by CMock?
|
|
- :ignore
|
|
- :callback
|
|
:verbosity: 2 # the options being 0 errors only, 1 warnings and errors, 2 normal info, 3 verbose
|
|
:when_no_prototypes: :warn # the options being :ignore, :warn, or :erro
|
|
|
|
# File configuration
|
|
:skeleton_path: '' # Subdirectory to store stubs when generated (default: '')
|
|
:mock_prefix: 'mock_' # Prefix to append to filenames for mocks
|
|
:mock_suffix: '' # Suffix to append to filenames for mocks
|
|
|
|
# Parser configuration
|
|
:strippables: ['(?:__attribute__\s*\([ (]*.*?[ )]*\)+)']
|
|
:attributes:
|
|
- __ramfunc
|
|
- __irq
|
|
- __fiq
|
|
- register
|
|
- extern
|
|
:c_calling_conventions:
|
|
- __stdcall
|
|
- __cdecl
|
|
- __fastcall
|
|
:treat_externs: :exclude # the options being :include or :exclud
|
|
:treat_inlines: :exclude # the options being :include or :exclud
|
|
|
|
# Type handling configuration
|
|
#:unity_helper_path: '' # specify a string of where to find a unity_helper.h file to discover custom type assertions
|
|
:treat_as: # optionally add additional types to map custom types
|
|
uint8: HEX8
|
|
uint16: HEX16
|
|
uint32: UINT32
|
|
int8: INT8
|
|
bool: UINT8
|
|
#:treat_as_array: {} # hint to cmock that these types are pointers to something
|
|
#:treat_as_void: [] # hint to cmock that these types are actually aliases of void
|
|
:memcmp_if_unknown: true # allow cmock to use the memory comparison assertions for unknown types
|
|
:when_ptr: :compare_data # hint to cmock how to handle pointers in general, the options being :compare_ptr, :compare_data, or :smart
|
|
|
|
# Mock generation configuration
|
|
:weak: '' # Symbol to use to declare weak functions
|
|
:enforce_strict_ordering: true # Do we want cmock to enforce ordering of all function calls?
|
|
:fail_on_unexpected_calls: true # Do we want cmock to fail when it encounters a function call that wasn't expected?
|
|
:callback_include_count: true # Do we want cmock to include the number of calls to this callback, when using callbacks?
|
|
:callback_after_arg_check: false # Do we want cmock to enforce an argument check first when using a callback?
|
|
#:includes: [] # You can add additional includes here, or specify the location with the options below
|
|
#:includes_h_pre_orig_header: []
|
|
#:includes_h_post_orig_header: []
|
|
#:includes_c_pre_header: []
|
|
#:includes_c_post_header: []
|
|
#:array_size_type: [] # Specify a type or types that should be used for array lengths
|
|
#:array_size_name: 'size|len' # Specify a name or names that CMock might automatically recognize as the length of an array
|
|
:exclude_setjmp_h: false # Don't use setjmp when running CMock. Note that this might result in late reporting or out-of-order failures.
|
|
|
|
# Configuration options specific to Unity.
|
|
:unity:
|
|
:defines:
|
|
- UNITY_EXCLUDE_FLOAT
|
|
|
|
# You can optionally have ceedling create environment variables for you before
|
|
# performing the rest of its tasks.
|
|
:environment: []
|
|
|
|
# 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: "-l${1}"
|
|
:path_flag: "-L ${1}"
|
|
:system: [] # for example, you might list 'm' to grab the math library
|
|
:test: []
|
|
:release: []
|
|
|
|
################################################################
|
|
# PLUGIN CONFIGURATION
|
|
################################################################
|
|
|
|
# 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:
|
|
:utilities:
|
|
- gcovr # Use gcovr to create the specified reports (default).
|
|
#- ReportGenerator # Use ReportGenerator to create the specified reports.
|
|
:reports: # Specify one or more reports to generate.
|
|
# Make an HTML summary report.
|
|
- HtmlBasic
|
|
# - HtmlDetailed
|
|
# - Text
|
|
# - Cobertura
|
|
# - SonarQube
|
|
# - JSON
|
|
# - HtmlInline
|
|
# - HtmlInlineAzure
|
|
# - HtmlInlineAzureDark
|
|
# - HtmlChart
|
|
# - MHtml
|
|
# - Badges
|
|
# - CsvSummary
|
|
# - Latex
|
|
# - LatexSummary
|
|
# - PngChart
|
|
# - TeamCitySummary
|
|
# - lcov
|
|
# - Xml
|
|
# - XmlSummary
|
|
:gcovr:
|
|
# :html_artifact_filename: TestCoverageReport.html
|
|
# :html_title: Test Coverage Report
|
|
:html_medium_threshold: 75
|
|
:html_high_threshold: 90
|
|
# :html_absolute_paths: TRUE
|
|
# :html_encoding: UTF-8
|
|
|
|
|
|
...
|