Blame contrib/jenkins_tests/cppcheck.sh
|
Packit |
6d2c1b |
#!/bin/bash -xeEl
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
source $(dirname $0)/globals.sh
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
do_check_filter "Checking for cppcheck ..." "on"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
# This unit requires cppcheck so check for existence
|
|
Packit |
6d2c1b |
if [ $(command -v cppcheck >/dev/null 2>&1 || echo $?) ]; then
|
|
Packit |
6d2c1b |
echo "[SKIP] cppcheck tool does not exist"
|
|
Packit |
6d2c1b |
exit 0
|
|
Packit |
6d2c1b |
fi
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
cd $WORKSPACE
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
rm -rf $cppcheck_dir
|
|
Packit |
6d2c1b |
mkdir -p $cppcheck_dir
|
|
Packit |
6d2c1b |
cd $cppcheck_dir
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
set +eE
|
|
Packit |
6d2c1b |
eval "find ${WORKSPACE}/src -name '*.h' -o -name '*.cpp' -o -name '*.c' -o -name '*.hpp' -o -name '*.inl' | \
|
|
Packit |
6d2c1b |
cppcheck --std=c99 --std=c++11 --language=c++ --force --enable=information \
|
|
Packit |
6d2c1b |
--inline-suppr --suppress=memleak:config_parser.y \
|
|
Packit |
6d2c1b |
--template='{severity}: {id}: {file}:{line}: {message}' \
|
|
Packit |
6d2c1b |
--file-list=- 2> ${cppcheck_dir}/cppcheck.err 1> ${cppcheck_dir}/cppcheck.log"
|
|
Packit |
6d2c1b |
rc=$(($rc+$?))
|
|
Packit |
6d2c1b |
set -eE
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
nerrors=$(cat ${cppcheck_dir}/cppcheck.err | grep error | wc -l)
|
|
Packit |
6d2c1b |
rc=$(($rc+$nerrors))
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
cppcheck_tap=${WORKSPACE}/${prefix}/cppcheck.tap
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
echo 1..1 > $cppcheck_tap
|
|
Packit |
6d2c1b |
if [ $rc -gt 0 ]; then
|
|
Packit |
6d2c1b |
echo "not ok 1 cppcheck Detected $nerrors failures # ${cppcheck_dir}/cppcheck.err" >> $cppcheck_tap
|
|
Packit |
6d2c1b |
do_err "cppcheck" "${cppcheck_dir}/cppcheck.err"
|
|
Packit |
6d2c1b |
info="cppcheck found $nerrors errors"
|
|
Packit |
6d2c1b |
status="error"
|
|
Packit |
6d2c1b |
else
|
|
Packit |
6d2c1b |
echo ok 1 cppcheck found no issues >> $cppcheck_tap
|
|
Packit |
6d2c1b |
info="cppcheck found no issues"
|
|
Packit |
6d2c1b |
status="success"
|
|
Packit |
6d2c1b |
fi
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
do_archive "${cppcheck_dir}/cppcheck.err" "${cppcheck_dir}/cppcheck.log"
|
|
Packit |
6d2c1b |
|
|
Packit |
6d2c1b |
echo "[${0##*/}]..................exit code = $rc"
|
|
Packit |
6d2c1b |
exit $rc
|