Commit Graph

130 Commits

Author SHA1 Message Date
Adeeb Shihadeh
175f1a581a add fail-fast MISRA addon for mutation tests
The new misra_failfast.py wrapper patches misra.py's reportError to
sys.exit(1) on the first real violation, handling cppcheck's inline
and macro suppressions to avoid false positives on clean code.
Also removes sampling (all 12 tests run in ~38s with xdist) and
adds board/crypto and board/certs to ignored mutation paths since
they're only included from bootstub.c.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 17:32:50 -08:00
Adeeb Shihadeh
ea98e8a167 speed up MISRA mutation tests
- skip scons build (cppcheck analyzes source directly)
- add MISRA_ONLY mode: use --enable=style instead of --enable=all
- skip copying .venv and caches in copytree (211MB -> 5MB)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:32:37 -08:00
Adeeb Shihadeh
254767369e run all tests in test.sh (#2364) 2026-02-28 16:05:49 -08:00
Adeeb Shihadeh
25357d5c6f Revert "make test_misra.sh a lil nicer to run"
This reverts commit 16a8e521d8.
2026-02-28 14:35:23 -08:00
Adeeb Shihadeh
16a8e521d8 make test_misra.sh a lil nicer to run 2026-02-28 14:23:09 -08:00
Adeeb Shihadeh
d3cbcf91b0 build system simplifications (#2359)
* buidl system simplifications

* less j

* fix that
2026-02-28 14:14:17 -08:00
Adeeb Shihadeh
5c1f2578ef use vendored cppcheck from dependencies repo (#2347) 2026-02-23 12:47:39 -08:00
Adeeb Shihadeh
259645f427 Revert "[bot] Update cppcheck to 2.19.1 (#2254)"
This reverts commit ae769db8b6.
2026-02-04 12:50:32 -08:00
commaci-public
ae769db8b6 [bot] Update cppcheck to 2.19.1 (#2254)
* [bot] Update cppcheck to 2.19.1

* update coverage table

---------

Co-authored-by: Vehicle Researcher <user@comma.ai>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2026-02-02 07:37:23 -08:00
Jason Huang
515ac45fc0 Add comma body firmware (#2291)
* motors

* can

* cleanup unused stuff

* initial clean

* more clean

* remove integral and derivative clamps, revert pwm driver to original

* remove integral and derivative clamps, revert pwm driver to original

* remove integral and derivative clamps, revert pwm driver to original

* dont need this for now

* clean

* fix can rx and can version error

* ignore body for misra mutation test

* fix bus recovery, remove body rx hook
2025-10-24 17:14:39 -07:00
Adeeb Shihadeh
7973ba4492 CAN driver cleanup (#2276)
* it's all the same thing

* not live

* less macro

* lil more

* bool

* lil more
2025-09-10 20:00:41 -07:00
Adeeb Shihadeh
e5a39a2cef misc cleanup (#2261)
* cleanup

* fix jungle

* one more
2025-08-26 15:01:22 -07:00
Adeeb Shihadeh
1ce986f75c bye bye f4 (#2259)
* bye bye f4

* lil more

* fix mac build

* update health idx
2025-08-26 12:37:36 -07:00
Adeeb Shihadeh
7c97ab5f35 cleanup build (#2234)
* cleanup bootstub build

* cleanup rest of build

* less files

* all in same obj

* oops

* lil more
2025-07-20 11:29:58 -07:00
Adeeb Shihadeh
ca603115cb Include from project root (#2232)
* fix include paths

* cleanup
2025-07-19 21:58:58 -07:00
Adeeb Shihadeh
5ac6305a95 quick garbage collection pass (#2231)
* remove DPANDA

* -22

* lil more

* canfd

* lil more

* update cppcheck

* uart cleanup

* always harness

* sbu sense

* lil more

* enable spi

* rm ENABLE_SPI
2025-07-19 21:05:12 -07:00
Adeeb Shihadeh
4fc243b998 CI: speed up MISRA mutation job (#2213)
* CI: speed up MISRA mutation job

* install first
2025-05-20 10:18:47 -07:00
Adeeb Shihadeh
8bd83750c2 setup opendbc dependency properly (#2202)
* rm that

* bump

* lil more

* update

* fix libpanda

* update

* fix misra

* python3?

* update ref

* fix mutation
2025-05-17 19:15:19 -07:00
Shane Smiskol
9804e2607e Move car safety modes to opendbc (#2143)
* move safety tests

* move libsafety

* move safety

* remove safety test job

* fix compilation

* update ref

* rm safety mutation test

* fix misra test

* no safety here

* fix build for both local and docker

* already tested

* fix misra mutation

* move Safety Model readme section to opendbc

* and panda

* fix

* in

* not here

* not here
2025-02-19 17:19:18 -08:00
Adeeb Shihadeh
a8f21d9273 update cppcheck to 2.16 (#2120) 2025-01-12 15:58:23 -08:00
DevTekVE
bedee405d6 test: Allow running test_misra.sh easy on macos (#2096)
Allow running test_misra.sh easy on macos
2024-12-09 17:34:04 -08:00
Maxime Desroches
afafb0ba46 test misra 8.7 and 8.4 (#2035)
check
2024-09-20 19:38:45 -07:00
Maxime Desroches
ed831773ea misra21.15 (#2030)
* cast

* remove suppression

* make it more explicit
2024-09-19 10:35:11 -07:00
Maxime Desroches
ceb088ac4e misra12.2 (#2028)
* 12.2

* remove supression

* new stm
2024-09-18 11:33:12 -07:00
dzid26
6f0d1efbd9 stricter misra config check - prevent quiet bail out 2024-09-05 21:49:30 -07:00
Adeeb Shihadeh
160ea08e8f misra: bump to cppcheck 2.15.0 (#2008)
* misra: bump to latest cppcheck

* update checkers
2024-08-31 13:09:58 -07:00
Andrei Radulescu
0a0912234e update bash scripts to #!/usr/bin/env bash (#1987)
* update bash shebang for better compatibility including macOS

* can't have anything after #bash
2024-08-26 17:25:15 -07:00
Adeeb Shihadeh
c4e75ee89c remove cereal dependence (#2000)
* remove cereal

* rm more shit

* add back make

* python3

* python3

* fix that

* put that back

* rename

* fix that

* can't move it
2024-08-18 11:40:54 -07:00
dzid26
4df996cfd7 Cppcheck checklist bugfix (#1969)
* Fix cppcheck checklist diff

* cppcheck already has exitcode=2
2024-06-04 10:24:51 -07:00
dzid26
b6b8144523 misra mutations test - git diff error fix (#1964)
fix misra mutations - don't run git diff in temp folder
2024-06-03 22:31:53 -07:00
dzid26
d401ba169c Enable misra-c2012-1.2 (#1962)
* misra-c2012-1.2 - allow __typeof__ compiler extension

* explicit c11
2024-05-30 22:13:47 -07:00
dzid26
9fdbb178c4 Generate cppcheck checkers list (#1960)
* cppcheck checkers list / coverage

* Update tests/misra/test_misra.sh

* Update tests/misra/test_misra.sh

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2024-05-29 19:42:40 -07:00
dzid26
6ff6733ba3 Cppcheck 2.14 (#1951)
* enable cppcheck 2.14

* cppcheck: Uninitialized variable

* cppcheck: variableScope

* cppcheck: misra-c2012-21.16
both arguments to memcmp() should be of compatible (matching) essential types

* cppcheck: misra-c2012-11.6
Avoid casting between pointer to void and an arithmetic type.
Refactor bootloader address casting for easier understanding.

* cppecheck 2.14.1
- force cppecheck tag fetch
2024-05-27 21:21:13 -07:00
Justin Newberry
698d17e021 fix inconsistent misra mutation tests (#1935)
* revert

* fix
2024-04-22 10:28:53 -07:00
Justin Newberry
4d60ae9c62 CI: fix misra mutation tests (#1934)
* fix that

* skip build, install first

* Revert "skip build, install first"

This reverts commit 01efdb77ce.

* prune
2024-04-18 17:59:33 -07:00
Adeeb Shihadeh
01c54d1199 enable misra-c2012-11.8 (#1916)
* fix up harness_config definition

* enable misra-c2012-11.8
2024-03-24 12:38:25 -07:00
Adeeb Shihadeh
418fca3583 enable misra-config checks (#1879)
* mostly done

* fix rest of misra-config

* do other two in next pr
2024-03-24 12:10:37 -07:00
Adeeb Shihadeh
b08bc43a21 update cppcheck to 2.13.4 (#1915) 2024-03-23 18:23:44 -07:00
Adeeb Shihadeh
895a7001c9 Rename stm32fx/ -> stm32f4/ (#1898)
* Rename stm32fx/ -> stm32f4/

* jungle too
2024-03-11 16:18:56 -07:00
Aryan
4303ae1387 enable misra-c2012-10.6 (#1811)
* misra-c2012-10.6

* fixed uninitialized data error

* revert false positive

* enable 10.6

* update install.sh

* cleanup

* bug fix

* better fix ?
2024-02-27 10:32:28 -08:00
Aryan
b4442a7c93 enable misra-c2012-10.3 (#1852)
* enable misra-c2012-10.3

* fix that

* cleanup

* little more

* one more

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2024-02-18 11:56:44 -08:00
Adeeb Shihadeh
546db7b73b set cppcheck platform 2024-02-18 11:43:25 -08:00
Adeeb Shihadeh
6eed036473 (almost) enable cppcheck unusedFunction (#1875)
* remove some unused

* more

* kinda works

* rest are false positives

* disable for now

* add back exhaustive
2024-02-17 14:16:15 -08:00
Adeeb Shihadeh
997b075349 misra: catch more cppcheck errors that don't change exit code 2024-02-17 12:53:28 -08:00
Adeeb Shihadeh
c076a9f2f6 remove pedal fw (#1872)
* remove pedal fw

* little more

* one more

* and tests

* rest of it

* little more

* fix linter

* more fix
2024-02-16 22:58:01 -08:00
Aryan
ef68fea95e Make MISRA results consistent across cppcheck runs (#1867)
* fixed uninitialized data error

* update ci

* revert old changes

* add styling

* switch misra.py to misra

* remove cache from mutation.py

* works on local

* jobs increased to 8 for mutation test

* works locally

* add env variable back

* removed env variable

* cleanup

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2024-02-14 08:35:14 -08:00
Aryan
54459e694e update cppcheck (#1859)
* update cppcheck

* Update tests/misra/install.sh

* delete cppcheck cache

* remove misra 5.8 erroors

* fixed uninitialized data error

* suppress misra-c2012-2.3 and misra-c2012-2.4

* reinstate cache to fix mutation test

* rerun for mutation test

* increase timeout for mutation test

* styling

* comments + variable name changes

* Update tests/misra/install.sh

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* Update install.sh

* more variable name changes

* condition on defining CANPacket_t

* just cherry pick

* fix build

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2024-02-10 14:50:36 -08:00
Ruben Medina
3bd980eb39 enable misra-c2012-17.3 (#1806) 2024-02-03 23:20:30 -08:00
Adeeb Shihadeh
5ab46d52fd set cppcheck level to exhaustive (#1846) 2024-02-03 15:28:15 -08:00
Adeeb Shihadeh
a5604de24f ensure cppcheck is always the right version (#1843) 2024-01-29 20:19:50 -08:00