see #7245 |
||
---|---|---|
.. | ||
chibios-mock | ||
googletest@c231e6f5b1 | ||
test-framework | ||
test_basic_math | ||
test_results | ||
tests | ||
.cproject | ||
.gitignore | ||
.project | ||
Makefile | ||
_time_tests.sh | ||
adc_inputs.h | ||
boards.cpp | ||
boards.h | ||
ci_gcov.sh | ||
clean_compile.bat | ||
clean_compile.sh | ||
efifeatures.h | ||
global.h | ||
global_mocks.cpp | ||
gmock-all.cpp | ||
gtest-all.cpp | ||
logicdata.cpp | ||
logicdata.h | ||
main.cpp | ||
mocks.cpp | ||
mocks.h | ||
readme.md | ||
rules.mk | ||
run_clean_gcov.sh | ||
run_logicdata_sandbox.bat | ||
run_sharded_tests.sh | ||
test.mk | ||
triggers.txt | ||
unit_test_rules.mk |
readme.md
See https://github.com/rusefi/rusefi/wiki/Dev-Quality-Control
TL, DR: just follow tests folder as examples. tests/nitrous_control is a great starting point!
gcc/makefile/gtest
- Run 'make' to build desktop binary.
- Execute rusefi_test binary on your PC/Mac, it's expected to say SUCCESS and not fail :) Googletest will also print results summary.
- To run only one test use command line like
build/rusefi_test --gtest_filter=*TEST_NAME*
uncomment and modify main.cpp line::testing::GTEST_FLAG(filter)
In this folder we have rusEFI unit tests using https://github.com/google/googletest
Unit tests are not aware of ChibiOS or ARM or else, they are just plain C/C++ which you build for your desktop, not your MCU.
See also https://github.com/rusefi/rusefi/wiki/Build-Server-and-Automation
Triggers Images
Trigger images generation is still a two-step manual process:
Step 1: Invoke unit_tests. One of the unit_tests artifacts is triggers.txt
Step 2: Once we have triggers.txt updated by unit_tests we can invoke firmware/gen_trigger_images.bat in order to generate actual trigger images.
Two-step TDD
We are trying to https://en.wikipedia.org/wiki/Test-driven_development
Ideal change happens as two commits:
- first we add coverage for current behaviour. In case of a defect we add green coverage confirming defect.
- second step would be change in production code alongside of change in coverage.