|
|
1 天之前 | |
|---|---|---|
| .. | ||
| README.md | 1 天之前 | |
| misra.config | 1 天之前 | |
This directory is made for the purpose of statically testing the MISRA C:2012 compliance of coreJSON using Synopsys Coverity static analysis tool. To that end, this directory provides a configuration file to use when building a binary for the tool to analyze.
Note For generating the report as outlined below, we have used Coverity version 2018.09.
For details regarding the suppressed violations in the report (which can be generated using the instructions described below), please see the MISRA.md file.
You can run this on a platform supported by Coverity. The list and other details can be found here. To compile and run the Coverity target successfully, you must have the following:
cmake --version)git clone --recurse-submodules git@github.com:FreeRTOS/coreJSON.git ./coreJSONcd ./coreJSONgit submodule update --checkout --init --recursiveGo to the root directory of the library and run the following commands in terminal:
build directory
~~~
cmake -B build -S test
~~~cov-out) and begin Coverity static analysis
~~~
cd cov-out/
cov-analyze --dir . --coding-standard-config ../../tools/coverity/misra.config --tu-pattern "file('./source/.')"
~~~For your convenience the commands above are below to be copy/pasted into a UNIX command friendly terminal.
cov-configure --force --compiler cc --comptype gcc;
cmake -B build -S test;
cd build/;
cov-build --emit-complementary-info --dir cov-out make coverity_analysis;
cd cov-out/
cov-analyze --dir . --coding-standard-config ../../tools/coverity/misra.config;
cov-format-errors --dir . --file "source" --exclude-files '(/build/|/test/)' --html-output html-out;
cov-format-errors --dir . --file "source" --exclude-files '(/build/|/test/)' --json-output-v2 defects.json;
echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Below-------------------------\n";
jq '.issues[] | .events[] | .eventTag ' defects.json | sort | uniq -c | sort -nr;
echo -e "\n-------------------------Non-Suppresed Deviations, if any, Listed Above-------------------------\n";
cd ../../;
You should now have the HTML formatted violations list in a directory named build/cov-out/html-output.
With the current configuration and the provided project, you should not see any deviations.