66 lines
1.7 KiB
Bash
Executable File
66 lines
1.7 KiB
Bash
Executable File
#!/bin/bash -
|
|
|
|
PATH_PREFIX=/home/PDC-PSW/workspace/tina
|
|
[ -d $PWD ] && [ -f rules.mk ] && PATH_PREFIX=$PWD
|
|
CPPCHECK=${PATH_PREFIX}/tools/cppcheck/cppcheck-v2.0
|
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:./tools/cppcheck/"
|
|
check_path="."
|
|
if [ "$1" ] ;then
|
|
check_path=$1
|
|
fi
|
|
|
|
OUT_DIR=out/check_static_v2_1/result
|
|
mkdir -p "${OUT_DIR}"
|
|
|
|
CHECK_LOG="${OUT_DIR}/static.log"
|
|
CHECK_LOG_SORT="${OUT_DIR}/static_sort.log"
|
|
CHECK_ERR="${OUT_DIR}/static-err.log"
|
|
CHECK_WARN="${OUT_DIR}/static-warn.log"
|
|
CHECK_TMP_LOG="${OUT_DIR}/tmp_static.log"
|
|
|
|
rm -f ${CHECK_LOG} ${CHECK_ERR} ${CHECK_WARN}
|
|
|
|
echo check: "$check_path"
|
|
echo out log: "$OUT_DIR"
|
|
src_list=$check_path
|
|
|
|
function do_check()
|
|
{
|
|
${CPPCHECK} -j32 --enable=warning --force -x c++ \
|
|
--suppress=nullPointerRedundantCheck \
|
|
--suppress=shiftTooManyBitsSigned \
|
|
--suppress=preprocessorErrorDirective \
|
|
--suppress=syntaxError \
|
|
--suppress=invalidPrintfArgType_sint \
|
|
--suppress=invalidScanfArgType_int \
|
|
--template '{file},{line},{severity},{id},{message}' \
|
|
$1 \
|
|
--output-file=${CHECK_TMP_LOG}
|
|
}
|
|
|
|
while read dpath
|
|
do
|
|
[ -z ${dpath} ] && continue;
|
|
[ -d ${PATH_PREFIX}/${dpath} ] || continue;
|
|
|
|
#echo "per line:${dpath}..."
|
|
do_check ${PATH_PREFIX}/$dpath
|
|
cat ${CHECK_TMP_LOG} >> ${CHECK_LOG}
|
|
rm -f ${CHECK_TMP_LOG} 2> /dev/null
|
|
done < ${src_list}
|
|
|
|
# avoid that there is no check log
|
|
touch ${CHECK_LOG} ${CHECK_ERR} ${CHECK_WARN}
|
|
rm ${CHECK_LOG_SORT}
|
|
sort ${CHECK_LOG} > ${CHECK_LOG_SORT}
|
|
# parse result
|
|
awk -F, '$3~/warning/{print}' ${CHECK_LOG_SORT} > ${CHECK_WARN} 2>/dev/null
|
|
awk -F, '$3~/error/{print}' ${CHECK_LOG_SORT} > ${CHECK_ERR} 2>/dev/null
|
|
WARN_CNT=`wc -l < ${CHECK_WARN}`
|
|
ERR_CNT=`wc -l < ${CHECK_ERR}`
|
|
echo
|
|
echo ERROR Count : ${ERR_CNT}
|
|
echo WARNING Count : ${WARN_CNT}
|
|
|
|
tree ${OUT_DIR}
|