rusefi-1/unit_tests
Scott Smith 13c496b79b
Make getTimeNowNt even faster (#3504)
The last version is already much better than the original, mostly because it doesn't call
CriticalSectionLocker, which has a ton of overhead due to debug tracking.  But this version is
another 4 instructions / 12 bytes shorter.  Does as much match in 32-bit land as possible, and
avoids math operations that span 64-bits (i.e. either operate on the lower half or upper half, but
not both).  The result is only 3 instructions not including the necessary 4 loads (ptr to now, now,
ptr to upper, upper), 1 store (upper), and 1 return/branch.
2021-11-08 14:24:31 -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 Make getTimeNowNt even faster (#3504) 2021-11-08 14:24:31 -05:00
.cproject
.gitignore
.project
Makefile better pch usage and gmock constructors (#3426) 2021-10-30 20:31:09 -04:00
adc_inputs.h
boards.cpp yet more pch (#3068) 2021-08-03 22:05:01 -04: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 lua curve progress 2021-11-05 10:34:12 -04:00
engine_test_helper.h reducing crazy in unit tests 2021-10-01 22:29:44 -04:00
global.h WITH_ENGINE_TEST_HELPER_BOARD_CALLBACK 2021-11-08 12:27:02 -05: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
logicdata.h
logicdata_csv_reader.cpp yet more pch (#3068) 2021-08-03 22:05:01 -04:00
logicdata_csv_reader.h
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 better pch usage and gmock constructors (#3426) 2021-10-30 20:31:09 -04:00
mocks.h better pch usage and gmock constructors (#3426) 2021-10-30 20:31:09 -04: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
svnversion.h
test.mk
triggers.txt Trigger wheel definitions 2021-11-05 22:25:35 +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 unit test build times (#3489) 2021-11-06 21:20:24 -04: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.