349 Commits

Author SHA1 Message Date
Daniel Marjamäki
784f2951fb misra: generating misra table 2019-06-01 15:57:19 +02:00
Daniel Marjamäki
7c6d15bb81 Fixed #8658 (false positive: MISRA rule 8.12) 2019-06-01 13:10:20 +02:00
Daniel Marjamäki
f204ab88d6 misra feature matrix: I believe Cppcheck handle rule 14.3 2019-05-27 17:28:59 +02:00
Daniel Marjamäki
d594b195d4 Misra feature matrix: Cppcheck has checks for 18.2 and 18.3 2019-05-26 20:45:21 +02:00
Daniel Marjamäki
d039c388ec Fixed #8582 (Regression MISRA Rule 5.1) 2019-05-26 18:46:35 +02:00
Daniel Marjamäki
54be0bc3cf Misra: Added checker for misra rule 17.7 2019-05-22 21:39:33 +02:00
Mathias Schmid
149c07f475 Fix misra addon rule 4 1 (#1846)
* Modifiy check for MISRA rule 4.1 to avoid skipping constant character literal enclosed by single quotes.
Add test for MISRA rule 4.1 which contains non-compliant cases defined by MISRA C 2012 document.

* Moved additional test cases for MISRA rule 4.1 to appropriate test case section.
2019-05-22 14:33:59 +02:00
Daniel Marjamäki
48dfba429a Fixed #8822 (false positive: MISRA rule 13.4) 2019-04-27 17:43:26 +02:00
Daniel Marjamäki
146326bfaf misra.py: Rewrote rule texts parser 2019-04-16 10:57:31 +02:00
Daniel Marjamäki
7f19a9a255 addon/misra.py: fix problem with summary 2019-04-16 08:45:06 +02:00
Daniel Marjamäki
e0da316759 cppcheckdata.py: fix sys.errout 2019-04-16 08:26:58 +02:00
Daniel Marjamäki
97157046f7 addons: /reportErrorCli/reportError/ 2019-04-14 08:54:53 +02:00
Daniel Marjamäki
b1b5b27b4e addons: write column in error message(s) 2019-04-13 10:22:13 +02:00
Daniel Marjamäki
8bacfafd01 misra.py: Advisory=>style 2019-04-12 12:30:06 +02:00
Daniel Marjamäki
76e64dce8c misra: fix crash if Misra severity Required/Mandatory/Advisory is not set 2019-04-12 12:28:44 +02:00
Daniel Marjamäki
a1c30b834c misra.py: Added rule 20.10 2019-04-11 10:50:07 +02:00
Daniel Marjamäki
3e3c805a66 misra.py: Add rule 20.7 2019-04-11 10:36:02 +02:00
Daniel Marjamäki
cb55ccb9b0 misra.py: Fix dereference of None 2019-04-10 21:21:17 +02:00
Daniel Marjamäki
b5d9313663 naming.py: Unify addon output 2019-04-10 21:11:50 +02:00
Daniel Marjamäki
7b6d7b9335 threadsafety.py: allow execution with --addon 2019-04-10 21:06:40 +02:00
Daniel Marjamäki
05fcfc85fa findcasts: Unify output 2019-04-10 18:29:46 +02:00
Daniel Marjamäki
bf5ad56dba cert.py: Removed CLI 2019-04-10 18:09:27 +02:00
Daniel Marjamäki
466caabbf2 Fixed misc.py test 2019-04-10 07:31:52 +02:00
Daniel Marjamäki
4509b25f97 replace tabs with spaces in cppcheckdata.py 2019-04-10 06:48:16 +02:00
Daniel Marjamäki
4415992a62 Addons: Remove the xml output. You can get xml output from the GUI/command line clients. 2019-04-09 20:42:17 +02:00
Daniel Marjamäki
f2889d5c82 Try to unify addon output 2019-04-09 20:36:24 +02:00
Daniel Marjamäki
44dcbda88e Addons: Fixed handling of addon configuration 2019-04-08 19:42:16 +02:00
eivindt
ff1114e3c7 Misra explicitly allows spaces between # and the preprocessing tokens (#1781)
* Misra explicitly allows spaces between # and the preprocessing tokens

* Added tests illustrating need for changing preprocessor checking
2019-04-08 18:26:17 +02:00
eivindt
253986bc31 List the number of violations per rule (#1786)
* List the number of violations per rule

* Avoid using 'id' as variable name
2019-04-08 18:10:40 +02:00
Daniel Marjamäki
d2949adff1 misc.py: Make it possible to run this addon from cppcheck 2019-04-07 21:07:08 +02:00
Daniel Marjamäki
bf9006737a Addons: Adding support in Cppcheck CLI to execute addons 2019-04-07 17:01:59 +02:00
eivindt
0debd8d520 Misra xml output (#1787)
* Add (very) simple XML output support

* Removed xml top and tail, better handled outside
2019-04-05 12:36:58 +02:00
eivindt
76bf5ecb06 Map MISRA violation categories to cppcheck categories (#1775) 2019-04-03 19:39:05 +02:00
eivindt
480284d428 Show number of hits per suppression rules entry (#1776) 2019-04-03 19:38:03 +02:00
Sebastian
4735b6ca1b
addons/naming.py: Fix crash on unnamed arguments, add regex validation. (#1762)
Crash has been reported in the forum:
https://sourceforge.net/p/cppcheck/discussion/development/thread/138788ac6b/
A small test has been added to avoid regression.
2019-03-26 18:54:09 +01:00
versat
68dd203f43 addons/namingng.py: Fixed typos, no functional changes intended. 2019-03-26 15:21:49 +01:00
Armin Müller
f4b5b156d7 Typos found by running "codespell" (#1715) 2019-03-01 01:01:39 +01:00
Sebastian
72c9646be9
misra.py: Possible fix for problematic code (#1613)
Without the `for scope in data.scopes:` loop, scope is not assigned anything.
From the context a loop over `data.scopes` could be intended. But other things like indentation would be possibly correct too. Not sure how this code should be.
We try this fix.
2019-01-22 07:28:29 +01:00
Sebastian
c106dd2939
misra addon: Fix issue with unexpected encodings in loadRuleTexts() (trac 8946) (#1608)
https://trac.cppcheck.net/ticket/8946
Add tests to travis script for verifying rule text loading.
Add dummy rule text files.
misra.py: Try to find a suitable codec for rule texts file.
2019-01-18 21:30:08 +01:00
Servando
7c168fa850 Feature/ros naming check (#1511)
* Added script to check ROS naming style

* Added header to script

* Enhanced namingng.py and added ROS_naming.json

* Correction of style bugs

* Removed trailing whitespace

* Removed trailing whitespace

* Removed path

* Remove path from file name

* Check if the token belongs to the current file or is included

* Reverted

* Fixed msg errors
2019-01-09 18:16:51 +01:00
practicalswift
0a1b3a9d6f Fix typos (#1568) 2019-01-06 17:15:57 +01:00
Thorsten Sick
43b6a391d8 Added a new naming check addon. Also verifies variable and function p… (#1456)
* Added a new naming check addon. Also verifies variable and function prefixes

* Verification added to code

* added naming checks ng selftest to travis file

* Ensure zero exit value for tests if tests succeed

* Expected values adjusted

* Fixed copy and paste error
2018-11-06 20:46:07 +01:00
Armin Müller
acf2035a53 Typos found by running "codespell" (#1461) 2018-11-03 07:34:27 +01:00
Daniel Marjamäki
25a3aeef86 cert.py: another fix for valueflow 2018-10-29 01:39:52 +01:00
Daniel Marjamäki
b5241ecb80 cert.py: more robust handling of values 2018-10-28 20:55:15 +01:00
Daniel Marjamäki
2730b16326 cppcheckdata.py: read more data from dumps 2018-10-28 20:47:44 +01:00
Richard A. Smith
f286325cec Fix per file excludes (#1437)
* MISRA: Allow printing of the suppressed rules to the console

--show-suppressed-rules will print rules in the suppression rule list to
the console sorted by rule number.

* MISRA: Correct rule suppression for entire file scope

The entire file scope suppression check was checking for the rule item
list to be None instead of looking for None as an entry into the list.

Correct this check and modify the documentation to explicitly state that
an entry of None in the rule item list will set the scope for that
suppression to be the entire file.

* MISRA: Tests for checking per-file rule suppressions

To run:

../../cppcheck --suppressions-list=suppressions.txt --dump misra-suppressions*-test.c
python ../misra.py misra-suppressions*-test.c.dump

There should be no violations reported

* MISRA: Allow ignoring a prefix from file paths when suppression matching

For environments that run cppcheck from the build system cppcheck may be
passed a filename that is a complete path.

Often this path will include a portion that is specific to the developer
or to the environment where the project is located.

The per-file suppression rules do filename matching based on the
filename passed to cppcheck. To match any path information also has to
be included into the suppressions file provided to cppcheck via the
--suppressions-list= option.

This limits the usefulness of the per-file based suppressions because
it requires the suppression to be customized on a per instance basis.

Add a option "--file-prefix" that allows a prefix to be excluded from
the file path when doing the suppression filename matching.

Example.

Given the following structure:

/test/path1/misra-suppressions1-test.c
/test/path1/misra-suppressions2-test.c

specifying --file-prefix /test/path1 will allow the use of
misra-suppressions1-test.c and misra-suppressions2-test.c as filenames
in the suppressions file without leading patch information but still
match the suppression rule.

* MISRA: Tests for --file-prefix option

To run:

../../cppcheck --suppressions-list=suppressions.txt \
    --dump misra-suppressions*-test.c \
           path1/misra-suppressions*-test.c

python ../misra.py misra-suppressions*-test.c.dump \
                   path1/misra-suppressions*-test.c

There should be no violations reported
2018-10-18 09:17:57 +02:00
Richard A. Smith
4dbdc934b8 MISRA: Prevent exception on variadic functions (#1436)
Functions with variadic arguments trip an exception in the MISRA checker
because some of the token is None and does not have some of the members
the code is expecting.

Prevent this by checking to see if the token is None and skipping the
code that tries to use that value.
2018-10-18 09:11:51 +02:00
Daniel Marjamäki
d9e1cc957b Fixed #8704 (false postive: MISRA rule 5.2) 2018-10-07 17:19:40 +02:00
Daniel Marjamäki
90a2a46959 Fixed #8657 (false postive: MISRA rule 15.7) 2018-10-01 20:16:48 +02:00