rusefi-1/unit_tests
Scott Smith 5bc1949aef
Basic framework for high pressure fuel pump control (#3476)
* Basic framework for high pressure fuel pump control

* Many changes

Move calculations to fast callback
Move main object into Engine
Respond to pin changes without requiring a reboot

* Use EngineModule for HpfpController
Schedule pin off after executing pin on so we are sure it ends, even if the motor stops.
Test scheduling.
Less RAM use by only having one event and reordering fields.

* Make scheduling test actually useful - need non-0 activation angle.

Co-authored-by: rusefillc <48498823+rusefillc@users.noreply.github.com>
2021-11-19 23:06:51 -05: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 Basic framework for high pressure fuel pump control (#3476) 2021-11-19 23:06:51 -05: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 Basic framework for high pressure fuel pump control (#3476) 2021-11-19 23:06:51 -05:00
engine_test_helper.cpp Separate out scheduleOrQueue into it's own standalone scheduler. (#3573) 2021-11-18 14:27:21 -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 Final cleanup of ENGINE macros (#3567) 2021-11-17 13:45:10 -05: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 turn on c++ 20 (#3579) 2021-11-19 22:19:34 -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.