3.1.14. Waf Tool Unit Test

The tool is located in tools/waf-tools.

3.1.14.1. Tool Documentation

Implements a waf tool to configure a Ceedling project to foxBMS specific needs and builds and runs the tests.

For information on Ceedling see https://github.com/ThrowTheSwitch/Ceedling.

f_unit_test.add_ceedling_task(self)

Task creator for ceedling. If the coverage option is set, use the coverage task, otherwise the standard task without coverage.

class f_unit_test.ceedling(*args: Any, **kwargs: Any)

Bases: waflib.Task.

class to run Ceedling

always_run = True

Ceedling handles the need for a re-run, so always run this task

Type

str

color = 'GREEN'

color in which the command line is displayed in the terminal

Type

str

run_str = '${RUBY} ${CEEDLING} ${CEEDLING_OPTIONS} ${CEEDLING_TEST_OPTIONS}'

string to be interpolated to create the command line to run ceedling (conf.env.CEEDLING_TEST_OPTIONS are applied).

Type

str

class f_unit_test.ceedling_coverage(*args: Any, **kwargs: Any)

Bases: waflib.Task.

Call ceedling with coverage options

always_run = True

Ceedling handles the need for a re-run, so always run this task

Type

str

color = 'GREEN'

color in which the command line is displayed in the terminal

Type

str

run_str = '${RUBY} ${CEEDLING} ${CEEDLING_OPTIONS} ${CEEDLING_COVERAGE_OPTIONS}'

string to be interpolated to create the command line to run ceedling (conf.env.CEEDLING_COVERAGE_OPTIONS are applied).

Type

str

f_unit_test.configure(conf)

configuration step of the Ceedling waf tool:

  • Find required software (ruby, gcc, gcov, gcovr and ceedling)

  • configure a ceedling project