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