rusefi-1/unit_tests
Scott Smith 988aacdd91
Create a base class EngineModule for that contains various useful callbacks. (#3548)
* Create a base class EngineModule for that contains various useful callbacks.

This cleans up the API by not requiring the notifiers to know about who wants callbacks.  The only
place you need to update to add a module is in one place.

* Add mockability.

* Convert InjectorModel to a Mockable EngineModule
2021-11-17 20:13:19 +03:00
..
chibios-mock trigger signal debug pins - logic level output #2959 2021-07-15 00:50:29 -04:00
googletest@dcc92d0ab6
test_basic_math support autoscale on table axes (#3452) 2021-11-03 19:53:26 -04:00
tests Create a base class EngineModule for that contains various useful callbacks. (#3548) 2021-11-17 20:13:19 +03:00
.cproject
.gitignore NB2 hellen-72-rev-d something is off #2958 2021-07-13 11:57:18 -04:00
.project
Makefile better pch usage and gmock constructors (#3426) 2021-10-30 20:31:09 -04:00
adc_inputs.h
boards.cpp remove engine pointer passing (#3556) 2021-11-16 04:15:29 -05:00
boards.h
ci_gcov.sh Use SSH for remaining workflows (#3407) 2021-10-25 08:22:31 -04:00
clean_compile.bat Review unit_tests/compile.sh fix #3349 2021-10-13 15:33:31 -04:00
clean_compile.sh Review unit_tests/compile.sh fix #3349 2021-10-13 21:09:11 -04:00
efifeatures.h unit test vss segfault fix (#3090) 2021-08-01 15:05:52 -04:00
engine_test_helper.cpp Programmatically remove EnginePtr/inject, EXPAND_Engine, and WITH_ENGINE_TEST_HELPER* (#3560) 2021-11-16 16:52:11 -05:00
engine_test_helper.h remove engine pointer passing (#3556) 2021-11-16 04:15:29 -05:00
global.h Remove a bunch of macros from engine_ptr.h (#3562) 2021-11-17 10:01:39 +03:00
global_execution_queue.cpp add cancel to scheduler (#3201) 2021-08-27 11:30:06 +03:00
global_execution_queue.h add cancel to scheduler (#3201) 2021-08-27 11:30:06 +03:00
global_mocks.cpp Whatever we call it, no matter how we do it - we need live data / remote view into rusEFI actual state #3353 2021-10-14 15:17:30 -04:00
globalaccess.h cleanup for pch (#3062) 2021-07-25 20:43:02 -04:00
gmock-all.cpp
gtest-all.cpp
jenkins.sh
logicdata.cpp docs 2021-07-02 22:06:08 -04:00
logicdata.h
logicdata_csv_reader.cpp remove engine pointer passing (#3556) 2021-11-16 04:15:29 -05:00
logicdata_csv_reader.h Use Valgrind to detect unitialized variable references. (#3555) 2021-11-15 23:42:23 -05:00
logicdata_sandbox.cpp
main.cpp docs 2021-08-31 05:37:14 -04:00
map_resize.cpp yet more pch (#3068) 2021-08-03 22:05:01 -04:00
map_resize.h
mocks.cpp test TS writes (#3515) 2021-11-10 07:29:40 -05:00
mocks.h test TS writes (#3515) 2021-11-10 07:29:40 -05:00
os_access.h
readme.md docs 2021-08-31 04:22:26 -04:00
rules.mk unit test build times (#3489) 2021-11-06 21:20:24 -04:00
run_clean_gcov.sh
run_gcov.bat
run_logicdata_sandbox.bat
run_sharded_tests.sh shard unit tests (#2906) 2021-07-04 22:28:31 -04:00
svnversion.h
test.mk progress 2021-06-26 00:16:41 -04:00
triggers.txt Trigger wheel definitions 2021-11-14 23:14:04 +00:00
unit_test_framework.cpp yet more pch (#3068) 2021-08-03 22:05:01 -04:00
unit_test_framework.h yet more pch (#3068) 2021-08-03 22:05:01 -04:00
unit_test_rules.mk Use Valgrind to detect unitialized variable references. (#3555) 2021-11-15 23:42:23 -05:00

readme.md

TL, DR: just follow tests folder as examples

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.

  1. Run 'make' to build desktop binary.
  2. Execute rusefi_test binary on your PC/Mac, it's expected to say SUCCESS and not fail :) Googletest will also print results summary.

Code Coverage Report

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.