fome-fw/unit_tests
Matthew Kennedy 8bce705c73
selectable CAN wideband controller mode (#598)
* add enum

* Add wideband type configuration

* name

* words

* CAN wideband enum names

* update tests to match new logic
2025-05-28 16:41:40 -07:00
..
chibios-mock Simpler thread controller (#4327) 2022-08-02 01:16:13 +03:00
googletest@b10fad38c4 update googletest, because why not 2023-11-17 00:20:21 -08:00
test_basic_math wow, all of this was dead code 2024-07-03 00:37:27 -07:00
tests selectable CAN wideband controller mode (#598) 2025-05-28 16:41:40 -07:00
.cproject
.gitignore script to generate code coverage 2025-01-07 21:11:53 -08:00
.project
Makefile Remove sensor chart (#568) 2025-03-07 03:28:29 -08:00
adc_inputs.h we often mean inline when we say static 2024-03-28 18:20:40 -07:00
boards.cpp remove mock adc (#3888) 2022-02-03 20:43:34 -05:00
boards.h
ci_gcov.sh use -C flag (#3811) 2022-01-18 19:25:59 -05:00
efifeatures.h Remove sensor chart (#568) 2025-03-07 03:28:29 -08:00
engine_test_helper.cpp Control injectors with a mask rather than pointers (#551) 2025-02-13 17:54:42 -08:00
engine_test_helper.h Control injectors with a mask rather than pointers (#551) 2025-02-13 17:54:42 -08:00
generate_coverage.sh script to generate code coverage 2025-01-07 21:11:53 -08:00
global.h Remove stack checks (#558) 2025-02-18 17:33:24 -08:00
global_execution_queue.cpp rename Executor -> Scheduler 2024-07-11 17:03:13 -07:00
global_execution_queue.h rename Executor -> Scheduler 2024-07-11 17:03:13 -07:00
global_mocks.cpp wow, all of this was dead code 2024-07-03 00:37:27 -07:00
gmock-all.cpp
gtest-all.cpp update gtest 2023-02-23 12:07:55 -08:00
logicdata.cpp correct logicdata time scale 2025-02-13 23:16:48 -08:00
logicdata.h avoid UB in tests 2024-03-22 12:07:58 -07:00
logicdata_csv_reader.cpp for loop formatting 2024-07-03 00:22:48 -07:00
logicdata_csv_reader.h s 2024-06-03 01:04:58 -07:00
logicdata_sandbox.cpp unit test framework improvements for smoother event execution 2020-07-20 12:45:26 -04:00
main.cpp ETB duty cycle jitter #4833 2022-11-30 15:25:50 -05:00
mocks.cpp airmass takes a ptr for VE table 2024-09-25 00:27:40 -07:00
mocks.h move idle "capture" RPM math to getTargetRpm 2025-03-09 00:52:33 -08:00
readme.md rename test binary 2023-04-11 16:26:15 -07:00
rules.mk remove jni weirdness 2023-02-20 21:18:13 -08:00
run_logicdata_sandbox.bat let's add .logicdata for unit tests 2020-07-19 16:13:55 -04:00
run_sharded_tests.sh we have almost 600 tests! 2024-09-17 18:51:26 -07:00
svnversion.h occasional tunerstudio CRC errors #1943 2020-11-15 11:53:09 -05:00
test.mk move math (#4353) 2022-07-17 00:16:22 -04:00
triggers.txt trigger txt 2025-03-12 02:05:30 -07:00
unit_test_framework.cpp assertEqualsM 2025-01-01 14:22:53 -08:00
unit_test_framework.h assertEqualsM 2025-01-01 14:22:53 -08:00
unit_test_rules.mk fix build for mac 2025-03-12 02:05:49 -07:00

readme.md

TL, DR: just follow tests folder as examples.

  1. Run 'make' to build desktop binary.
  2. Execute fome_test binary on your PC/Mac, it's expected to say SUCCESS and not fail :) Googletest will also print results summary.
  3. To run only one test, run like this: build/fome_test --gtest_filter=MyTestName

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.

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.