Switch to latest version of cppcheck and MISRA scan
This commit is contained in:
parent
a3f2c21cc8
commit
f84583d4bb
16
.travis.yml
16
.travis.yml
|
@ -46,10 +46,11 @@ before_install:
|
||||||
- sudo apt-get update -qq
|
- sudo apt-get update -qq
|
||||||
# - sudo apt-get install -t trusty-backports cppcheck
|
# - sudo apt-get install -t trusty-backports cppcheck
|
||||||
- sudo apt-get build-dep -qq cppcheck
|
- sudo apt-get build-dep -qq cppcheck
|
||||||
- wget https://github.com/danmar/cppcheck/archive/1.79.zip
|
# - wget https://github.com/danmar/cppcheck/archive/1.79.zip
|
||||||
- unzip 1.79.zip
|
# - unzip 1.79.zip
|
||||||
- cd cppcheck-1.79
|
# - cd cppcheck-1.79
|
||||||
# - make SRCDIR=build CFGDIR=/usr/share/cppcheck/ HAVE_RULES=yes
|
- git clone --depth=10 https://github.com/noisymime/cppcheck.git
|
||||||
|
- cd cppcheck
|
||||||
- sudo make install CFGDIR=/usr/share/cppcheck/ HAVE_RULES=yes
|
- sudo make install CFGDIR=/usr/share/cppcheck/ HAVE_RULES=yes
|
||||||
# Requirements for doxygen
|
# Requirements for doxygen
|
||||||
- sudo apt-get install doxygen graphviz
|
- sudo apt-get install doxygen graphviz
|
||||||
|
@ -59,10 +60,9 @@ install:
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- cd /home/travis/build
|
- cd /home/travis/build
|
||||||
- git clone --depth=20 https://github.com/noisymime/cppcheck.git noisymime/cppcheck
|
- git clone --depth=10 https://github.com/noisymime/cppcheck.git noisymime/cppcheck_github
|
||||||
- cd noisymime/speeduino
|
- cd noisymime/speeduino
|
||||||
- platformio update
|
- platformio update
|
||||||
# - platformio run -e megaatmega2560 -e teensy35 -e bluepill_f103c8 -e genericSTM32F103RB
|
|
||||||
# Run the builds
|
# Run the builds
|
||||||
- platformio run -e megaatmega2560 -e teensy35
|
- platformio run -e megaatmega2560 -e teensy35
|
||||||
# Upload ini and hex files to speeduino.com server
|
# Upload ini and hex files to speeduino.com server
|
||||||
|
@ -70,8 +70,8 @@ script:
|
||||||
- curl -v --user "speeduino_firmware@speeduino.com:$WEB_PWD" --basic -T "./reference/speeduino.ini" "https://speeduino.com:2078/master.ini"
|
- curl -v --user "speeduino_firmware@speeduino.com:$WEB_PWD" --basic -T "./reference/speeduino.ini" "https://speeduino.com:2078/master.ini"
|
||||||
# Begin MISRA scan
|
# Begin MISRA scan
|
||||||
- cd ..
|
- cd ..
|
||||||
- chmod +x speeduino/misra/check_misra.sh
|
- chmod +x speeduino/misra/check_misra_github.sh
|
||||||
- speeduino/misra/check_misra.sh
|
- speeduino/misra/check_misra_github.sh
|
||||||
# Do doxygen run and upload to gh-pages server.
|
# Do doxygen run and upload to gh-pages server.
|
||||||
- cd speeduino
|
- cd speeduino
|
||||||
- doxygen
|
- doxygen
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cppcheck_path=cppcheck_github/
|
||||||
|
cppcheck_bin="${cppcheck_path}cppcheck"
|
||||||
|
cppcheck_misra="${cppcheck_path}addons/misra.py"
|
||||||
|
|
||||||
|
if [ -f ./results.txt ]; then
|
||||||
|
rm results.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in speeduino/speeduino/*.ino; do
|
||||||
|
$cppcheck_bin --dump --max-configs=1 --suppressions-list=speeduino/misra/suppressions.txt --suppress=syntaxError:speeduino/speeduino/src/PID_v1/PID_v1.h --include=${i%.*}.h -DCORE_AVR=1 -D__AVR_ATmega2560__=1 $i > /dev/null
|
||||||
|
done
|
||||||
|
|
||||||
|
mv speeduino/speeduino/*.dump ./
|
||||||
|
rm ./utils.*.dump
|
||||||
|
|
||||||
|
python $cppcheck_misra --rule-texts=speeduino/misra/misra_2012_text.txt *.dump 2> results.txt
|
||||||
|
#rm *.dump
|
||||||
|
|
||||||
|
cat results.txt
|
||||||
|
# wc -l results.txt
|
||||||
|
|
||||||
|
errors=`wc -l < results.txt | tr -d ' '`
|
||||||
|
echo $errors MISRA violations
|
||||||
|
|
||||||
|
if [ $errors -gt 0 ]; then
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
exit 0
|
||||||
|
fi
|
|
@ -1,26 +0,0 @@
|
||||||
if [ -f ./results.txt ]; then
|
|
||||||
rm results.txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd speeduino/speeduino
|
|
||||||
#cppcheck --dump --inline-suppr --suppress=syntaxError:src/PID_v1/PID_v1.h --suppressions-list=../misra/suppressions.txt --include=./*.h -DCORE_AVR=1 -D__AVR_ATmega2560__ -U__STM32F1__ -USTM32F4 ./*.ino > /dev/null
|
|
||||||
cppcheck --dump --inline-suppr --suppress=syntaxError:src/PID_v1/PID_v1.h --suppressions-list=../misra/suppressions.txt --include=./*.h -DCORE_AVR=1 -D__AVR_ATmega2560__ -U__STM32F1__ -USTM32F4 -UCORE_STM32 -UCORE_TEENSY ./storage.ino > /dev/null
|
|
||||||
cd ../..
|
|
||||||
mv speeduino/speeduino/*.dump ./
|
|
||||||
rm ./utils.*.dump
|
|
||||||
|
|
||||||
python cppcheck/addons/misra.py --rule-texts=speeduino/misra/misra_2012_text.txt *.dump 2> results.txt
|
|
||||||
#python cppcheck/addons/misra.py --rule-texts=speeduino/misra/misra_2012_text.txt board_avr2560.ino.dump 2> results.txt
|
|
||||||
#rm *.dump
|
|
||||||
|
|
||||||
cat results.txt
|
|
||||||
# wc -l results.txt
|
|
||||||
|
|
||||||
errors=`wc -l < results.txt | tr -d ' '`
|
|
||||||
echo $errors MISRA violations
|
|
||||||
|
|
||||||
if [ $errors -gt 0 ]; then
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
fi
|
|
|
@ -100,7 +100,7 @@ No text specified
|
||||||
Rule 10.3
|
Rule 10.3
|
||||||
No text specified
|
No text specified
|
||||||
Rule 10.4
|
Rule 10.4
|
||||||
No text specified
|
The target of an operation must be of an appropriate type
|
||||||
Rule 10.5
|
Rule 10.5
|
||||||
No text specified
|
No text specified
|
||||||
Rule 10.6
|
Rule 10.6
|
||||||
|
@ -232,7 +232,7 @@ Advisory - Use of #undef is not permitted
|
||||||
Rule 20.6
|
Rule 20.6
|
||||||
No text specified
|
No text specified
|
||||||
Rule 20.7
|
Rule 20.7
|
||||||
No text specified
|
Macro expressions must be enclosed in parentheses
|
||||||
Rule 20.8
|
Rule 20.8
|
||||||
No text specified
|
No text specified
|
||||||
Rule 20.9
|
Rule 20.9
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
5.4 - cppcheck currently doesn't appear to handle the scope of #defines within header files and so is counting all instances as duplicates.
|
||||||
|
10.4 - Currently suppressing this as the work required to go through and add I, U, UL, L etc to all the contstants is not worth it.
|
|
@ -1,6 +1,5 @@
|
||||||
misra_12.1:board_avr2560.ino:7
|
misra_10.4
|
||||||
misra_14_4
|
misra_5.4
|
||||||
misra.5.2
|
|
||||||
MISRA_16_4:misra-suppressions1-test.c
|
MISRA_16_4:misra-suppressions1-test.c
|
||||||
MISRA.16.6:misra-suppressions1-test.c
|
MISRA.16.6:misra-suppressions1-test.c
|
||||||
MISRA_4_1:misra-suppressions2-test.c
|
MISRA_4_1:misra-suppressions2-test.c
|
||||||
|
|
Loading…
Reference in New Issue