38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script performs a single analysis using cppcheck
|
|
# It is used by the 'make test' target in the buildsystems
|
|
# Usually you should use 'ctest -C cppcheck' rather than calling this script directly
|
|
#
|
|
# Parameters: $1 = Application binary
|
|
# $2 = Source file to process
|
|
# $3..$N = include path parameters (-I dir1 -I dir2 ...)
|
|
|
|
cppcheck_cmd=$1
|
|
source_file=$2
|
|
shift 2
|
|
|
|
tmpfil=`mktemp`
|
|
$cppcheck_cmd $@ --force --enable=all --suppress=unusedFunction $source_file &> $tmpfil
|
|
nmatch=`cat $tmpfil | grep "\[.*\]" | wc -l`
|
|
nsys=`cat $tmpfil | grep "\[/usr.*\]" | wc -l`
|
|
nnone=`cat $tmpfil | grep "\[\\*]" | wc -l`
|
|
let "nval=$nmatch-$nsys-$nnone"
|
|
if test $nval -gt 0
|
|
then
|
|
cat $tmpfil
|
|
$cppcheck_cmd $@ -q --xml --xml-version=2 --force --enable=all --suppress=unusedFunction $source_file &> $tmpfil
|
|
if test -f cppcheck-result.xml
|
|
then
|
|
mv cppcheck-result.xml cppcheck-result-old.xml
|
|
xml_grep --wrap results --cond error cppcheck-result-old.xml $tmpfil > cppcheck-result.xml
|
|
else
|
|
mv $tmpfil cppcheck-result.xml
|
|
fi
|
|
rm -f cppcheck-result-old.xml $tmpfil
|
|
exit 1
|
|
fi
|
|
|
|
rm $tmpfil
|
|
exit 0
|