-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add static_analysis.yaml to project and fix some code to pass cppchec…
…k run
- Loading branch information
1 parent
1173504
commit 4404564
Showing
5 changed files
with
79 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
name: static_analysis | ||
|
||
on: | ||
push: | ||
branches: ['**'] | ||
pull_request: | ||
branches: ['**'] | ||
|
||
jobs: | ||
cppcheck: | ||
name: cppcheck | ||
runs-on: ubuntu-22.04 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Install | ||
shell: bash | ||
run: | | ||
sudo apt-get update; | ||
sudo apt-get install -qq cppcheck; | ||
- name: Cppcheck Run | ||
shell: bash | ||
#Selected run options: | ||
# ./xxx : Folders to scan | ||
# --quiet : Don't show current checked configuration in log | ||
# --std=c++11 : Use C++11 standard (default but worth mentioning) | ||
# --xml : Output in XML format | ||
# -j4 : Run parallel jobs for a faster scan. current HW is 2 core (https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners) using 4 to future proof | ||
# --enable : Additional check to run. options are [all, warning, style, performance, protability, information, unusedFunction, missingInclude] | ||
# -I : Include directories | ||
# -i : Ignore directories. Ignore third-party libs that we don't want to check | ||
# --suppress : Don't issue errors about files matching the expression (when -i for folders is not enough) | ||
# --force : Check all configurations, takes a very long time (~2 hours) and did not find additional errors. Removed. | ||
# --max-configs=6 : Using less configuration permutations (default is 12) to reduce run time. Detects less errors. Removed. | ||
# -Dxxx : preprocessor configuration to use. Relevant flags taken from build on Ubuntu. | ||
run: > | ||
cppcheck ./realsense2_camera/src ./realsense2_camera/include ./realsense2_camera/tools | ||
--quiet --std=c++11 --xml -j4 --enable=warning | ||
-I./realsense2_camera/include -I./realsense2_camera/tools | ||
&> cppcheck_run.log | ||
- name: Cppcheck Result | ||
shell: bash | ||
run: | | ||
ERROR_COUNT=$(grep cppcheck_run.log -e "severity=\"error\"" -c) || ERROR_COUNT=0 | ||
EXPECTED_ERROR_COUNT=0 | ||
if [ $ERROR_COUNT -eq $EXPECTED_ERROR_COUNT ] | ||
then | ||
echo "cppcheck_run succeeded, found" $ERROR_COUNT "errors, as expected" | ||
exit 0 | ||
elif [ $ERROR_COUNT -lt $EXPECTED_ERROR_COUNT ] | ||
then | ||
echo "cppcheck_run ---> SUCCEEDED <--- but found" $ERROR_COUNT "errors when expecting" $EXPECTED_ERROR_COUNT | ||
echo "Please update EXPECTED_ERROR_COUNT var in .github/workflows/static_analysis.yaml to the new lower value" | ||
else | ||
echo "cppcheck_run ---> FAILED <--- with" $ERROR_COUNT "errors; expecting" $EXPECTED_ERROR_COUNT | ||
fi | ||
cat cppcheck_run.log | ||
exit 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters